return { { -- mason 'williamboman/mason.nvim', config = true, }, { -- mason-lspconfig 'williamboman/mason-lspconfig.nvim', dependencies = { 'mason.nvim', }, }, { -- nvim-lspconfig 'neovim/nvim-lspconfig', opts = function() return { servers_to_not_setup = {}, servers = { bashls = {}, lua_ls = { settings = { Lua = { hint = { enable = true, arrayIndex = 'Disable', }, runtime = { pathStrict = true, }, workspace = { checkThirdParty = false, }, }, }, }, csharp_ls = {}, pyright = { pyright = { autoImportCompletion = true, }, }, efm = { init_options = { documentFormatting = true }, settings = { rootMarkers = { '.git/' }, languages = { lua = { { formatCommand = 'stylua -s --verify --color Never -', formatStdin = true, }, }, }, }, }, texlab = {}, cssls = {}, clangd = {}, vala_ls = {}, perlpls = {}, ts_ls = {}, }, setup = {}, } end, init = function() require('core.utils.lazy')('nvim-lspconfig') end, config = function(_, opts) require('plugins.configs.lsp.config').setup(opts) require('plugins.configs.lsp.native') end, dependencies = { 'mason-lspconfig.nvim', }, }, { -- lazydev 'folke/lazydev.nvim', ft = 'lua', opts = {}, }, { -- lspsaga 'nvimdev/lspsaga.nvim', event = 'LspAttach', config = function() require('lspsaga').setup { code_action = { num_shortcut = true, show_server_name = true, extend_gitsigns = true, }, lightbulb = { enable = true, enable_in_insert = false, sign = true, virtual_text = false, }, hover = { open_browser = '!$BROWSER', }, symbol_in_winbar = { in_custom = false, enable = true, seperator = '>', show_file = true, respect_root = true, }, } end, keys = { { 'ld', 'Lspsaga hover_doc', desc = '[lspsaga hoverdoc]' }, }, dependencies = { 'nvim-lspconfig', 'nvim-treesitter', }, }, }