2009-04-24 59 views

回答

12

我開始於this one。這是我過去的一年,但概念保持不變。

我可以建議的最好的方法就是找到一個已經集成的語言,看看他們是如何做到的。以下是真正的建議 - 不要選擇一個以org.eclipse開頭的軟件包名稱(如螞蟻之一)。 eclipse提供瞭如此多的支持,如果從另一個包前綴開始,可以更容易地看到需要編寫哪些代碼。例如,請嘗試查看groovyscala插件。

根據我的經驗,錯誤突出顯示哪個是最難做到的;其次最難的是內容協助。

如果您正在控制編輯器或正在編寫編輯器的語言的運行時,如果您可以讓編譯器爲您提供IDE需要的所有數據,它會使生活變得更加輕鬆(例如,令牌列表 - 用於語法着色,工具提示;內容幫助會好得多,因爲您沒有僞造編譯器,而是使用真正的編譯器;與錯誤高亮顯示一樣)。

的IDE只顯示錯誤信息的相對容易的工作,和着色等

一旦你擁有了它下來才顯示,示例XML編輯器,看起來相當有用。

大部分的分區規則我發現沒那麼有用;我總是最終構建自己的 - 在令牌列表中進行二進制搜索非常有用。

11

我已經看到了一個基於標準的文本編輯器Eclipse的最好的一個是

http://www.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html

(你需要註冊一個免費的IBM帳戶)。 Prashant Deva,一位非常好的ANTLR2插件的作者做了這個。

您可能還需要考慮這樣做會產生一個編輯工具:

Eclipse建模項目(EMF/TMF/GMF)

http://www.eclipse.org/modeling/

TMF有助於建立文本編輯器; GMF幫助建立圖形編輯器。 一個非常不錯的書可用(也狩獵書)

教程在:http://wiki.eclipse.org/index.php/GMF_Tutorial

上GMF一個好的介紹:http://www.ibm.com/developerworks/opensource/library/os-ecl-gmf/

動態語言工具包

http://www.eclipse.org/dltk/

教程可從該網站獲得。請注意,您也可以使用DLTK進行靜態語言編輯; 「動態」部分來自解釋器配置和啓動。

的Xtext(現在TMF的一部分)

http://wiki.eclipse.org/Xtext

注:良好的內容幫助是非常困難的;它確實涉及語法中每個終端的後續分析。您可以通過跟蹤定義的符號和關鍵字並只提示與現有前綴匹配的所有內容來簡化它。上面的發電機組使這一點更容易,但並不完美。

祝你好運!

1

所有這些答案都很好,我查看並使用了上面鏈接的教程。

我想加上來自布拉格Charles大學的this one。它最近更新了,而上面提到的是從5 - 10年前。

我並不確定事情發生了什麼變化,但由於它對我有幫助,所以我在這裏添加它。

相關問題