空気を読んでインデントを設定してくれるky-indent.elをリリースしました

空気を読んでインデントを設定してくれるky-indent.elを書いてみました。

なにするの?

インデント設定の違うコードをいじってると、インデントがづれていやーな気分になります。

そこで、ky-indentはファイルを開いたとき(あるいはM-x ky-indentとしたとき)に、ファイルの内容をチェックして、空気を読んだインデントを設定してくれます。

ダウンロード/インストール

コードはgistに置いてあります。

インストールは、ky-indent.elをload-pathにあるディレクトリに置いて、.emacs に以下の記述を追加するだけです。

(require 'ky-indent)
(ky-indent-init)

もっと詳しい設定

;; 試してみるタブ幅
(setq ky-indent-tab-width-list '(4 8))

;; 試してみるインデントの深さ
(setq ky-indent-indent-offset-list '(2 3 4 8))

;; 先頭1000バイトだけをチェックする。nilならバッファ全体
(setq ky-indent-point-max 1000)

;; 空気を読むメジャーモード
(setq ky-indent-enable-mode-hooks '(cc-mode-hook
                                    java-mode-hook
				     python-mode-hook
				     perl-mode-hook))

;; メジャーモードとインデントの深さを示す変数名の対応表
(setq ky-indent-setting
  '((cc-mode         . c-basic-offset)
    (java-mode       . c-basic-offset)
    (python-mode     . python-indent)
    (perl-mode       . perl-indent-level)
    ;; you can use also lambda.
    (emacs-lisp-mode . (lambda(i) (setq lisp-indent-offset i)))
    (haxe-mode       . c-basic-offset)
    ))

;; この正規表現に一致するファイルだけ空気を読む
(setq ky-indent-regexp "")

;; この正規表現に一致するファイルは空気を読まない
(setq ky-indent-exclude-regexp "^$")