問題是,當我嘗試使用「< <」運算符時,ruby模式認爲這是一個錯誤,下面的所有代碼都失去了語法高亮,類似的情況丟失括號或報價。無論如何解決這個?? Emacs 22 23都適用。ruby模式下的emacs語法高亮將無法使用「<<」運算符
如下圖所示:
問題是,當我嘗試使用「< <」運算符時,ruby模式認爲這是一個錯誤,下面的所有代碼都失去了語法高亮,類似的情況丟失括號或報價。無論如何解決這個?? Emacs 22 23都適用。ruby模式下的emacs語法高亮將無法使用「<<」運算符
如下圖所示:
終於讓我找到自己的答案,解釋如下:
http://www.ruby-forum.com/topic/95762
這是因爲Ruby語言的語法歧義,這使得目前的ruby-mode.el無法區分使用「< <」的用法。
關閉上述討論結束後,甚至馬茲自己站了起來說:
|Steve, in that case Emacs ruby-mode is incorrect.
Maybe Ruby is too smart for this issue, since it's difficult for
editors to determine here-doc from shift operators without serious
parsing.
matz.
古怪的紅寶石模式的語法高亮其他一些討論:http://www.ruby-forum.com/topic/119917
這需要我三個小時,eerrrr ...我想我會堅持textX,尤其是ruby/RoR/Sinatra開發,直到出現一些嚴重的ruby模式。
起初,我沒有設法在這裏重複這個問題。過了一段時間,我意識到我有一箇舊版本,從2007年開始,在我的載入路徑中。 (它錯了一行。)也許你可以使用它作爲臨時解決方案?
請將此作爲bug提交給Emacs團隊,因爲Emacs能夠着色比此更復雜的構造。 (跳過包含掛鉤設置的部分,因爲它是無關緊要的)。
謝謝老兄。我會提交這個。希望看到一些詞法分析改進來解決這個問題... – lkahtz 2011-03-03 08:50:46
與其放棄emacs(如果你堅持使用它,它不僅僅是一個編輯器,還有IDE),也許你會放棄emacs可以開始在你的令牌之間插入空格?不幸的是,即使對於方法和單例,在'< <'之後排除空白似乎也有事實上的紅寶石風格。
謝謝。現在我一直在使用emacs並在<< operand之前和之後插入空格。現在我很喜歡它~~ – lkahtz 2011-04-08 15:15:22
你能發表一個簡短的例子嗎? – Lindydancer 2011-03-02 11:49:06
我看了一下(在Emacs 23.2中),在'<<'運算符後面的'ruby-mode'中我看不到任何語法突出問題。但是,也許你的代碼有一些特殊的功能會引發一個錯誤?所以你需要發佈你的例子。 (但你可以先嚐試升級。) – 2011-03-02 13:04:01
我安裝了Cocoa emacs 23和Aqua-emacs。全部都一樣。我檢查了打包的ruby-mode.el並將其替換爲最新版本,並將其重新字節編譯爲ruby-mode.elc。沒有任何作品。如果還沒有人能弄清楚這一點,我會放棄emacs並回到textmate。我是認真的。 – lkahtz 2011-03-02 16:44:45