VS 2010: изменение цвета линий на основе шаблона - PullRequest
0 голосов
/ 15 июля 2010

Как я могу изменить цвет линий в Visual Studio 2010 на основе некоторого пользовательского шаблона? Например, я хочу изменить цвет всех линий, которые начинаются с logger.. Возможно ли это вообще?

У меня также установлен ReSharper 5.

1 Ответ

2 голосов
/ 15 июля 2010

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

    void ViewLayoutChanged(object sender, TextViewLayoutChangedEventArgs e)
    {
        IWpfTextView view = sender as IWpfTextView;
        var adornmentLayer = view.GetAdornmentLayer("HighlightLines");

        foreach (var line in e.NewOrReformattedLines)
        {
            if (line.Extent.GetText().StartsWith("logger.", StringComparison.OrdinalIgnoreCase))
            {
                Rectangle rect = new Rectangle()
                    {
                        Width = view.ViewportWidth + view.MaxTextRightCoordinate,
                        Height = line.Height,
                        Fill = Brushes.AliceBlue
                    };

                Canvas.SetTop(rect, line.Top);
                Canvas.SetLeft(rect, 0);
                adornmentLayer.AddAdornment(line.Extent, null, rect);
            }
        }
    }

Чтобы построить / запустить это, вам нужно:

  1. Загрузить VS2010 SDK .
  2. Создайте новый проект из шаблонов расширений редактора (я обычно выбираю Visual C # -> Расширяемость -> Редактор текстовых украшений).
  3. Удалить все исходные файлы, которые он создает.
  4. Добавить HighlightMatchingLines.cs в проект.
  5. F5 для запуска / тестирования.
  6. Если вы хотите изменить кисть, измените строку Fill = Brushes.AliceBlue.
  7. Если вы хотите изменить сопоставляемый текст, измените условие в выражении if.
  8. Если вы хотите изменить тип файла, для которого загружено расширение, измените атрибут [ContentType]. В разделе «Типы содержимого» * ​​1029 * этой страницы MSDN перечислены некоторые из наиболее распространенных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...