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