Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建在VisualStudio中使用的新语言_C#_Visual Studio_Parsing_Languageservice - Fatal编程技术网

C# 如何创建在VisualStudio中使用的新语言

C# 如何创建在VisualStudio中使用的新语言,c#,visual-studio,parsing,languageservice,C#,Visual Studio,Parsing,Languageservice,我想编写一种新的模板语言,我希望VisualStudio“支持”它。我需要知道的是: 如何解析我的新语言? 给定我的新模板语言中的一些代码,如何将其转换为HTML?现在我正在使用正则表达式逐个标记地解析它,但我认为这不会很好地扩展,因为语言变得更加复杂,并且没有错误检查。我听说过ANTLR,但从未使用过。这是适合这项工作的工具,还是有更简单的方法?理想情况下,我希望像其他语言一样,用尽可能多的信息(行#,错误类型)将任何语法错误发送到错误窗口 如何为Visual Studio创建新的文件类型?

我想编写一种新的模板语言,我希望VisualStudio“支持”它。我需要知道的是:

  • 如何解析我的新语言?
    给定我的新模板语言中的一些代码,如何将其转换为HTML?现在我正在使用正则表达式逐个标记地解析它,但我认为这不会很好地扩展,因为语言变得更加复杂,并且没有错误检查。我听说过ANTLR,但从未使用过。这是适合这项工作的工具,还是有更简单的方法?理想情况下,我希望像其他语言一样,用尽可能多的信息(行#,错误类型)将任何语法错误发送到错误窗口
  • 如何为Visual Studio创建新的文件类型?
  • 如何获得语法突出显示?
    我可以使用我在步骤1中创建的相同解析器,还是完全不同
  • 如何获得智能感知?

  • 我更喜欢用C#编写解析器。

    我想看看另一种已经完成了与visualstudio集成工作的语言。Boo就是一个很好的例子。语言和VisualStudio的集成是开源的。所以你可以看看他们到底要做什么

    • Boo语言:
    • VS2010(VSX加载项)的Boo语法突出显示:
    • Boo语言工作室(VS2008语法突出显示):
    VS2010的Boo语法突出显示在其主页上包括一些推荐链接,我将复制这些链接以便于参考:

    • VS2010中关于“分类”(语法高亮)的精彩文章:
    • VSX加载项示例:

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

    对于介绍,
    和一个代码示例

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

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

    另见


    VS SDK中有一个示例,显示了您正在寻找的大多数功能

    我以本文为基础编写了一个VS语言服务:


    如果你对语法有一个基本的掌握,那也不算太糟糕

    我发现这是Visual Studio 2013 SDK最新示例的非常有用的集合:

    它还包含OokLanguage的最新版本,听起来很有希望


    我们使用ANTLR4解析我们的语言,它的工作方式很有魅力,允许与C代码直接交互。我完全可以推荐它。

    我用自己的语言使用VS,迫切需要一个语法突出显示。我根据本教程构建了我的:


    我知道教程在VS2010中。我在VS2012做的,没有或非常小的打嗝。(也曾在VS2013工作)最近我改为VS2015,解决方案可以编辑,构建没有问题。

    如其他答案中所述,最有趣的代码示例是最新版本的Visual Studio(在撰写本文时为2017)

    关于VS 2015,请参见


    为了安装2015年或更高版本的SDK,您需要重新运行VS安装程序。2015年,它被称为“Visual Studio扩展性工具更新3”。

    很遗憾,他没有继续那个教程……那是一个非常好的教程。谢谢它真正缺少的是下一步,安装软件包。