vim で Rust するときの設定をまとめる。
CONTENTS
ENVIRONMENTS
- NVIM v0.3.8
- rust.vim : GitHub
- coc.nvim : GitHub
- ale : GitHub
出来上がったもの
rust.vim の設定。
[[plugins]] repo = 'rust-lang/rust.vim' hook_add = ''' let g:rustfmt_autosave = 0 ''' on_ft = ['rust']
必要なコンポーネントのインストール。
rustup component add rls rust-analysis rust-src
CocConfig の設定。
{ "languageserver": { "rust": { "command": "rustup", "args": ["run", "stable", "rls"], "filetypes": ["rust"] } } }
ALE による、保存後の整形の設定。
[[plugins]] repo = 'dense-analysis/ale' hook_add = ''' let g:ale_fix_on_save = 1 let g:ale_fixers = { \ 'rust': ['rustfmt'], \} let g:ale_rustfmt_executable = 'rustfmt' '''
rust.vim のインストール
基本的なプラグインとして rust.vim をインストールしておく。 以下は dein の設定内容。
[[plugins]] repo = 'rust-lang/rust.vim' hook_add = ''' let g:rustfmt_autosave = 0 ''' on_ft = ['rust']
保存後の整形は ALE に任せるので、g:rustfmt_autosave = 0
に設定しておく。
というよりも、rust.vim から rustfmt をうまく呼びだせず、この設定を off にしていたことを思い出した。 rust.vim から rustfmt できるなら、ALE の設定は必要ない。
- Rust をいじっていた時期を振り返ってみたらもう1年か…
必要なコンポーネントのインストール
Language Server として、rust-lang/rls を使用する。
README によれば、rls
、rust-analysis
、rust-src
が必要。
rustup component add rls rust-analysis rust-src
CocConfig の設定
Language Server の起動には coc.nvim を使用している。
:CocConfig
に以下の設定を追加する。
{ "languageserver": { "rust": { "command": "rustup", "args": ["run", "stable", "rls"], "filetypes": ["rust"] } } }
これで補完が効くようになれば成功。
ALE の設定
保存後の整形は ALE で行なっている。
[[plugins]] repo = 'dense-analysis/ale' hook_add = ''' let g:ale_fix_on_save = 1 let g:ale_fixers = { \ 'rust': ['rustfmt'], \} let g:ale_rustfmt_executable = 'rustfmt' '''
rust.vim で rustfmt にアクセスできれば、この設定は必要ないはず。
まとめ
vim で rust するときの設定をまとめた。
Language Server の力は偉大。