.net - 如何在 Visual Studio 扩展中获取光标左侧的字符?
问题描述
我正在尝试获取光标左侧的字符。我有拦截LineChanged
事件的处理程序。
OnLineChanged(TextPoint startPoint, TextPoint endPoint, int Hint)
我找不到任何内置方法来从TextPoint
s 中获取它。
最好的方法是什么?
另外,有没有办法检查活动窗口是否打开了 IntelliSense 窗口?如果 IntelliSense 已打开,我想中止事件处理程序的执行。
解决方案
要获取 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();
推荐阅读
- rust - 为另一个特征实现和使用特征
- c++ - 可以使用不同数量的参数调用宏吗?
- chromecast - 获取 Chromecast 接收器 UI 的实际宽度
- grails - 如何在 Grails 3.3 中自定义错误消息?
- c - 使用 gdb 进行调试 - 奇怪的信息
- python-sphinx - 在 ReadtheDocs 中找不到构建错误 index.rst
- xamarin.forms - Xamarin Forms 与蓝牙经典
- javascript - 为什么 Vercel 不运行我在 HTML 中链接的 JavaScript 代码
- java - Java:如何解析大量 .csv 文件?
- python - 切换到下一个级别在 pygame 中不起作用