diff options
Diffstat (limited to '.config/nvim/lua/_lsp/init.lua')
-rw-r--r-- | .config/nvim/lua/_lsp/init.lua | 59 |
1 files changed, 54 insertions, 5 deletions
diff --git a/.config/nvim/lua/_lsp/init.lua b/.config/nvim/lua/_lsp/init.lua index 4515e7c..12ce36a 100644 --- a/.config/nvim/lua/_lsp/init.lua +++ b/.config/nvim/lua/_lsp/init.lua @@ -1,8 +1,24 @@ ---TODO figure out why this don't work -vim.fn.sign_define("LspDiagnosticsSignError", {texthl = "LspDiagnosticsSignError", text = "", numhl = "LspDiagnosticsSignError"}) -vim.fn.sign_define("LspDiagnosticsSignWarning", {texthl = "LspDiagnosticsSignWarning", text = "", numhl = "LspDiagnosticsSignWarning"}) -vim.fn.sign_define("LspDiagnosticsSignInformation", {texthl = "LspDiagnosticsSignInformation", text = "", numhl = "LspDiagnosticsSignInformation"}) -vim.fn.sign_define("LspDiagnosticsSignHint", {texthl = "LspDiagnosticsSignHint", text = "", numhl = "LspDiagnosticsSignHint"}) +-- TODO figure out why this don't work +vim.fn.sign_define("LspDiagnosticsSignError", { + texthl = "LspDiagnosticsSignError", + text = "", + numhl = "LspDiagnosticsSignError" +}) +vim.fn.sign_define("LspDiagnosticsSignWarning", { + texthl = "LspDiagnosticsSignWarning", + text = "", + numhl = "LspDiagnosticsSignWarning" +}) +vim.fn.sign_define("LspDiagnosticsSignInformation", { + texthl = "LspDiagnosticsSignInformation", + text = "", + numhl = "LspDiagnosticsSignInformation" +}) +vim.fn.sign_define("LspDiagnosticsSignHint", { + texthl = "LspDiagnosticsSignHint", + text = "", + numhl = "LspDiagnosticsSignHint" +}) vim.cmd('nnoremap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR>') vim.cmd('nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR>') @@ -17,3 +33,36 @@ vim.cmd('nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR>') vim.cmd('nnoremap <silent> <C-f> <cmd>lua require(\'lspsaga.action\').smart_scroll_with_saga(1)<CR>') -- scroll up hover doc vim.cmd('nnoremap <silent> <C-b> <cmd>lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)<CR>') +vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') + +--[[ " autoformat +autocmd BufWritePre *.js lua vim.lsp.buf.formatting_sync(nil, 100) +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 <Cmd>lua require('jdtls').code_action()<CR> + +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! * <buffer> + autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight() + autocmd CursorMoved <buffer> 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 |