如何创建在Visual Studio中使用的新语言

mpe*_*pen 102 c# parsing visual-studio languageservice

我想写一个新的模板语言,我希望Visual Studio"支持"它.我需要知道的是:

  1. 我如何解析我的新语言?
    在我的新模板语言中给出了一些代码,我该如何将其翻译成HTML?现在我正在使用正则表达式通过令牌解析它令牌,但我不认为随着语言变得更加复杂,这将无法扩展,并且没有错误检查.我听说过ANTLR,但从未使用它.这是否适合这项工作,或者是否有更简单的工具?理想情况下,我想将错误窗口中的任何语法错误发送到尽可能多的信息(行#,错误类型),就像其他语言一样.
  2. 如何为Visual Studio创建新的文件类型?
  3. 如何获得语法高亮?
    我可以使用我在步骤1中创建的相同解析器,还是这个完全不同?
  4. 我如何获得智能感知?

我更喜欢用C#编写我的解析器.

Jam*_*acs 62

我会看看另一种已经完成与Visual Studio集成的工作的语言.一个很好的例子是Boo.语言和Visual Studio集成是开源的.所以你可以看看他们到底要做什么.

针对VS2010的Boo语法突出显示包括其主页上的一些推荐链接,我将其复制以供参考:


Bri*_*ian 29

关于Visual Studio方面,您需要的是"语言服务",它是处理给定文件扩展名/类型的着色,智能感知等的实体.

有关介绍,请参阅此文章
.有关代码示例,请参阅此处

关于解析,有很多技术,我不会提供意见/建议.

请注意,涉及到相当多的工作,但在我看来,在VS2010中比在以前版本的Visual Studio中提供这种扩展要简单得多.

也可以看看

Visual Studio 2010可扩展性,MPF和语言服务


Col*_*ren 9

我使用这篇文章作为我的基础编写了一个VS语言服务:http: //www.codeproject.com/KB/recipes/VSLanguageService.aspx

如果你有一个关于语法的基本句柄,那也不算太糟糕.