return {
    { -- Configuración de LSP y Plugins
        "neovim/nvim-lspconfig",
        dependencies = {
            { "williamboman/mason.nvim", config = true },
            "williamboman/mason-lspconfig.nvim",
            "WhoIsSethDaniel/mason-tool-installer.nvim",
            {
                "j-hui/fidget.nvim",
                opts = {}
            },
            { "folke/neodev.nvim",       opts = {} },
        },

        config = function()
            -- 1. Definir la tabla de servidores con sus configuraciones específicas
            local servers = {
                -- Configuración para Lua
                lua_ls = {
                    settings = {
                        Lua = {
                            completion = {
                                callSnippet = "Replace",
                            },
                            workspace = {
                                -- SOLO ANALIZA ARCHIVOS DE NEOVIM
                                library = {
                                    vim.fn.expand("$VIMRUNTIME"),
                                    vim.fn.stdpath("config"),
                                },
                                checkThirdParty = false, -- Evita advertencias de paquetes externos
                                maxPreload = 1000,       -- Reduce archivos precargados
                                preloadFileSize = 100,   -- Límite de tamaño de archivos analizados
                            },
                            diagnostics = {
                                globals = { "vim" }, -- Evita advertencias sobre `vim` no definido
                                disable = { "missing-fields" }
                            },
                        },
                    },
                    -- **EVITA QUE NEOVIM USE /home/teraflops COMO ROOT**
                    root_dir = function(fname)
                        return require("lspconfig.util").find_git_ancestor(fname) or vim.fn.stdpath("config")
                    end,
                }, -- ✅ CORRECCIÓN: Coma agregada para separar configuraciones

                -- **Configuración para Ansible Language Server (ansiblels)**
                ansiblels = {
                    filetypes = { "ansible", "yaml.ansible" },
                    settings = {
                        ansible = {
                            ansible = {
                                path = "ansible"
                            },
                            executionEnvironment = {
                                enabled = false
                            },
                            python = {
                                interpreterPath = "python"
                            },
                            validation = {
                                enabled = true,
                                lint = {
                                    enabled = true,
                                    path = "ansible-lint"
                                }
                            }
                        }
                    }
                },
            }

            -- 2. Definir capacidades extendidas (nvim-cmp)
            local capabilities = vim.lsp.protocol.make_client_capabilities()
            capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())

            -- 3. Configurar Mason
            require("mason").setup()

            -- 4. Configurar Mason-LSPConfig
            require("mason-lspconfig").setup({
                ensure_installed = vim.tbl_keys(servers),
                automatic_installation = true,
            })

            -- 5. Configurar Mason-Tool-Installer
            local ensure_installed = vim.tbl_keys(servers or {})
            vim.list_extend(ensure_installed, {
                "stylua",
                "ansible-language-server",
                "ansible-lint",
            })
            require("mason-tool-installer").setup({ ensure_installed = ensure_installed })

            -- 6. Configurar los servidores con sus respectivas configuraciones
            require("mason-lspconfig").setup_handlers({
                function(server_name)
                    local server = servers[server_name] or {}
                    server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
                    require("lspconfig")[server_name].setup(server)
                end,
            })
        end,
    },
}

