我想写一个新的模板语言,我希望Visual Studio“支持”它。我需要知道的是:
1.如何解析新语言
给定一些新模板语言的代码,我如何将其转换为HTML?现在我使用正则表达式逐个标记地解析它,但我认为随着语言变得越来越复杂,这不会很好地扩展,并且没有错误检查。我听说过ANTLR,但从未使用过它。这是这项工作的正确工具吗?理想情况下,我希望像其他语言一样,将任何语法错误发送到错误窗口,并提供尽可能多的信息(行号,错误类型)。
1.如何为Visual Studio创建新的文件类型?
1.如何获取语法高亮
我是否可以使用在步骤1中创建的解析器,或者这是完全不同的解析器?
1.如何获取智能感知?
我更喜欢用C#编写解析器。
7条答案
按热度按时间bt1cpqcv1#
我想看看另一种已经完成了与Visual Studio集成的语言。一个很好的例子是Boo。该语言和Visual Studio集成是开源的。所以你可以看看他们必须做什么:
https://github.com/boo/boo-lang
jtoj6r0c2#
关于Visual Studio方面,你需要的是一个“语言服务”,它是处理给定文件扩展名/类型的着色,智能感知等的实体。
对于介绍,see this article
对于代码示例see here
关于解析,有很多技术,我不会提供意见/建议。
请注意,这涉及到相当多的工作,尽管在我看来,在VS2010中提供这种扩展比在Visual Studio的以前版本中要简单得多。
另见
Visual Studio 2010 Extensibility, MPF and language services
kiayqfof3#
我使用这篇文章作为我的基础写了一个VS语言服务:http://www.codeproject.com/KB/recipes/VSLanguageService.aspx
如果你对语法有一个基本的掌握,这还不算太糟糕。
bqucvtff4#
VS SDK中有一个示例,它显示了您正在寻找的大多数功能。
hivapdat5#
我用自己的语言使用VS,迫切需要一个语法高亮。我基于这个教程构建了我的:https://mattduffield.wordpress.com/2012/07/31/writing-a-brightscript-syntax-highlight-extension-for-visual-studio-2010/
我知道教程是在VS2010中。我在VS2012中做了我的,没有或非常小的打嗝。(也在VS2013中工作)最近我换到了VS2015,解决方案可以编辑,构建没有问题。
k7fdbhmy6#
我发现了Visual Studio 2013 SDK的最新示例的非常有用的集合:http://blogs.msdn.com/b/vsx/archive/2014/05/30/vs-2013-sdk-samples-released.aspx
它还包含OokLanguage的最新版本,听起来很有希望。
我们使用ANTLR 4来解析我们的语言,它像一个魅力,并允许与C#代码直接交互。完全可以推荐它。
vcudknz37#
正如在其他答案中提到的,最有趣的代码示例是最新版本Visual Studio的Ook language extension(撰写本文时为2017年)。
对于VS 2015,请参见sample in the VS2015 branch。
为了安装SDK for 2015或更高版本,您需要重新运行VS安装程序。在2015中,它被称为“Visual Studio扩展性工具更新3”。