c# - Visual Studio 2012 中嵌入式语言的语法突出显示

标签 c# syntax visual-studio-2012 syntax-highlighting mef

我正在使用 C# 和 Visual Studio 2012 实现嵌入在 html 中的语言的语法突出显示(很像 <% %> 中的 ASP 代码)。到目前为止,我发现我需要使用 IProjectionBuffer 来实现这一点,但是没有关于如何使用 MEF 执行此操作的示例,除了此处有些模糊的描述:http://msdn.microsoft.com/en-us/library/dd885240.aspx#projection .我试图将通过 MEF“导入”的 ITextBuffer 中的文本范围分配给 IProjectionBuffer,但没有效果。

有人对如何进行有任何想法吗?

最佳答案

我认为有一个用于此目的的内置功能。我曾经使用带有标签的 MEF 处理 C# 代码中的文本突出显示。我想你应该从 Text.Classification 开始.

遗憾的是缺少文档,但我认为您应该为语言部分构建一个词法分析器或类似的东西 MSDN:DLR (features)或许可以帮到你,

The DLR allows language implementers to avoid creating lexical analyzers, parsers, semantic analyzers, code generators, and other tools that they traditionally had to create themselves.

检测分隔符,并通过分类对其进行着色。

这是一个 example project自定义 C# 代码显示。

关于c# - Visual Studio 2012 中嵌入式语言的语法突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984365/

相关文章:

C# base() 构造函数顺序

Python for 循环语法

c++ - move 构造函数可以是隐式的吗?

c# - 当对象作为参数传递到另一个没有 ref 的类方法中时,对象属性会更改。

c# - 我可以在 C# 中创建三元运算符吗?

c# - 在UWP中的帧(SplitView)中导航时丢失了DataContext

SQL - 字段值的条件?

c# - 使用 C# 和 gppg,我将如何构建抽象语法树?

c# - Visual Studio 探查器不显示类名

sql - 使用 SSDT 进行单元测试表