初めての
major-mode
major-mode作ったことある人?
最近、初めてmajor-modeを作りました。
そのときに参考になったものや、得られた知見を共有します。
もっと良いやり方あったら教えてください。
関数型言語MLの一種Objective Camlを題材としてプログラミング言語の意味論,型システム,プログラミング言語の基礎概念,これらの概念間の数学的な関連を学ぶ.オンライン演習システムを用いて,「証明」を解答とする演習問題の正誤をWeb上で自動判定することもできる.
オンライン演習システムで
回答があっているか確認
エディタの補助が欲しい
編集して送信、を繰り返すの面倒
なんとかしよう
http://www.wilfred.me.uk/blog/2015/03/19/adding-a-new-language-to-emacs/
を参考にしながら
を実装
define-derived-mode
で派生モードを作る
syohex/emacs-hcl-mode などを参考にしながら実装
こういう複数行コメントの対応
自前でインデント量を計算
or
SMIEを使うべき
(時間が無かったので実装を諦めました)
書いてる最中にエラーがわかる
仕組み
著者の五十嵐先生が公開しているcopl-toolsをdockerで動かす
構文チェッカーの標準出力を
$ echo 'Z plus Z is Z ?' | docker run --rm -i copl-tools checker -game Nat
line 1, character 14 -- line 1, character 15
Incomplete derivation
Flycheckでparseするだけ
簡単なのでみんなもFlycheck拡張作ろう:
最近作ったやつ:
Emacsで快適に演習問題を解けるようになった!
問題たくさん解いた。(57 / 431 位)
extensible, customizable