Rista Tech Blog

株式会社リスタの技術?ブログ

werckerにブチ切れられてばかりなのでVim + ALE(Asynchronous Lint Engine)を使って効率的にLintを実行するぞ!

こんにちは。辻(@dim0627)です。

今週はMacがぶっ壊れて仕事ができないのでブログを書くだけの人になりました。

嘘です。前に使ってたMacBookAirで仕事してます。 JIS配列つらいです。アットマークとバッククォートを出すときに毎度ストレスが溜まります。

さて、ここのところwerckerの実行がゆっくりで効率が悪くなってきたので、 もうCI前にちゃんと手元でLintかけるようにしよう!と思いたちsyntasticの設定をちゃんとやりはじめました。

が、なんか最近はALEとやらのほうがモダンらしいのでそっちのことを書きます!

ALE(Asynchronous Lint Engine)

Asynchronous Lint Engine

なんかsyntasticよりもいい感じのシンタックスチェッカーらしい! 最近はこっちが主流なんでしょうか?完全に話題についていけてない。

vim-syntastic/syntastic: Syntax checking hacks for vim

syntasticはLintの実行を同期的にやってるらしく、チェック中はVimの操作が持ってかれちゃうんだとか。 あんまり気にしてなかったけど、言われてみればそうかもしれない。

ALEのインストール

僕は暗黒美無王様のdein.vimを使ってるのでこんな感じ。

Shougo/dein.vim: Dark powered Vim/Neovim plugin manager

[[plugins]]
repo = 'w0rp/ale'

Lint対象とLintの実行

Supported Languages and Toolsに書いてあるんだけど、ALEはめちゃくちゃたくさんのファイルに対応してるらしい。

そしてインストールが済んでしまえば編集中にLintが走るようになってるらしい。保存時じゃなくて編集中ね!

保存時だけでいいよって場合はこう

僕はせっかくだから編集中にもLintが走るようにしてるけど、そんなにいらない場合はvimrcにこんな感じ。(やっぱり辛かったので僕もoffにしました)

How can I run linters only when I save files?

" Write this in your vimrc file
let g:ale_lint_on_text_changed = 'never'
" You can disable this option too
" if you don't want linters to run on opening a file
let g:ale_lint_on_enter = 0

いらないLintをOFFにする

なんかERBでひどいことになったのでいらない設定はOFFにすることにしました。(弊社ではhamlですよ!)

f:id:dim0627:20170912141934p:plain

How do I disable particular linters?

let g:ale_linters = {
\   'eruby': [],
\}

これで少しは快適なLint生活が送れそうです!

Ristaでは4人目のエンジニアを募集してます

株式会社リスタではたらいてみませんか。

そろそろyarnが入ったりES6になったり色々新しいことが始まりそうなので、ジョインするなら今ですよ!(ジョインってかっこいいね!)

また、Web以外にもAndroidやiOSアプリもあります。出したばっかりなのでまだまだ裁量もってやれる範囲が大きいですよ。

気になったら気軽にお話を聞きに来てね!

株式会社リスタの採用/求人一覧 - Wantedly