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
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