20

我最近一直在使用John Lam 的 Vibrant Ink VS 配色方案,并想对其进行调整,以便它突出显示具有不同颜色的类的方法名称。事实证明,VS 中没有选择。

Resharper 具有提供自定义语法突出显示的功能。我想知道编写一个可以为您提供精细自定义语法突出显示的小插件有多难?有没有像这样的开源插件?

编辑

谢谢大家,我设法使用 DXCore 破解了一些东西,我的 VS 看起来与 textmate 非常相似。

VS 看起来很棒 http://img14.imageshack.us/img14/637/awesomevsgq1.png

** 笔记 **

我不得不对 Rory 的代码片段稍作修改,使其与 C# 中的点方法名称和相等运算符一起使用。

我现在正在使用:

            string name = ea.LanguageElement.Name.Split('.').Last();

            if (name == ("op_Equality")) {
                name = "==";
            } else if (name == "op_Inequality") {
                name = "!=";
            }

            ea.PaintArgs.OverlayText(name, 
                ea.LanguageElement.NameRange.Start, 
                Color.FromArgb(255,204,0)); 
4

5 回答 5

11

正如布赖恩已经说过的那样……我的 PaintIt 插件会让您对DXCore可以做什么有所了解。

在我们的“社区插件网站”上还有一些其他的“装饰插件”,我们在

如果您有任何具体问题,请访问 DevExpress IDE 工具论坛。

DXCore是构建RefactorProCodeRush的框架,它应该让您了解哪种类型

他们有能力的图形功能。

也就是说,您不需要这些工具中的任何一个来使用DXCore

社区网站上的所有内容都是“开源”的(PaintIt也是如此)

为了让您了解事情是多么简单...以下代码是您需要添加到基本插件模板的所有代码 使用DXCore启动和运行基础知识...

Private Sub PlugIn_EditorPaintLanguageElement(ByVal ea As DevExpress.CodeRush.Core.EditorPaintLanguageElementEventArgs) Handles Me.EditorPaintLanguageElement
    If ea.LanguageElement.ElementType = LanguageElementType.Method Then
        ea.PaintArgs.OverlayText(ea.LanguageElement.Name, _
                                 ea.LanguageElement.NameRange.Start, _
                                 Color.HotPink)
    End If
End Sub

我基于此代码创建了一个插件(称为 CR_ColorizeMemberNames)并将其添加到Community Plugin Site

二进制文件可从我的网站获得

您只需下载并安装DXCore并将插件的二进制文件放在插件文件夹中(默认为 C:\Program Files\Developer Express Inc\DXCore for Visual Studio .NET\2.0\Bin\Plugins).. 然后启动 VS 并您的方法名称都应该在 HotPink 中(可爱)

于 2009-02-11T15:31:35.523 回答
4

为了超越简单的关键字着色,此处定义了 Visual Studio 语法着色的详细信息;和细节在这里实现

这些文件概述了底层管道是如何铺设的 - 更重要的是,详细介绍了如何自行接线 -

于 2009-02-10T14:29:37.270 回答
3

如果您想自己动手,我建议您从 DevExpress 获取 DXCore。我知道你可以使用这个插件将你自己的视觉元素添加到 VS2008 中,而且我相信它也是免费的。有一个规模很大的社区可以帮助您编写自己的插件,甚至可能已经为您制作了一个。

我是 DevExpress 的忠实粉丝,我运行 Refactor!和 CodeRush。

于 2009-02-11T10:42:56.213 回答
2

获取 DXCore,然后从这个插件开始:http ://www.rorybecker.me.uk/PaintIt.html应该让你开始使用一些代码来为方法名称着色。Rory 提供了他的代码,我认为他是 SO 的成员......

于 2009-02-11T15:05:29.780 回答
0

我无法真正回答它有多难或是否有任何开源,但要完成它,你想看看自定义文本标记。有关详细信息,请参阅这两篇文章:

于 2009-02-05T15:05:35.257 回答