From 6ed2437edbbc49f03df1023f4dae723cc7ba77d3 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 17 Mar 2021 20:32:52 -0400 Subject: new language servers and smart document highlighting --- lua/lsp/init.lua | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'lua/lsp/init.lua') diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index 7ae6bab3..6b42f856 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -30,8 +30,7 @@ vim.cmd('nnoremap K :Lspsaga hover_doc') vim.cmd('nnoremap :Lspsaga diagnostic_jump_prev') vim.cmd('nnoremap :Lspsaga diagnostic_jump_next') -- scroll down hover doc or scroll in definition preview -vim.cmd( - 'nnoremap lua require(\'lspsaga.action\').smart_scroll_with_saga(1)') +vim.cmd('nnoremap lua require(\'lspsaga.action\').smart_scroll_with_saga(1)') -- scroll up hover doc vim.cmd( 'nnoremap lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)') @@ -42,3 +41,28 @@ autocmd BufWritePre *.jsx lua vim.lsp.buf.formatting_sync(nil, 100) autocmd BufWritePre *.lua lua vim.lsp.buf.formatting_sync(nil, 100) ]] -- Java -- autocmd FileType java nnoremap ca lua require('jdtls').code_action() + +local lsp_config = {} + +function lsp_config.common_on_attach(client, bufnr) + + -- Set autocommands conditional on server_capabilities + if client.resolved_capabilities.document_highlight then + vim.api.nvim_exec([[ + hi LspReferenceRead cterm=bold ctermbg=red guibg=#464646 + hi LspReferenceText cterm=bold ctermbg=red guibg=#464646 + hi LspReferenceWrite cterm=bold ctermbg=red guibg=#464646 + augroup lsp_document_highlight + autocmd! * + autocmd CursorHold lua vim.lsp.buf.document_highlight() + autocmd CursorMoved lua vim.lsp.buf.clear_references() + augroup END + ]], false) + end +end + +-- Use a loop to conveniently both setup defined servers +-- and map buffer local keybindings when the language server attaches +-- local servers = {"pyright", "tsserver"} +-- for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup {on_attach = on_attach} end +return lsp_config -- cgit v1.2.3