我试图通过visual studio插件来定义元素但我无法达到 选定行上元素的签名。
我有一个代码块,如:
sub Test(){
Dim TestVariable As New TestClass
TestVariable.Execute()
}
我选择了
行TestVariable.Execute()
但是这个操作,在插件中:
_applicationObject.ActiveDocument.ProjectItem.FileCodeModel. _
CodeElementFromPoint(sel.AnchorPoint, vsCMElement.vsCMElementFunction)
返回Test(),这是最顶层的元素,但我需要最里面的。
我试图改变' vsCMElementFunction'财产属性等 但他们都没有回来。
有谁知道另一种方法吗?
答案 0 :(得分:0)
我找到了解决问题的方法,我想分享一下。
'When Your Cursor On The Element, Call Your Add-In
'In Exec() Function You Can Follow These Steps:
'Open Object Browser And Copy The Signature
_applicationObject.ExecuteCommand("Edit.GoToDefinition")
_applicationObject.ExecuteCommand("Edit.Copy")
'To Close The Object Browser
Dim win As EnvDTE.Window
win = DirectCast(_applicationObject.ActiveWindow, EnvDTE.Window)
'And ta ta, Full Signature Of The Element
basename = My.Computer.Clipboard.GetText()
'And Here We Get The Base Name
Dim tobjbasearr As String() = basename.Split(CChar("."))
Dim tobjbase As String = tobjbasearr(0)