Files
dotfiles/nvim/lua/config/lsp.lua
2025-04-23 16:17:52 -05:00

66 lines
2.9 KiB
Lua

-- Disable Virtual Text Warnings and Errors
vim.diagnostic.config({
-- virtual_text = false,
signs = true,
float = { border = "single" },
})
local lsp = vim.lsp
local handlers = lsp.handlers
-- Hover doc popup
local pop_opts = { border = "rounded", max_width = 80 }
handlers["textDocument/hover"] = lsp.with(handlers.hover, pop_opts)
handlers["textDocument/signatureHelp"] = lsp.with(handlers.signature_help, pop_opts)
-- Quick Keybinds via g
vim.keymap.set('n', 'gr', "<cmd>Lspsaga rename<cr>", {silent = true, noremap = true, desc = 'Lsp Saga Rename'})
vim.keymap.set('n', 'gx', "<cmd>Lspsaga code_action<cr>", {silent = true, noremap = true, desc = 'Lsp Saga Code Action'})
vim.keymap.set('n', 'gs', "<cmd>Lspsaga finder<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Usage Finder' })
vim.keymap.set('n', 'gg', "<cmd>Lspsaga hover_doc<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Hover Doc' })
vim.keymap.set('n', 'go', "<cmd>Lspsaga outline<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Outline' })
-- Diagnostic Specific Keybinds with Leader
vim.keymap.set('n', '<leader>dr', "<cmd>Lspsaga rename<cr>", {silent = true, noremap = true, desc = 'Lsp Saga Rename'})
vim.keymap.set('n', '<leader>dx', "<cmd>Lspsaga code_action<cr>", {silent = true, noremap = true, desc = 'Lsp Saga Code Action'})
vim.keymap.set('n', '<leader>ds', "<cmd>Lspsaga finder<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Usage Finder' })
vim.keymap.set('n', '<leader>dg', "<cmd>Lspsaga hover_doc<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Hover Doc' })
vim.keymap.set('n', '<leader>do', "<cmd>Lspsaga outline<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Outline' })
vim.keymap.set('n', '<leader>da', "<cmd>Lspsaga show_workspace_diagnostics<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Show Workspace Diagnostic' })
vim.keymap.set('n', '<leader>dd', "<cmd>Lspsaga show_line_diagnostics<cr>", { silent = true, noremap = true, desc = 'Lsp Saga Show Line Diagnostic' })
for _, method in ipairs({ 'textDocument/diagnostic', 'workspace/diagnostic' }) do
local default_diagnostic_handler = vim.lsp.handlers[method]
vim.lsp.handlers[method] = function(err, result, context, config)
if err ~= nil and err.code == -32802 then
return
end
return default_diagnostic_handler(err, result, context, config)
end
end
require('lspconfig').jsonls.setup {
settings = {
json = {
schemas = require('schemastore').json.schemas(),
validate = { enable = true },
},
},
}
require('lspconfig').yamlls.setup {
settings = {
yaml = {
schemaStore = {
-- You must disable built-in schemaStore support if you want to use
-- this plugin and its advanced options like `ignore`.
enable = false,
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
url = "",
},
schemas = require('schemastore').yaml.schemas(),
},
},
}