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

本文关键字:符号 插入 位置 单词 中的 IWpfTextView 使用 | 更新日期: 2023-09-27 18:00:52

我正在尝试编写一个visual studio MEF扩展,它可以捕获用户当前的carret位置,确定当前所选函数的名称,并打开相应的帮助文件。

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

例如。myFunction(null,MY_CONSTANT,MY_CONSTANT2(;其中光标位于myFunction上。

提前感谢您的帮助。

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

您可以通过以下方式获得当前选择的函数:

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

我也一直在尝试这样做。经过一些尝试和错误,这似乎奏效了:

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