8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

  1. Issue をたてたぞ Make crystal-mode available on MELPA · Issue #6 · jpellerin/emacs-crystal-mode

8
7
0

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
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?