pnuts-mode

勢いで pnuts-mode とか作ってしまったわけです。
CC Mode ベース だから、Java 風なコーディングならかなりのところまでまともなインデントをすると思うんだけど、そもそも CC Mode は statement terminator に semicolon を使わない言語のことはあまり考えていないっぽくて、top level の statement のインデントなんか、かなり Ad-hoc な対応でごまかしていたりする。
いや virtual semicolon なんて仕組みがあるんだけど、これも awk-mode 用に導入されたくさくて、top level の代入文だとうまくいかなくなる次第。あと、Pnuts は brace なしの関数定義もできるんだけど、たぶんこれにも対応できていない。
しかし、ポイント位置のコンテキストを取得する関数が cc-engine.el の c-guess-basic-syntax というやつで、1420 行もあるんだけど、これ、メンテナンスできているんだろうか。関数の中でポイントを動かしまくるからとてもじゃないけど edebug なしではコードを追えない。いま Emacs を使っている人は

M-x find-library RET cc-engine RET
M-x imenu RET c-guess-basic-syntax RET
C-x n d

とかやってみるといいよ。