if vim.api.nvim_eval("executable('pyls')") then require'lspconfig'.pyls.setup{} end if vim.api.nvim_eval("executable('rust-analyzer')") then require'lspconfig'.rust_analyzer.setup{} end if vim.api.nvim_eval("executable('texlab')") then require'lspconfig'.texlab.setup{ settings = { latex = { build = { onSave = true; }; forwardSearch = { executable = "zathura"; args = {"--synctex-forward", "%l:1:%f", "%p"}; } }; }; commands = { ZathuraShow = { function() vim.lsp.buf_request(0, "textDocument/forwardSearch", vim.lsp.util.make_position_params(), function(err, _, _, _) if err then error(tostring(err)) end end ) end; description = "Show the current position in zathura"; } } } vim.api.nvim_set_keymap("n", "gz", "ZathuraShow", { noremap = true, silent = true }) end if vim.api.nvim_eval("isdirectory($HOME. '/.cache/nvim/lspconfig/jdtls')") then require'lspconfig'.jdtls.setup{} end -- g(o) d(efinition) vim.api.nvim_set_keymap("n", "gd" , "lua vim.lsp.buf.definition()", { noremap = true, silent = true }) -- g(o) r(eference) vim.api.nvim_set_keymap("n", "gr" , "lua vim.lsp.buf.references()", { noremap = true, silent = true }) -- K for hover information vim.api.nvim_set_keymap("n", "K" , "lua vim.lsp.buf.hover()", { noremap = true, silent = true }) -- s(how) d(iagnostics) vim.api.nvim_set_keymap("n", "sd", "lua vim.lsp.diagnostic.set_loclist()", { noremap = true})