みんな大好き Emacs で Crystal を書くための記事です。
Ruby ライクなシンタックスを持っているということもあって意外と ruby-mode でいけるのでは感はあります。実際、Crystal 独自機能を使わないようなコードを書く分には十分です。
ただ、型宣言とかマクロのような Crystal 独特のものを書こうとすると ruby-mode ではシンタックスハイライトが死にます。やはり Crystal に合わせたメジャーモードを使いたいところです。
そして Crystal Wiki の Editor support で Emacs がハブられている!どういうことだ!
メジャーモード
crystal-mode があります。が、このメジャーモードは今のとこ MELPA とかに登録されている気配が無いです… 1
el-get 使いなら以下の一文を init.el
にでも書いときましょう。
(el-get-bundle jpellerin/emacs-crystal-mode)
マクロもちゃんとハイライトされてます。String interpolation がまだあやしいけど…
自分は使ってないですが、flycheck 用のコードも入っているみたいです。
マイナーモード
マイナーモードに関しては、Ruby のものを流用することができます。
たとえば、
- ruby-block
-
end
に対応する行をハイライトしてくれる
-
- ruby-end
-
def
,if
等に対応したend
を自動で挿入してくれる
-
(add-hook 'crystal-mode-hook 'ruby-block-mode)
(add-hook 'crystal-mode-hook 'ruby-end-mode)
そのほか
Projectfile は crystal-mode で開くよう設定しておきましょう。
(add-to-list 'auto-mode-alist '("Projectfile$" . crystal-mode))
おわりに
みんなで Crystal 書きましょう