diff options
Diffstat (limited to 'neovim/.config/nvim/lua/plugins/lsp.lua')
-rw-r--r-- | neovim/.config/nvim/lua/plugins/lsp.lua | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/neovim/.config/nvim/lua/plugins/lsp.lua b/neovim/.config/nvim/lua/plugins/lsp.lua index 703fa7c..a253373 100644 --- a/neovim/.config/nvim/lua/plugins/lsp.lua +++ b/neovim/.config/nvim/lua/plugins/lsp.lua @@ -3,6 +3,24 @@ local lspconf = require("lspconfig") local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true +lspconf.pylsp.setup{ + settings = { + pylsp = { + plugins = { + pycodestyle = { + ignore = {'W391'}, + maxLineLength = 100 + } + } + } + } +} + +lspconf.phpactor.setup { + capabilities = capabilities, + on_attach = function() end, +} + lspconf.html.setup { capabilities = capabilities, } @@ -11,7 +29,11 @@ lspconf.cssls.setup({ capabilities = capabilities, }) -lspconf.emmet_ls.setup({}) +lspconf.emmet_ls.setup({ + capabilities = capabilities, + filetypes = { "html", "php" }, +}) + lspconf.tsserver.setup({ capabilities = capabilities, on_attach = function() end, @@ -42,12 +64,51 @@ vim.diagnostic.config({ underline = false, severity_sort = true, float = { + focusable = false, source = 'always', header = '', prefix = '', }, }) +vim.diagnostic.open_float = (function(orig) + return function(bufnr, opts) + local lnum = vim.api.nvim_win_get_cursor(0)[1] - 1 + local opts = opts or {} + -- A more robust solution would check the "scope" value in `opts` to + -- determine where to get diagnostics from, but if you're only using + -- this for your own purposes you can make it as simple as you like + local diagnostics = vim.diagnostic.get(opts.bufnr or 0, {lnum = lnum}) + local max_severity = vim.diagnostic.severity.HINT + for _, d in ipairs(diagnostics) do + -- Equality is "less than" based on how the severities are encoded + if d.severity < max_severity then + max_severity = d.severity + end + end + local border_color = ({ + [vim.diagnostic.severity.HINT] = "DiagnosticHint", + [vim.diagnostic.severity.INFO] = "DiagnosticInfo", + [vim.diagnostic.severity.WARN] = "DiagnosticWarn", + [vim.diagnostic.severity.ERROR] = "DiagnosticError", + })[max_severity] + opts.border = { + {"╭", border_color}, + {"─", border_color}, + {"╮", border_color}, + {"│", border_color}, + {"╯", border_color}, + {"─", border_color}, + {"╰", border_color}, + {"│", border_color}, + } + orig(bufnr, opts) + end +end)(vim.diagnostic.open_float) + +-- Show line diagnostics in floating popup on hover, except insert mode (CursorHoldI) +vim.cmd [[autocmd CursorHold * lua vim.diagnostic.open_float()]] + require("keybinds") map("n", "<F2>", "<cmd>lua vim.lsp.buf.rename()<cr>") @@ -56,6 +117,8 @@ map("n", "<C-h>", "<cmd>lua vim.diagnostic.open_float()<cr>") map("n", "<leader>dn", "<cmd>lua vim.diagnostic.goto_next()<cr>") map("n", "<leader>dp", "<cmd>lua vim.diagnostic.goto_prev()<cr>") +map("n", "<leader>pp", "<cmd>lua vim.lsp.buf.format()<cr>") + --[[ nnoremap <silent> <c-]> <cmd>lua vim.lsp.buf.definition()<CR> nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR> |