使用C#中的IWpfTextView确定当前插入符号位置的单词

时间:2014-04-30 12:57:04

标签: c# wpf visual-studio-2012 mef chm

我正在尝试编写一个可视工作室MEF扩展,捕获用户当前的carret位置,确定当前所选功能的名称并打开相应的帮助文件。

我能够捕获F1事件并获取包含此信息的相应IWpfTextView视图。但是,我不知道如何解析carret选择的当前单词可能是什么。我可以使用position属性确定carret的当前位置,但这只给我一个整数。判断Carret当前这个词的最佳方法是什么?

EG。 myFunction(null,MY_CONSTANT,MY_CONSTANT2);光标在myFunction上的位置。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容获取当前选定的功能:

DTE.ActiveWindow.Selection.ActivePoint.CodeElement(vsCMElement.vsCMElementFunction)

答案 1 :(得分:0)

我也一直试图这样做。经过一些试验和错误后,这似乎有效:

if (DTE.ActiveWindow.Selection.IsEmpty)
{
   DTE.ActiveWindow.Selection.MoveLeft(FALSE);
   DTE.ActiveWindow.Selection.MoveRight(TRUE);
}
string curWord = DTE.ActiveWindow.Selection.Text;