generated at
ale
概要
編集中のバッファに対して、非同期でリンタやフィクサを実行できるVimプラグインです
Language Server Protocoltsserverのクライアントとしても利用できます

インストール
toml
[[plugins]] repo = 'w0rp/ale'

使い方
基本的には、特に設定をしなくとも、いい感じに動いてくれます
ただし、以下のようなことをしたいときは、設定が必要です
ファイルを保存したときだけリンタを実行したい
特定のリンタのみを実行したい

用語
ソースコードの文法チェックを行うプログラムのこと
フィクサ
prettiergofmt等のソースファイルの整形を行うツールをaleではフィクサと呼びます

マーカーの変更方法
g:ale_sign_warning 及び g:ale_sign_error を設定することで、マーカーを変更できます
例えば、以下のように設定すると、警告時のマーカーが「🥺」に、エラー発生時のマーカーが「🙅」になります
vim
let g:ale_sign_warning = "🥺" let g:ale_sign_error = "🙅"

キーボードマッピングの設定
vim
nmap <Leader>a [ale] ... " <Leader>alでリンタを実行する nmap <silent> [ale]l <Plug>(ale_lint) " <Leader>afでフィックサを実行する nmap <silent> [ale]f <Plug>(ale_fix)

コマンド
:ALEFindReferences
カーソル直下のシンボルの参照を一覧表示します

:ALELint
編集中のバッファに対してリンタを実行します

:ALEFix
編集中のバッファに対してフィクサを実行します
実行対象のフィクサは g:ale_fixers で設定できます
vim
let g:ale_fixers = { \ '*': ['remove_trailing_lines', 'trim_whitespace'], \ 'javascript': ['eslint'], \ 'typescript': s:has_deno ? ['deno'] : ['prettier'], \ 'go': ['gofmt'] \}

変数
g:ale_linters
ファイルタイプをキー、linterプログラムの一覧を値として保持する辞書を設定する。
g:ale_linters_explicit
g:ale_linters または b:ale_linters で指定されたlinterのみを実行する。
g:ale_lint_delay
linterを実行する間隔を秒単位で指定する。
g:ale_completion_enabled
aleを読み込む前に設定しておくと、自動補完が有効化される。

asyncomplete.vimを使って自動補完する
aleasyncomplete.vimをサポートしています
vimrc等で以下のように記述しておくと、LSPまたはtsserverを使用した自動補完が効きます
vim
autocmd User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#ale#get_source_options({ \ 'priority': 10 \ }))

tips
.vue ファイルに対してEslintを実行する
vim
let g:ale_linters_explicit = 1 let g:ale_linters = { \ 'javascript': ['eslint'], \ 'vue': ['eslint'] \ }

ファイルを保存した時だけlinterを実行する