init.lua/lua/plugins/lsp/init.lua(view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
---@type LazySpec
return {
"neovim/nvim-lspconfig",
event = "BufRead",
dependencies = {
"b0o/schemastore.nvim",
{ import = "plugins.lsp.lazydev" },
{ import = "plugins.lsp.null-ls" },
{
"j-hui/fidget.nvim",
dependencies = { "nvim-lspconfig" },
opts = {
progress = {
display = {
render_limit = 2,
done_ttl = 2,
},
},
},
},
{
"nvim-cmp",
dependencies = { "hrsh7th/cmp-nvim-lsp" },
---@module "cmp"
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, 1, {
name = "nvim_lsp",
group_index = 0,
max_item_count = 12,
})
end,
},
{
"RRethy/vim-illuminate",
dependencies = { "nvim-lspconfig" },
opts = {
providers = { "lsp", "treesitter" },
filetypes_denylist = {
"NvimTree",
"packer",
"NeogitStatus",
"TelescopePrompt",
},
},
config = function(_, opts)
require("illuminate").configure(opts)
end,
},
},
config = function()
for name, conf in pairs(require "plugins.lsp.servers") do
require "plugins.lsp.attach"
require("lspconfig")[name].setup(vim.tbl_extend("force", {
flags = { debounce_text_changes = 150 },
capabilities = require("cmp_nvim_lsp").default_capabilities(),
}, conf))
end
end,
}
|