EmacsでRubyのハッシュ記法を読みやすくする


次のようにハッシュのキーと値が両方シンボルで横に羅列しているとき、ひと目、何がキーで何が値なのかわかりません。

全部シンボルなので同じ色になるのは仕方がないのですが、読みやすさを考慮してキーの色を変更します。

(setq my-ruby-highlight-keywords '(
  ("\\(?:^\\s *\\|[[{(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+:\\)[^:]"
    (1 (progn (forward-char -1) font-lock-preprocessor-face)))))

(defun my-ruby-highlight ()
  (font-lock-add-keywords nil my-ruby-highlight-keywords))

(add-hook 'ruby-mode-hook #'my-ruby-highlight)

font-lock-preprocessor-face はもともと正規表現のオプションのところにしか使ってないのでこれを流用します。他の face でもよいです。

上を設定すると次のようになります。

ちょっと見やすくなりました。