Compartilhar via


Interface IVsRefactorNotify

 

Publicado: abril de 2016

Notifica os geradores de código sobre a ocorrência de operações de refatoração.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop.8.0 (em Microsoft.VisualStudio.Shell.Interop.8.0.dll)

Sintaxe

[InterfaceTypeAttribute(1)]
[GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")]
public interface IVsRefactorNotify
[InterfaceTypeAttribute(1)]
[GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")]
public interface class IVsRefactorNotify
[<InterfaceTypeAttribute(1)>]
[<GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")>]
type IVsRefactorNotify = interface end
<InterfaceTypeAttribute(1)>
<GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")>
Public Interface IVsRefactorNotify

Métodos

Nome Descrição
System_CAPS_pubmethod OnAddParams(IVsHierarchy, UInt32, String, UInt32, UInt32[], String[], String[])

Chamado depois que um método tinha os parâmetros adicionados.

System_CAPS_pubmethod OnBeforeAddParams(IVsHierarchy, UInt32, String, UInt32, UInt32[], String[], String[], Array)

Chamado quando um método é ter parâmetros adicionados.

System_CAPS_pubmethod OnBeforeGlobalSymbolRenamed(IVsHierarchy, UInt32, UInt32, String[], String, Array)

Chamado quando um símbolo está prestes a ser renomeado.

System_CAPS_pubmethod OnBeforeRemoveParams(IVsHierarchy, UInt32, String, UInt32, UInt32[], Array)

Chamado quando um método é ter os parâmetros removidos.

System_CAPS_pubmethod OnBeforeReorderParams(IVsHierarchy, UInt32, String, UInt32, UInt32[], Array)

Chamado quando um método é ter os parâmetros reordenados.

System_CAPS_pubmethod OnGlobalSymbolRenamed(IVsHierarchy, UInt32, UInt32, String[], String)

Chamado depois que um símbolo é renomeado.

System_CAPS_pubmethod OnRemoveParams(IVsHierarchy, UInt32, String, UInt32, UInt32[])

Chamado depois que um método tinha os parâmetros removidos.

System_CAPS_pubmethod OnReorderParams(IVsHierarchy, UInt32, String, UInt32, UInt32[])

Chamado depois que um método tinha os parâmetros reordenados.

Comentários

Implementando o IVsRefactorNotify da interface, você fornece o Visual Studio serviço de linguagem com o recurso para notificar os geradores de código sobre a refatoração de operações, como renomeação simbólica ou reordenar parâmetros. O Visual Studio serviço de linguagem identifica o símbolo que é alterado, passando uma cadeia de caracteres usando a sintaxe de nome de Refactor-Qualified, RQName,. Descrição de sintaxe RQName é o seguinte:

rq_name := rq_ns | rq_agg | rq_membvar | rq_event | rq_meth | rq_prop

rq_ns := "Ns" "(" rq_sym_name_list ")"

rq_agg := "Agg" "(" rq_sym_name_list ")"

rq_membvar := "Membvar" "(" rq_agg "," rq_sym_name ")"

rq_event := "Event" "(" rq_agg "," rq_sym_name ")"

rq_meth := "Meth" "(" rq_agg "," rq_sym_name "," rq_typevarcount ",
                    " rq_params ")"

rq_prop := "Prop" "(" rq_agg "," rq_sym_name "," rq_typevarcount ",
                    " rq_params ")"

rq_params := "Params" "(" rq_param_list ")"

rq_param_list := rq_param |
                 rq_param "," rq_param_list

rq_param := "Param" "(" rq_type_sig ")"

rq_type_sig := rq_aggtype_sig | 
               rq_array_sig | 
               rq_pointer_sig | 
               rq_param_mod_sig | 
               rq_typevar_sig | 
               rq_void_sig | 
               rq_error_sig | 
               rq_null_sig

rq_aggtype_sig := "AggType" "(" rq_agg "," rq_typeparams ")"

rq_typeparams := "TypeParams" "(" rq_type_sig_list ")"

rq_type_sig_list := rq_type_sig |
                    rq_type_sig "," rq_type_sig_list

rq_array_sig := "Array" "(" rq_rank "," rq_type_sig ")"

rq_pointer_sig := "Pointer" "(" rq_type_sig ")"

rq_param_mod_sig := "Ref" "(" rq_type_sig ")" |
                    "Out" "(" rq_type_sig ")"

rq_typevar_sig := "TyVar" "(" rq_simple_name ")"

rq_void_sig := "Void"

rq_error_sig := "Error" "(" rq_text ")"

rq_null_sig := "Null"

rq_sym_name_list := rq_sym_name |
                    rq_sym_name "," rq_sym_name_list

rq_sym_name := rq_aggname | rq_nsname | rq_membvarname | 
               rq_methpropname | rq_intfexplname

rq_nsname := "NsName" "(" rq_simple_name ")"

rq_aggname := "AggName" "(" rq_simple_name "," rq_typevarcount ")"

rq_membvarname := "MembvarName" "(" rq_simple_name ")"

rq_methpropname := rq_methname | rq_propname | rq_eventname

rq_methname := "MethName" "(" rq_simple_name ")"

rq_propname := "PropName" "(" rq_simple_name ")"

rq_eventname := "EventName" "(" rq_simple_name ")"

rq_intfexplname := "IntfExplName" 
                   "(" rq_type_sig "," rq_methpropname ")"

rq_typevarcount := "TypeVarCnt" "(" rq_number ")"

rq_simple_name = rq_text

rq_rank := rq_number

rq_number := [0-9]+

rq_text := [any character except ".", "," "(" and ")"]

Exemplos

O exemplo a seguir demonstra como usar a sintaxe de RQName para descrever os símbolos.

System.Collections.Generic;
using System.Text;

namespace ConsoleApplication                   //1
{
    interface ITest<T>                         //2
    {
        void MyTest(T t);                         //3
    }

    delegate void MyDel();                     //4

    class Program : ITest<int>
    {
        const int i = 5;                       //5
        string s;                              //6
        event MyDel e;                         //7
        static void Main(string[] args)        //8
        {
        }
        void ITest<int>.MyTest(int t)             //9
        {
        }
        int this[int i] { get { return 1; } }  //10
    }
}

namespace MyTest.Bar.Blank                        //11
{
}

1: Ns(NsName(ConsoleApplication))

2: Agg(NsName(ConsoleApplication),AggName(ITest,TypeVarCnt(1)))

3: Meth(Agg(NsName(ConsoleApplication),AggName(ITest,TypeVarCnt(1))),
        MethName(MyText),TypeVarCnt(0),Params(Param(TyVar(T))))

4: Agg(NsName(ConsoleApplication),AggName(MyDel,TypeVarCnt(0)))

5: Membvar(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
        MembvarName(i))

6: Membvar(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
        MembvarName(s))

7: Event(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
      EventName(e))

8: Meth(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
        MethName(Main),TypeVarCnt(0),
        Params(Param(Array(1,AggType(Agg(NsName(System),
        AggName(String,TypeVarCnt(0))),TypeParams())))))

9: Meth(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
        IntfExplName(AggType(Agg(NsName(ConsoleApplication),
        AggName(ITest,TypeVarCnt(1))),TypeParams(AggType(Agg(NsName(System),
        AggName(Int32,TypeVarCnt(0))),TypeParams()))),MethName(MyTest)),

10: Prop(Agg(NsName(ConsoleApplication),AggName(Program,TypeVarCnt(0))),
         PropName($Item$),TypeVarCnt(0),Params(Param(AggType(Agg(NsName(System),
         AggName(Int32,TypeVarCnt(0))),TypeParams()))))

11: Ns(NsName(MyTest),NsName(Bar),NsName(Blank))

Confira Também

Namespace Microsoft.VisualStudio.Shell.Interop
Refatoração (C#)

Retornar ao início