【问题标题】:How to get the character to the left of cursor in Visual Studio Extension?如何在 Visual Studio 扩展中获取光标左侧的字符?
【发布时间】:2019-07-10 11:21:53
【问题描述】:

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

OnLineChanged(TextPoint startPoint, TextPoint endPoint, int Hint)

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

最好的方法是什么?

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

【问题讨论】:

  • 嗨朋友,这个问题有什么更新吗?
  • 嗨,“接受的答案”?,看来谢尔盖的回答有助于解决您的问题,所以您接受它。如果它确实有效,您可以考虑将其标记为答案。只是提醒一下:)

标签: .net visual-studio api visual-studio-extensions


【解决方案1】:

获取 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();

【讨论】:

  • 您是否知道是否有办法检查活动编辑器窗口是否打开了 IntelliSense 弹出窗口?
  • @nick-s 请为它打开一个单独的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2022-10-19
  • 1970-01-01
  • 2022-08-02
  • 2022-06-17
  • 1970-01-01
相关资源
最近更新 更多