2009-11-09 78 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編輯器中顯示的任何文檔中的顏色 –