From 37575bcd55b82f3c67d96b1d7225ba7ffcefbf90 Mon Sep 17 00:00:00 2001 From: PowerUser64 Date: Wed, 22 Sep 2021 03:19:20 -0700 Subject: [PATCH] nvim: added automatic detection of language servers --- .config/nvim/lua/lsp.lua | 43 ++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua index 7e334a1..301d13e 100644 --- a/.config/nvim/lua/lsp.lua +++ b/.config/nvim/lua/lsp.lua @@ -216,14 +216,19 @@ M.lspconfig = function() -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches - local servers = { 'clangd', } - for _, lsp in ipairs(servers) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, + local lsp_servers = { + clangd = 'clangd', + html = 'vscode-html-language-server', + } + for lsp, exe in pairs(lsp_servers) do + if (vim.fn.executable(exe) == 1) then + nvim_lsp[lsp].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } } - } + end end end -- <<< @@ -231,20 +236,20 @@ end -- <<< M.dap = function() -- keybinds vim.cmd [[ - " Debugger movement - nnoremap d lua require'dap'.continue() - nnoremap dj lua require'dap'.step_over() - nnoremap dl lua require'dap'.step_into() - nnoremap dh lua require'dap'.step_out() + " Debugger movement + nnoremap d lua require'dap'.continue() + nnoremap dj lua require'dap'.step_over() + nnoremap dl lua require'dap'.step_into() + nnoremap dh lua require'dap'.step_out() - " Breakpoints - nnoremap dbb lua require'dap'.toggle_breakpoint() - nnoremap dbc lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition ')) - nnoremap dbl lua require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message ')) + " Breakpoints + nnoremap dbb lua require'dap'.toggle_breakpoint() + nnoremap dbc lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition ')) + nnoremap dbl lua require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message ')) - " Extra - nnoremap dp lua require'dap'.run_last() - nnoremap dr lua require'dap'.repl.open() + " Extra + nnoremap dp lua require'dap'.run_last() + nnoremap dr lua require'dap'.repl.open() ]] -- vim.fn.sign_define('DapBreakpoint', {text='B', texthl='', linehl='', numhl=''}) -- custom attributes of breakpointed lines (use an emoji?) vim.cmd "au FileType dap-repl lua require('dap.ext.autocompl').attach()"