我最近一直在使用John Lam's Vibrant Ink VS颜色方案,并想调整它,以便突出显示具有不同颜色的类的方法名称。原来在VS中没有选择。
Resharper a feature提供自定义语法突出显示。我想知道编写一个小插件给你提供精细的自定义语法突出显示有多难?是否有像这样的开源广告?
修改
谢谢大家,我设法使用DXCore破解了东西,我的VS看起来非常类似于textmate。
VS is looking fantastic 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));
答案 0 :(得分:11)
正如Brian已经说过的那样...... My PaintIt plugin会让你对DXCore可以做些什么有所了解。
我们的“Community Plugin Site”还有其他一些“装饰插件”,我们在
中有一个体面的社区DevExpress IDE Tools论坛,如果您有任何具体问题。
DXCore是构建RefactorPro和CodeRush的框架,可以让您了解什么类型
他们能够提供的图形功能。
那就是说你不需要这些工具来使用DXCore。
Community Site is "Open Source"上的所有内容(所以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。
二进制文件可从我的网站here获取。
您只需下载并安装DXCore并将binary of the plugin放在plugins文件夹中(默认为C:\ Program Files \ Developer Express Inc \ DXCore for Visual Studio .NET \ 2.0 \ Bin \插件)..然后启动VS,你的方法名称应该都在HotPink(可爱)
答案 1 :(得分:4)
要超越简单的关键字着色,Visual Studio语法着色的详细信息为defined here;和implement here的详细信息。
这些文件概述了基础管道是如何检测的 - 更重要的是,详细介绍了如何自行连接 -
答案 2 :(得分:3)
如果你想自己动手,我建议你来DXCore from DevExpress。我知道你可以使用这个插件将自己的视觉元素添加到VS2008中,我相信它也是免费的。有一个规模很大的社区可以帮助您编写自己的插件,甚至可能已经为您制作了一个插件。
我是DevExpress的忠实粉丝,我运行Refactor!和CodeRush。
答案 3 :(得分:2)
获取DXCore,然后从这个插件开始:http://www.rorybecker.me.uk/PaintIt.html,它应该让你开始使用一些代码来着色方法名称。 Rory提供他的代码,我认为他是SO的成员......
答案 4 :(得分:0)
我无法回答它有多难或是否有任何开源,但为了完成它,你想看看自定义文本标记。有关详细信息,请参阅这两篇文章: