我正在尝试使用基于 Noah Richards 的 diff 着色示例的 VS2010 的新语法着色功能。目标是为 SpecFlow ( http://www.specflow.org ) 创建语法着色。
就我而言,查找语法元素相当复杂,而且不是行级的。因此,当我实现 GetClassificationSpans 时,我不想重新解析整个文件,而是获取更改文本开头的状态并从该点开始解析内容。
我以为我可以将以前的分类作为分类标签。我使用 IBufferTagAggregatorFactoryService 类做到了这一点。
它有效,但我不确定这是否是最好的方法。我应该只为整个分类器类创建标签聚合器,还是可以在每次调用 GetClassificationSpans 时创建它?我应该创建一个特殊的标签来记住解析状态吗?
也许这无论如何都不是正确的方法,我也对其他建议感兴趣。
溴,加斯帕
编辑:我在该主题中找到了一个很好的文章系列:http ://www.hill30.com/MikeFeingoldBlog/index.php/2009/07/31/django-editor-in-vs-2010-part-1-颜色/