improved rust LSP

This commit is contained in:
Gabe Venberg 2022-01-19 00:17:58 -06:00
parent 1982df0a63
commit 6ac0abba12
3 changed files with 43 additions and 2 deletions

View file

@ -35,7 +35,7 @@ end
-- Use a loop to conveniently call 'setup' on multiple servers and -- Use a loop to conveniently call 'setup' on multiple servers and
-- map buffer local keybindings when the language server attaches -- map buffer local keybindings when the language server attaches
-- the packages for these servers are: pyright, rust-analyzer, texlab, and lua-language-server -- the packages for these servers are: pyright, rust-analyzer, texlab, and lua-language-server
local servers = { 'pyright', 'rust_analyzer', 'texlab'} local servers = { 'pyright', 'texlab'}
for _, lsp in ipairs(servers) do for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup { nvim_lsp[lsp].setup {
flags = { flags = {
@ -44,6 +44,39 @@ for _, lsp in ipairs(servers) do
} }
end end
--rust configuration
local rustOpts = {
tools = { -- rust-tools options
autoSetHints = true,
hover_with_actions = true,
inlay_hints = {
show_parameter_hints = false,
parameter_hints_prefix = "",
other_hints_prefix = "",
},
},
-- all the opts to send to nvim-lspconfig
-- these override the defaults set by rust-tools.nvim
-- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer
server = {
-- on_attach is a callback called when the language server attachs to the buffer
-- on_attach = on_attach,
settings = {
-- to enable rust-analyzer settings visit:
-- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc
["rust-analyzer"] = {
-- enable clippy on save
checkOnSave = {
command = "clippy"
},
}
}
},
}
require('rust-tools').setup(rustOpts)
--lua-language-server needs seperate config. --lua-language-server needs seperate config.
local runtime_path = vim.split(package.path, ';') local runtime_path = vim.split(package.path, ';')
table.insert(runtime_path, "lua/?.lua") table.insert(runtime_path, "lua/?.lua")

View file

@ -19,7 +19,7 @@ for _, lsp in ipairs(servers) do
end end
-- Set completeopt to have a better completion experience -- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect' vim.o.completeopt='menu,menuone,preview,noinsert'
-- nvim-cmp setup -- nvim-cmp setup
local cmp = require 'cmp' local cmp = require 'cmp'

View file

@ -17,6 +17,8 @@ return require('packer').startup(function(use)
use 'yamatsum/nvim-cursorline' use 'yamatsum/nvim-cursorline'
use 'simrat39/rust-tools.nvim'
use {'stevearc/dressing.nvim', use {'stevearc/dressing.nvim',
config=function() config=function()
require('dressing').setup{} require('dressing').setup{}
@ -86,6 +88,12 @@ return require('packer').startup(function(use)
end end
} }
use {'glepnir/lspsaga.nvim',
requires = {
'neovim/nvim-lspconfig',
}
}
use {'hrsh7th/nvim-cmp', use {'hrsh7th/nvim-cmp',
requires = { requires = {
'neovim/nvim-lspconfig', 'neovim/nvim-lspconfig',