我正在使用C#和Visual Studio 2012来实现嵌入在html中的语言的语法高亮(非常类似于< %%>中的ASP代码)。到目前为止,我发现我需要使用IProjectionBuffer
来实现这一目标,但除了这里有点模糊的描述之外,没有关于如何使用MEF执行此操作的示例:http://msdn.microsoft.com/en-us/library/dd885240.aspx#projection。我尝试将通过MEF“导入”的ITextBuffer
的文本范围分配给IProjectionBuffer
,但它没有效果。
有没有人对如何进行有任何想法?
答案 0 :(得分:0)
我认为有一个内置功能用于此目的。我曾经用带标签的MEF处理C#代码中的文本突出显示。我想你从Text.Classification开始。
遗憾的是缺乏文档,但我认为你应该为语言部分MSDN:DLR (features)建立一个类似于lexer或类似的东西,可以帮助你,
DLR允许语言实施者避免创建词汇 分析器,解析器,语义分析器,代码生成器等 传统上他们必须自己创造的工具。
检测分隔符,并通过分类对其进行着色。
这是一个example project来自定义C#代码显示。