Rustをnvim上で使うためのセットアップをしてみた
はじめに
現在担当しているプロジェクトはこれまで主に Python・TypeScript・Scala(Java)の3言語を利用していました。大体はAWSを使う上での利便性が理由です。そして、先日Rustも加わることになりました。
Rustが動作する環境ではなかったためセットアップを行いつつ、vim上で快適に利用するためのプラグイン導入についても記録しておきます。
Rustのセットアップ
DevIOで既にセットアップの記事が上がっていましたが、現在推奨されている方法に変更はないようです。
Rust用vimプラグインの導入
デファクトスタンダードなプラグインがいくつかありますが、今回は2つに絞ります。
rust.vim
メジャーなプラグインとしてはrust-lang/rust.vimがあります。
dein.tomlに記述する場合は以下のようになります。
[[plugins]]
repo = 'rust-lang/rust.vim'
特に挙げるような設定項目はありません。オプションとしてPlaypenとの連携設定も可能です。
neoclide/coc-rls
そしてもう一つ。coc.nvimベースで動作するneoclide/coc-rlsです。coc.nvimについては以前にcoc-metalsを取り上げた際に触れています。
まずはrustupで依存ライブラリをインストールします。
rustup component add rls rust-analysis rust-src
その後、coc-rlsをインストールします。
:CocInstall coc-rls
Install finished-
✓ coc-rls Installed extension coc-rls@1.1.6 at /Users/XXXXXX/.config/coc/extensions/node_modules/coc-rls
初期設定にて以下の要素が有効になっているため、インストールした直後でも不自由はありません。
- syntax-highlight
- ポップアップコンテキストでのtips表示
- DYLD_LIBRARY_PATHとLD_LIBRARY_PATHの指定
- rustupのパス設定
- warningsの表示
- racerを利用したコード補完
- cargoによる
--all-target
指定でのチェック
保存時に整形したい場合には、:CocConfig
にてformatOnSaveFiletypesにrustを追加しておきましょう。
{
"coc.preferences.formatOnSaveFiletypes": [
"rust"
]
}
あとがき
利用する言語の増加は依存ライブラリの増加も意味しています。個人的には整合性が取れつつ、テストによるカバレッジが取れていれば問題ありません(過去の職場経験上phpとCOBOLは除く)。
社内でRustの利用者を周りで多く見るようになりつつ、業務での利用も増えてきました。個人的にはPythonの言語仕様に煩わしさを感じることが多いほど比較的刺さる面が多い言語仕様だと思ったので、気になる方は触ってみることをおすすめします。