2015-02-24 64 views
1

在emacs中,句法分析出奇的少。Emacs自定義語法分析

例如,如果我想不是在函數聲明的類型不同縮進參數名稱,像這樣:

void myfunction(
    int 
     test 
); 

int被認爲是arglist-intro,並test被視爲arglist-cont。但是,如果我添加更多參數,則它們都將被視爲arglist-cont,因此縮進arglist-cont不會達到預期的效果。

所以這裏是我想知道的是:是否有可能使我自己的語法分析thingy爲emacs,以便它可以識別和區分這種情況(這不是唯一的情況,順便說一下)?如果是這樣,怎麼樣?

回答

2

是的,當然你可以寫任何你想要的。 Emacs是free software,它帶有源代碼,所以你可以隨意修改它們。

但請注意,Emacs的應用非常廣泛,包括一些非常智能的hackers。這意味着Emacs的限制通常是(但是,當然並不總是!)有一個很好的理由(在你的情況下,原因是C語法非常複雜)。其含義是,做你想做的事情可能比你想象的要困難。當然,它不應該讓你灰心!

PS。你問「是有可能使自己的句法分析」,而不是「如何做到這一點」 :-)

PPS。至於「如何」,您將不得不以cc-engine.el開頭。

+0

我看,是的,我有一種感覺,它理論上是可能的...和好點,我更新了我的答案(「如果是這樣,怎麼樣?」)= p – MiJyn 2015-02-25 20:40:03

+0

從'progmodes/cc-engine開始。 el'(見PPS)。我知道你更喜歡準備好的補丁,但是,我擔心,我沒有時間。 :-) – sds 2015-02-25 20:47:50

+0

謝謝!我現在檢查出來......看起來我有一些工作爲我剪掉了哈哈 – MiJyn 2015-03-02 19:18:03