在 visual studio 扩展中,如何提取具有焦点的方法的主体?
In a visual studio extension, how can I extract the body of the method that has focus?
我希望能够提取具有焦点的方法的主体。
所以我会单击方法中的任意位置,然后右键单击 -> 菜单操作,这样我就可以将重点方法的主体作为字符串或字符串(行)列表。
如果您的扩展是一个包而不是一个加载项,请首先按照以下说明获取 DTE 实例:
HOWTO: Get an EnvDTE.DTE instance from a Visual Studio package.
然后得到光标下的EnvDTE.CodeElement:
HOWTO: Get the code element at the cursor from a Visual Studio .NET macro or add-in.
获得表示方法的 EnvDTE.CodeElement 后,调用:
EnvDTE.EditPoint e1 = codeElement.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint();
EnvDTE.EditPoint e2 = codeElement.GetEndPoint(vsCMPart.vsCMPartBody).CreateEditPoint();
string text = e1.GetText(e2);
也就是说,在 VS 2015 及更高版本中,您可以使用 .NET Compiler Platform ( "Roslyn") 获取该信息
我希望能够提取具有焦点的方法的主体。
所以我会单击方法中的任意位置,然后右键单击 -> 菜单操作,这样我就可以将重点方法的主体作为字符串或字符串(行)列表。
如果您的扩展是一个包而不是一个加载项,请首先按照以下说明获取 DTE 实例:
HOWTO: Get an EnvDTE.DTE instance from a Visual Studio package.
然后得到光标下的EnvDTE.CodeElement:
HOWTO: Get the code element at the cursor from a Visual Studio .NET macro or add-in.
获得表示方法的 EnvDTE.CodeElement 后,调用:
EnvDTE.EditPoint e1 = codeElement.GetStartPoint(vsCMPart.vsCMPartBody).CreateEditPoint();
EnvDTE.EditPoint e2 = codeElement.GetEndPoint(vsCMPart.vsCMPartBody).CreateEditPoint();
string text = e1.GetText(e2);
也就是说,在 VS 2015 及更高版本中,您可以使用 .NET Compiler Platform ( "Roslyn") 获取该信息