elixir-modeをハックしてみた
elixir向けのemacs メジャーモードとしてはhttps://github.com/secondplanet/elixir-modeがあるのだが、0.4.0-dev以降のelixirには対応していない。elixir側も結構キーワードが変わっているし、作者氏も更新するのをやめてしまったみたいだし、インデントコマンドが無限ループするなど微妙なのだ。
ということで、forkしてクイックハックしてみた。
GitHub - k1complete/elixir-mode: Emacs major mode for Elixir
においているので適当にgit cloneしてみてください。
変更内容
ハイライトのキーワード追加
defmacro, defmodule, defrecordなどを追加。
制御変数を追加
elixir-basic-offset | 8 | 通常のインデントの単位 |
elixir-key-label-offset | 2 | caseでのmatchラベルやelseラベルのインデント単位。0だと、インデント無し |
バグ修正
インデント動作で時々無限ループするバグの修正
インデントルール改善
match:などのインデントに対応
使い方
.emacs.d/elixir-mode/にelixir-mode.elをおいて、
(add-to-list 'load-path "~/.emacs.d/elixir-mode") (require 'elixir-mode) (setq elixir-basic-offset default-tab-width) ;; 適当に8とか4とか (setq elixir-key-label-offset 2) ;; match:やelse:を変更しないなら0でよい
を.emacsへ追加する。
今後
まだsecondplanet氏のコードを全部理解している訳でもないし、メジャーモード作るのもはじめてなのでw 勉強しないとw