improved rust LSP
This commit is contained in:
		
							parent
							
								
									1982df0a63
								
							
						
					
					
						commit
						6ac0abba12
					
				
					 3 changed files with 43 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -35,7 +35,7 @@ end
 | 
			
		|||
-- Use a loop to conveniently call 'setup' on multiple servers and
 | 
			
		||||
-- map buffer local keybindings when the language server attaches
 | 
			
		||||
-- 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
 | 
			
		||||
	nvim_lsp[lsp].setup {
 | 
			
		||||
		flags = {
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +44,39 @@ for _, lsp in ipairs(servers) do
 | 
			
		|||
	}
 | 
			
		||||
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.
 | 
			
		||||
local runtime_path = vim.split(package.path, ';')
 | 
			
		||||
table.insert(runtime_path, "lua/?.lua")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@ for _, lsp in ipairs(servers) do
 | 
			
		|||
end
 | 
			
		||||
 | 
			
		||||
-- Set completeopt to have a better completion experience
 | 
			
		||||
vim.o.completeopt = 'menuone,noselect'
 | 
			
		||||
vim.o.completeopt='menu,menuone,preview,noinsert'
 | 
			
		||||
 | 
			
		||||
-- nvim-cmp setup
 | 
			
		||||
local cmp = require 'cmp'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,8 @@ return require('packer').startup(function(use)
 | 
			
		|||
 | 
			
		||||
	use 'yamatsum/nvim-cursorline'
 | 
			
		||||
 | 
			
		||||
	use 'simrat39/rust-tools.nvim'
 | 
			
		||||
 | 
			
		||||
	use {'stevearc/dressing.nvim',
 | 
			
		||||
		config=function()
 | 
			
		||||
			require('dressing').setup{}
 | 
			
		||||
| 
						 | 
				
			
			@ -86,6 +88,12 @@ return require('packer').startup(function(use)
 | 
			
		|||
		end
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	use {'glepnir/lspsaga.nvim',
 | 
			
		||||
		requires = {
 | 
			
		||||
			'neovim/nvim-lspconfig',
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	use {'hrsh7th/nvim-cmp',
 | 
			
		||||
		requires = {
 | 
			
		||||
			'neovim/nvim-lspconfig',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue