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 の力は偉大。