IVsRefactorNotify Interface

Definition

Notifies code generators about the occurrence of refactoring operations.

public interface class IVsRefactorNotify
public interface class IVsRefactorNotify
__interface IVsRefactorNotify
[System.Runtime.InteropServices.Guid("130497E3-5CDB-4F29-9804-A2AF805016D7")]
[System.Runtime.InteropServices.InterfaceType(1)]
public interface IVsRefactorNotify
[<System.Runtime.InteropServices.Guid("130497E3-5CDB-4F29-9804-A2AF805016D7")>]
[<System.Runtime.InteropServices.InterfaceType(1)>]
type IVsRefactorNotify = interface
Public Interface IVsRefactorNotify
Attributes

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

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 ")"]  

Methods

OnAddParams(IVsHierarchy, UInt32, String, UInt32, UInt32[], String[], String[])

Called after a method had the parameters added.

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

Called when a method is about to have the parameters added.

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

Called when a symbol is about to be renamed.

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

Called when a method is about to have the parameters removed.

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

Called when a method is about to have the parameters reordered.

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

Called after a symbol is renamed.

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

Called after a method had the parameters removed.

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

Called after a method had the parameters reordered.

Applies to