首页 > 解决方案 > 如何在 Visual Studio 扩展中获取光标左侧的字符?

问题描述

我正在尝试获取光标左侧的字符。我有拦截LineChanged事件的处理程序。

OnLineChanged(TextPoint startPoint, TextPoint endPoint, int Hint)

我找不到任何内置方法来从TextPoints 中获取它。

最好的方法是什么?

另外,有没有办法检查活动窗口是否打开了 IntelliSense 窗口?如果 IntelliSense 已打开,我想中止事件处理程序的执行。

标签: .netvisual-studioapivisual-studio-extensions

解决方案


要获取 EnvDTE.TextPoint 左侧的字符:

string CharacterToTheLeft(EnvDTE.TextPoint p)
{
    EnvDTE.EditPoint editPoint = p.CreateEditPoint();
    editPoint.CharLeft();
    return editPoint.GetText(1);
}

从 EnvDTE.TextPoint startPoint 在当前光标位置创建编辑点:

    EnvDTE.TextSelection ts = startPoint.Parent.Selection;
    EnvDTE.EditPoint editPoint = ts.ActivePoint.CreateEditPoint();

推荐阅读