我想根据VSPackage中的一些逻辑在编辑器上标记一整行。
所以我导出了IClassifierProvider
和EditorFormatDefinition
,并通过在ClassificationFormatDefinition
上设置BackgroundColor
成功标记了相关行。
但是,问题是该行没有"完全"标记,仅标记了文本和空格。当行首有制表符时,它们之间的标记是"间歇性的"。此外,标记不会在行尾之后跨越。
我希望标记从编辑器窗口的左边缘开始,一直延伸到编辑器窗口的右边缘,无论文本行有多长。
也许分类格式不是这里的最佳解决方案。但是还有什么选择呢?
(首选简单的。我想我可以拿到窗口把手并自己画标记......
我会从"编辑器文本装饰"项目模板开始。该项目突出显示了文档中的所有"a"。我想您可以轻松地从示例中的GetMarkerGeometry
调用结果中获取行的顶部和底部。然后,您可以创建一个跨越文本视图整个宽度的元素(_view.ViewportWidth
)。
编辑:请注意,这是在Visual Studio 2012中。我不确定 2010 SDK 中是否存在项目模板。