konoha-mode.elを書いてみました

Emacsのメジャーモードを学ぶために書いてみました。
KonohaScriptは別に書いたことないんですが、Vimのモードしか
なかったので、選びました。

実装

Javaと似ているようなので、基本的な部分は java-modeを継承しただけ
です。java-modeは c-modeを継承していていますので、設定は c-mode
と同様なんじゃないかと思います。このあたりまだ詳しくわかっていません。


現状はハイライトとインデントぐらいです。
あと "M-x run-konoha"で Emacs内で REPLが起動できます。
ただ Lispと違ってどういう連携機能を持たせていいのかわからないので、
konoha-send-regionでリージョンを REPLに送る機能しかありません。
REPLも変数とか関数定義の場合は出力が何も出ないので、何を送ったかが
わからないので、微妙です。

イメージ

ハイライト

REPL(M-x run-konoha)


quickrunの設定

(quickrun-add-command "konoha"
                      '((:command      . "konoha")
                        (:compile-only . "%c -c %s"))
                      :mode 'konoha-mode)
(add-to-list 'quickrun-file-alist '("\\.k$" . "konoha"))

おわりに

似ているような文法であれば、Emacsのメジャーモードはかなり
楽に書けます。でも中途半端に違うと、微妙に変えない部分があって
逆に大変になるかもと思いました。しかし c-modeのコードは
読めないですね。macroを多用していると思われるんですが、
Lispの悪い面しか出てないんじゃないのって感じがした。
私のスキルが低すぎるというのもありますが、基本的なコードは
素直に書いて欲しいですね。