LoginSignup
7

More than 5 years have passed since last update.

Emacs で Crystal を書く

Last updated at Posted at 2015-08-01

みんな大好き Emacs で Crystal を書くための記事です。

Ruby ライクなシンタックスを持っているということもあって意外と ruby-mode でいけるのでは感はあります。実際、Crystal 独自機能を使わないようなコードを書く分には十分です。
ただ、型宣言とかマクロのような Crystal 独特のものを書こうとすると ruby-mode ではシンタックスハイライトが死にます。やはり Crystal に合わせたメジャーモードを使いたいところです。

ruby-mode でマクロを表示させた時の悲しい例:
image

そして Crystal Wiki の Editor support で Emacs がハブられている!どういうことだ!

メジャーモード

jpellerin/emacs-crystal-mode

crystal-mode があります。が、このメジャーモードは今のとこ MELPA とかに登録されている気配が無いです… 1
el-get 使いなら以下の一文を init.el にでも書いときましょう。

(el-get-bundle jpellerin/emacs-crystal-mode)

マクロもちゃんとハイライトされてます。String interpolation がまだあやしいけど…
image

自分は使ってないですが、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 書きましょう :exclamation:

REF

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7