Files
keycodex/lua/plugins/lsp.lua
T

101 lines
2.7 KiB
Lua

return {
-- default lsp configs
{
"neovim/nvim-lspconfig",
config = function() end,
},
-- lsp installer
{
"williamboman/mason.nvim",
dependencies = {
"williamboman/mason-lspconfig.nvim",
},
cmd = "Mason",
config = function()
-- mason
require("mason").setup({
ui = {
icons = {
package_installed = "✓",
package_pending = "➜",
package_uninstalled = "✗",
},
border = "rounded",
backdrop = 100,
},
})
require("mason-lspconfig").setup({
ensure_installed = require("config.extensions").lsp_server,
automatic_installation = false, -- Don't auto-install or auto-configure
})
end,
},
-- improve neovim lsp experience
{
"nvimdev/lspsaga.nvim",
event = "LspAttach",
config = function()
require("lspsaga").setup({
ui = {
theme = "round",
border = "rounded",
devicon = true,
title = true,
winblend = 1,
expand = " ",
collapse = " ",
preview = "",
code_action = "󰠠 ",
diagnostic = " ",
incoming = " ",
outgoing = " ",
hover = " ",
},
})
end,
},
-- inline diagnostic
{
"rachartier/tiny-inline-diagnostic.nvim",
event = "VeryLazy",
priority = 1000,
config = function()
require("tiny-inline-diagnostic").setup()
vim.diagnostic.config({ virtual_text = false }) -- Disable default virtual text
end,
},
-- code action
{
"rachartier/tiny-code-action.nvim",
dependencies = {
{
"folke/snacks.nvim",
opts = {
terminal = {},
},
},
},
event = "LspAttach",
config = function()
local codeaction = require("tiny-code-action")
codeaction.setup({
picker = {
"buffer",
opts = {
auto_preview = true,
hotkeys = true,
hotkeys_mode = "sequential",
},
},
})
vim.keymap.set("n", "<leader>.", codeaction.code_action)
end,
},
}