Umi Uyuraのブログ

プログラミング関連の作業ログ

FlycheckでESLintの設定を育てるときのメモ

Flycheckを導入しているものの、普段は一緒に導入している flycheck/flycheck-pos-tip でエラー箇所をポップアップさせて、その部分を修正していくという使い方をしています。

先日、EmacsでESLintを使える環境を作って、自分好みの設定を模索しようとしているのですが。

umi-uyura.hatenablog.com

まだ、ほとんど推奨設定の状態ということもあり、そのまま使うといろんな所でエラーやら警告やらが出てきます。

そのあたり、ひとつひとつエラーの内容を調べつつ、自分的に無視するか有効にするかを判断していくわけですが、さすがに似たようなエラーも大量に出てくるため、ある程度まとめて調べたいと思うようになりました。

エラーになっているルールを調べる方法

先に述べたとおり、通常の使い方としては flycheck/flycheck-pos-tip でエラー箇所にポップアップを表示しています。

f:id:umi-uyura:20151109235006p:plain

が、この方法ではエラーの説明は表示されていますが、ESLintの設定を変更するためには知りたいルールの ID がわかりません。

そこで、まずはFlycheckの使い方を調べたところ、エラーの情報を知るには以下の3つの方法がありそうでした。

コマンド 機能
C-c ! l
M-x flycheck-list-errors
M-x list-flycheck-errors
現在のバッファの全てのエラーの一覧を表示する
C-c ! C-w
M-x flycheck-copy-errors-as-kill
現在位置のエラーメッセージをKill-ringにコピーする
C-u C-c ! C-w
C-u M-x flycheck-copy-errors-as-kill
現在位置のエラーメッセージとIDをKill-ringにコピーする

ピンポイントで知りたい場合は、 C-u をつけた flycheck-copy-errors-as-kill でエラーの ID を取得することができます。

しかし、現状は大量に出てくるエラーを、ある程度まとまって調べてしまいたいこともあり、 flycheck-list-errors でリスト表示したものをベースに、設定をいじる方が効率が良さそうです。

ただ、ここでも一つ問題が。

f:id:umi-uyura:20151109235023p:plain

ルールを示すのは、リストの中の ID の部分なのですが、デフォルトだと幅が狭すぎて、IDが読めません。

特に、React用のプラグインなどはIDも長くなりがちなので、このままではちょっと使いにくいです。

エラーリストの幅を変える

どうやら flycheck-error-list-format にエラーリストの幅設定があるようだったので、.emacsに以下のような感じで設定。

(eval-after-load 'flycheck
  '(custom-set-variables
    '(flycheck-error-list-format [("Line" 4 flycheck-error-list-entry-< :right-align t)
                                  ("Col" 3 nil :right-align t)
                                  ("Level" 8 flycheck-error-list-entry-level-<)
                                  ("ID" 20 t)       ; <- 初期値は6
                                  ("Message" 0 t)
                                  (" (Checker)" 8 t)])
    ))

初期値 6ID の幅を 20 に設定してみたところ、私の環境では、それなりに識別できそうになりました。

f:id:umi-uyura:20151109235038p:plain

もう少し広げても良いかなー、と思いつつ、これで多少カスタマイズが捗りそうです。

※2016/05/14 追記

flycheck-error-list-format のフォーマットが変わったようなので、それに合わせて設定を変更しました。

umi-uyura.hatenablog.com

環境

項目 バージョン 備考
OS Mac OS X 10.10.5 -
Emacs 24.5.1 Homebrew版
Flycheck 0.25snapshot (20151106.559) MELPA版

参考