Выборочная подсветка синтаксиса для VS 2008 - PullRequest
20 голосов
/ 03 февраля 2009

В последнее время я использовал Vibrant Ink от John Lam VS цветовую схему и хотел настроить ее так, чтобы она выделяла имена методов для класса с другим цветом. Оказывается, в VS нет выбора для этого.

Resharper имеет функцию , которая обеспечивает пользовательскую подсветку синтаксиса. Мне было интересно, насколько сложно написать небольшой плагин, который дает вам детализированную подсветку синтаксиса? Существуют ли какие-либо подобные объявления с открытым исходным кодом?

EDIT

Спасибо всем, мне удалось взломать вещи, используя DXCore, и мой VS выглядит очень похожим на textmate.

VS выглядит фантастически http://img14.imageshack.us/img14/637/awesomevsgq1.png

** ПРИМЕЧАНИЕ **

Мне пришлось немного изменить фрагмент по Рори, чтобы он работал с точечными именами методов и операторами равенства в 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)); 

Ответы [ 5 ]

11 голосов
/ 11 февраля 2009

Ну, как уже сказал Брайан ... Мой плагин PaintIt даст вам некоторое представление о том, что можно сделать с помощью DXCore .

Также есть несколько других "Декоративных плагинов" на нашем " сайте плагинов сообщества ", и у нас есть приличное сообщество в

DevExpress IDE Tools форумы, если у вас есть какие-либо конкретные вопросы.

DXCore - это платформа, на которой построены RefactorPro и CodeRush , которая должна дать вам представление о том, какого рода

графических возможностей, на которые они способны.

При этом вам не нужен ни один из этих инструментов для использования DXCore .

Все на сайте сообщества "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) на основе этого кода и добавил его на сайт Плагин сообщества .

Двоичный файл доступен на моем сайте здесь .

Вам нужно только загрузить и установить DXCore и поместить бинарный файл плагина в папку плагинов (по умолчанию C: \ Program Files \ Developer Express Inc \ DXCore для Visual Studio .NET \ 2.0 \ Bin \ Plugins) .. Затем запустите VS, и все имена ваших методов должны быть в HotPink (Lovely)

4 голосов
/ 10 февраля 2009

Чтобы выйти за рамки простой раскраски ключевых слов, сведения о раскраске синтаксиса Visual Studio определены здесь ; и подробности реализовать здесь .

В этих документах рассказывается о том, как прокладывается сантехника, и, что более важно, подробно рассказывается о том, как подключить провод самостоятельно -

3 голосов
/ 11 февраля 2009

Если вы хотите накатить свои собственные, я бы рекомендовал получить DXCore от DevExpress . Я знаю, что вы можете добавить свои собственные визуальные элементы в VS2008, используя это дополнение, и я считаю, что это также бесплатно. есть сообщество хорошего размера для помощи в написании ваших собственных плагинов, и, возможно, уже есть одно для вас.

Я большой поклонник DevExpress и запускаю Refactor! и CodeRush.

2 голосов
/ 11 февраля 2009

Получите DXCore, а затем начните с этого плагина: http://www.rorybecker.me.uk/PaintIt.html, который должен помочь вам начать работу с кодом для раскрашивания имен методов. Рори делает свой код доступным, и я думаю, что он здесь, на SO ...

0 голосов
/ 05 февраля 2009

Я не могу точно ответить, насколько это сложно или есть какой-либо открытый исходный код, но чтобы сделать это, вы хотите взглянуть на пользовательские текстовые маркеры. Подробности смотрите в этих двух статьях:

...