aboutsummaryrefslogtreecommitdiff
path: root/neovim/.config/nvim/lua/plugins/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'neovim/.config/nvim/lua/plugins/lsp.lua')
-rw-r--r--neovim/.config/nvim/lua/plugins/lsp.lua65
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>