IVsRefactorNotify Interface
Notifies code generators about the occurrence of refactoring operations.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop.8.0 (in Microsoft.VisualStudio.Shell.Interop.8.0.dll)
Syntax
'宣言
<InterfaceTypeAttribute()> _
<GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")> _
Public Interface IVsRefactorNotify
'使用
Dim instance As IVsRefactorNotify
[InterfaceTypeAttribute()]
[GuidAttribute("130497E3-5CDB-4F29-9804-A2AF805016D7")]
public interface IVsRefactorNotify
[InterfaceTypeAttribute()]
[GuidAttribute(L"130497E3-5CDB-4F29-9804-A2AF805016D7")]
public interface class IVsRefactorNotify
public interface IVsRefactorNotify
Remarks
By implementing the IVsRefactorNotify interface, you provide the Visual Studio language service with the capability to notify code generators about refactoring operations, such as symbolic-rename or parameter-reordering. The Visual Studio language service identifies the symbol that is changed by passing a string using Refactor-Qualified Name, RQName, syntax. The RQName syntax description is as follows:
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 ")"]
Examples
The following example demonstrates how to use RQName syntax to describe the symbols.
System.Collections.Generic;
using System.Text;
namespace ConsoleApplication //1
{
interface ITest<T> //2
{
void Foo(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>.Foo(int t) //9
{
}
int this[int i] { get { return 1; } } //10
}
}
namespace Foo.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(Foo),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(Foo)),
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(Foo),NsName(Bar),NsName(Blank))