获取元素DTE _applicationObject Visual Studio加载项的BaseName

时间:2014-10-17 07:31:15

标签: .net visual-studio add-in

我试图通过visual studio插件来定义元素但我无法达到 选定行上元素的签名。

我有一个代码块,如:

sub Test(){
  Dim TestVariable As New TestClass
  TestVariable.Execute()
}

我选择了

TestVariable.Execute()

但是这个操作,在插件中:

_applicationObject.ActiveDocument.ProjectItem.FileCodeModel. _
CodeElementFromPoint(sel.AnchorPoint, vsCMElement.vsCMElementFunction)

返回Test(),这是最顶层的元素,但我需要最里面的。

我试图改变' vsCMElementFunction'财产属性等 但他们都没有回来。

有谁知道另一种方法吗?

1 个答案:

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