new lsp conf
This commit is contained in:
		
							
								
								
									
										68
									
								
								nvim/lua/new_lsp_conf.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								nvim/lua/new_lsp_conf.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					-- Mappings.
 | 
				
			||||||
 | 
					-- See `:help vim.diagnostic.*` for documentation on any of the below functions
 | 
				
			||||||
 | 
					local opts = { noremap=true, silent=true }
 | 
				
			||||||
 | 
					vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
 | 
				
			||||||
 | 
					vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
 | 
				
			||||||
 | 
					vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
 | 
				
			||||||
 | 
					vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Use an on_attach function to only map the following keys
 | 
				
			||||||
 | 
					-- after the language server attaches to the current buffer
 | 
				
			||||||
 | 
					local on_attach = function(client, bufnr)
 | 
				
			||||||
 | 
					  -- Enable completion triggered by <c-x><c-o>
 | 
				
			||||||
 | 
					  vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- Mappings.
 | 
				
			||||||
 | 
					  -- See `:help vim.lsp.*` for documentation on any of the below functions
 | 
				
			||||||
 | 
					  local bufopts = { noremap=true, silent=true, buffer=bufnr }
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>K', vim.lsp.buf.hover, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>gi', vim.lsp.buf.implementation, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>k', vim.lsp.buf.signature_help, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>wl', function()
 | 
				
			||||||
 | 
					    print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
 | 
				
			||||||
 | 
					  end, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>gr', vim.lsp.buf.references, bufopts)
 | 
				
			||||||
 | 
					  vim.keymap.set('n', '<leader>f',function() vim.lsp.buf.format { async = true } end, bufopts)
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local lsp_flags = {
 | 
				
			||||||
 | 
					  -- This is the default in Nvim 0.7+
 | 
				
			||||||
 | 
					  debounce_text_changes = 150,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					require('mason-lspconfig').setup_handlers{
 | 
				
			||||||
 | 
						function(server_name)
 | 
				
			||||||
 | 
							require('lspconfig')[server_name].setup{
 | 
				
			||||||
 | 
					    on_attach = on_attach,
 | 
				
			||||||
 | 
					    flags = lsp_flags,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						['rust_analyzer'] = function()
 | 
				
			||||||
 | 
							require('rust-tools').setup {}
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
						['sumneko_lua'] = function()
 | 
				
			||||||
 | 
							require('lspconfig')["sumneko_lua"].setup {
 | 
				
			||||||
 | 
								settings = {
 | 
				
			||||||
 | 
									Lua = {
 | 
				
			||||||
 | 
										diagnostics = {
 | 
				
			||||||
 | 
											globals = { "vim" }
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					require('lspconfig')['rust_analyzer'].setup{
 | 
				
			||||||
 | 
					    on_attach = on_attach,
 | 
				
			||||||
 | 
					    flags = lsp_flags,
 | 
				
			||||||
 | 
					    -- Server-specific settings...
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      ["rust-analyzer"] = {}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user