4

我使用 GVim 和 Visual Studio 进行编码。与 GVim 相比,VS 中最缺少的功能之一是可以同时以不同颜色突出显示多个单词。有关示例,请参见 GVim 会话的此 屏幕截图(标记了wResultfBufferLocked

在 GVim 中,我经常使用此功能来快速了解使用哪个变量的位置。

我还没有找到为 VS 提供此功能的插件。我知道可以突出显示一个(!)关键字的解决方案,但不能突出几个不同颜色的关键字。所以我计划为 VS 2008 编写一个插件来实现这个功能(除非现在有人提供一个现成插件的链接,它可以做我非常想念的东西;-))

好吧,问题是我没有为 VS 2008(或任何其他 VS)编写插件的经验。在开始了解 VS 的插件架构是什么之前,我想从您那里得到一些反馈,这样的插件是否可行,以及实现它需要付出多大的努力。

思路如下:

如果用户在 VS 的代码编辑器中按下特定的快捷键,则光标下的单词会被添加到 VS 的语法高亮中。假设这是背景颜色为 1 的单词 1。现在突出显示所有关键字“单词 1”。

如果用户将光标移到另一个单词上并按下快捷键,该单词也将被添加到语法突出显示中,但具有不同的背景颜色。假设这是背景颜色为 2 的单词 2。

如果光标位于已经突出显示的单词上并且用户按下快捷键,则该单词将从语法突出显示中删除。

所以基本上插件应该在当前语法高亮中添加关键字并按需删除它们。

我的问题:

  1. 通过语法高亮和插件来做到这一点的方法是正确的,还是有(更好、更简单)的替代方法?

  2. 这种方法是否有效?或者,换一种说法:

    2.1。可以在 VS 运行时扩展现有的语法突出显示(例如 C++)吗?

    2.2. 如果在运行时向语法突出显示添加/删除关键字,VS 何时更新编辑器的视图?自动更改突出显示时,插件必须并且可以触发编辑器视图的更新还是必须重新启动VS(最后一个将是这个想法的淘汰)?

  3. 是否有一个开源的 VS 2008 插件可以做一些语法高亮、标记代码或任何类似的事情,我可以用它作为学习的起点?MSDN 中的一个很好的起点似乎是这个,现在在输入这个时我发现了一个插件,它至少可以处理语法高亮

预先感谢您的评论...

问候
哈比

4

3 回答 3

2

我建议你看看DevExpress 的 DXCore。这是 CodeRush/Refactor 的免费 API!建立在。这将使做这样的事情变得更加简单。链接文本中有很多插件可以帮助您提供一些示例/起始代码。

于 2009-06-10T20:50:16.210 回答
0

这并没有明确回答您的问题,但是如果您想在 Visual Studio 中使用 gvim 功能,您可以使用ViEmu。他们提供 30 天的免费试用,但许可证将花费您 99 美元。

于 2009-06-04T20:49:39.293 回答
0

我想说,如果您不介意范围界定问题,那么着色应该很容易为您使用我们的语言(我是链接 3 的开发人员),但我不确定您是否可以为现有语言添加额外的着色。但我认为你可以。

于 2009-06-04T21:02:37.583 回答