2

カスタム言語ソースを Emacs で編集するためのメジャー モードを作成しています (Lisp はわかりませんが)。構文の強調表示は非常に簡単に実装できますが、自動インデントを設定しようとしてもできません。

このコードをテストしたところ'{'、 、'['']'および'}'文字に最適です。たとえば、私のテストでは、"[[{]"正規表現を で変更する"[[:]"と、 で自動インデントされません':'。なんで?私はおかしくなりそうだ!

私の本当の目的は、 と キーワードの間、およびifendifキーワードの間のブロックをインデントすることです。例えば:whileendwhile

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

1 に答える 1

1

自動インデントは、長い間、構文の強調表示ほど単純ではありません。インデントには貴重な一般的なサポートがほとんどありません。最新の Emacs を使用している場合は、SMIE パッケージを試してみてください。それを試してみる良い方法は、octave-mod.el がそれをどのように使用しているか (例えば、Emacs-24 で) を見ることです。しかし、簡単だとは思わないでください。

于 2012-08-25T04:18:59.693 に答える