2012-08-23 186 views
2

我正在編寫一個用Emacs編輯我的自定義語言源代碼的主要模式(雖然我不知道Lisp)。語法高亮很容易實現,但現在我試圖設置自動縮進,我不能。Emacs自定義語言自動縮進

我有測試this code,它是完美的'{''['']''}'字符。例如,在我的測試中,如果我通過"[[:]"更改"[[{]"正則表達式,它不會自動縮進':'。爲什麼?我要瘋了!

我的真正目的是要縮小if和關鍵字之間的區塊,以及whileendwhile關鍵字之間的區塊。例如:

if a > 0 
    b = 2 
    while b = 2 
     a = 0 
    endwhile 
endif 

回答

1

自動縮進不像語法突出顯示那麼簡單,只需很長的時間。對縮進有一些寶貴的通用支持。如果您使用的是足夠新的Emacs,您可能會嘗試使用SMIE軟件包。也許一個很好的嘗試方法是看看octave-mod.el如何使用它(例如在Emacs-24中)。但不要指望它很容易。