2009-11-09 79 views
0

所以我现在要看看为我们的红宝石图书馆的端口工作的视觉工作室集成:www.dotlesscss.com。这基本上是一个CSS预处理器,它在CSS语言上进行扩展,为您提供变量,mixins,嵌套规则等。Visual Studio(2008)集成 - intellisense和colourizer

我们想要的是让我们的.Less文件类型利用VS的智能和语法高亮。现在,由于Less语言非常多,并且有一些额外的细节,所以扩展现有VS对CSS文件的支持似乎是明智的。

我们已经开始关注VS SDK,并设法尽可能将所有文本着色为蓝色(它是开始)。但在开始查看Lexer impl之前,我真的很想知道我们是否能以某种方式扩展已经完成的CSS支持。

任何指针在正确的方向将不胜感激。

Chris。

回答

1

无论您选择2005年,2008年还是2010年,您都会面临同样的选择 - 您可以选择其中一种,但不能选择其中一种。

  1. 将.less文件设置为在Visual Studio的CSS编辑器中打开 - 按原样。
  2. 从头开始为Visual Studio编写一个新的语言服务,并为您的语言提供语法突出显示和IntelliSense。

如果选择#2,那么你会写什么叫做语言服务为Visual Studio,并在这里和在网络上有很多资源(我的博客有一些)。被警告,一旦你通过简单的语法突出显示,这是一项不平凡的任务。

+0

好的,那不是我想听到的,但只要我知道这很好。还有一件事,你是否经常发现你写的两个解析器为你的DSL提供了一个解析器,为VS集成提供了一个更简单的解决方案,或者你已经成功地获得了单个解析器来适应这两种情况? – Owen

+0

我已经完成了这两种方法,但目前我使用一个“light”词法分析器来进行语法突出显示,并使用另一个词法分析器/语义分析器,IntelliSense等。大纲和几个IntelliSense操作有时候最好由专用解析器处理。 –

1

这在Visual Studio 2010中很简单,它现在处于beta 2版本。文本编辑器是全新的,旨在支持此场景。如果你深入了解SDK,你会发现一些相关的例子。

对于VS 2008及更早版本,您无法扩展现有的编辑器。你必须提供一个全新的编辑器,它可以复制现有编辑器的所有功能。

+0

-1:用于添加对新语言的支持的可扩展性API在2008和2010之间有所不同,但是您必须编写语言服务的事实不同。除了C++语法高亮显示中的用户关键字之外,您不能“扩展”内置语言(如果这种情况的话)。 –

+0

+1:你不需要编写语言服务来修改vs2010编辑器中显示的任何文档中的颜色 –