代码之家  ›  专栏  ›  技术社区  ›  Egor Pavlikhin

与2010年相比:根据图案更改线条颜色

  •  0
  • Egor Pavlikhin  · 技术社区  · 15 年前

    如何在Visual Studio 2010中基于某些自定义模式更改线条的颜色?例如,我想更改所有以 logger. . 有可能吗?

    我也安装了Resharper 5。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Noah Richards    15 年前

    我写了一个简短的扩展来完成这项工作;因为您很可能想要修改它,所以应该 grab the source . 重要的是代码 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. Download the VS2010 SDK .
    2. 从编辑器扩展模板创建新项目(我通常选择Visual C->扩展性->编辑器文本修饰)。
    3. 删除它创建的所有源文件。
    4. 将highlightmatchinglines.cs添加到项目中。
    5. F5运行/测试。
    6. 如果要更改画笔,请更改 Fill = Brushes.AliceBlue 线。
    7. 如果要更改匹配的文本,请更改 if 表达式。
    8. 如果要更改加载扩展名的文件类型,请更改 [ContentType] 属性。的“内容类型”部分 this msdn page 列出一些常见的。