diff options
Diffstat (limited to '')
| -rw-r--r-- | flake.nix | 8 | ||||
| -rw-r--r-- | lsp/rust-analyzer.lua | 26 | ||||
| -rw-r--r-- | lua/config/lsp.lua | 1 | ||||
| -rw-r--r-- | lua/config/plugins/formatting.lua | 1 | 
4 files changed, 36 insertions, 0 deletions
| @@ -129,11 +129,19 @@                  lua-language-server                  stylua                ]; +                nix = [                  nix-doc                  nixd                  nixfmt-rfc-style                ]; + +              rust = [ +                # NOTE: required to find project root +                # NOTE: for now unused, so commented out +                # cargo +                rust-analyzer +              ];              };            }; diff --git a/lsp/rust-analyzer.lua b/lsp/rust-analyzer.lua new file mode 100644 index 0000000..51f5037 --- /dev/null +++ b/lsp/rust-analyzer.lua @@ -0,0 +1,26 @@ +return { +	cmd = { "rust-analyzer" }, +	root_markers = { "Cargo.toml" }, +	filetypes = { "rust" }, + +	settings = { +		["rust-analyzer"] = { +			checkOnSave = { command = "clippy" }, + +			diagnostics = { +				enable = true, +				experimental = { enable = true }, +			}, + +			inlayHints = { +				enable = true, +				bindingModeHints = { enable = false }, +				closingBraceHints = { minLines = 10 }, +				closureReturnTypeHints = { enable = "with_block" }, +				discriminantHints = { enable = "fieldless" }, +				lifetimeElisionHints = { enable = "skip_trivial" }, +				typeHints = { hideClosureInitialization = false }, +			}, +		}, +	}, +} diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index 37e3b6f..6d4a680 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -1,2 +1,3 @@  vim.lsp.enable("lua-language-server")  vim.lsp.enable("nixd") +vim.lsp.enable("rust-analyzer") diff --git a/lua/config/plugins/formatting.lua b/lua/config/plugins/formatting.lua index 8a4c6ab..9563905 100644 --- a/lua/config/plugins/formatting.lua +++ b/lua/config/plugins/formatting.lua @@ -9,6 +9,7 @@ return {  				formatters_by_ft = {  					lua = { "stylua" },  					nix = { "nixfmt" }, +					rust = { "rustfmt", lsp_format = "fallback" },  				},  			}) | 
