## 前提
以下がインストールされている。
- [[nvim-lspconfig]]
- [[rust-analyzer]]
- [[Clippy]]
- [[rustfmt]]
## rust-analyzerの設定
[[nvim-lspconfig]]で[[rust-analyzer]]を設定する。
> [nvim-lspconfig/doc/server_configurations.md#rust_analyzer](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer)
### [[リンター]]には[[Clippy]]を使う
```lua
local lspconfig = require("lspconfig")
lspconfig.rust_analyzer.setup({
settings = {
["rust-analyzer"] = {
check = {
command = "clippy",
},
},
},
})
```
### ファイル保存時に自動フォーマット
[[rust-analyzer]] (内部的には[[rustfmt]]) を使ってフォーマットする。[[rust-analyzer]]の設定はデフォルトがフォーマット機能有効のため、そのままで問題ない。
あとは、[[ファイルが保存されたら自動フォーマット (nvim-lspconfig)|ファイルが保存されたら自動フォーマット]]されるように設定する。
## 参考
- [rust\-analyzer/docs/user/generated\_config\.adoc at master · rust\-lang/rust\-analyzer](https://github.com/rust-lang/rust-analyzer/blob/master/docs/user/generated_config.adoc)
- [nvim\-lspconfig/doc/server\_configurations\.md at master · neovim/nvim\-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer)