return { -- Mason (LSP server installer) { "mason-org/mason.nvim", config = function() require("mason").setup() end, }, -- Mason-LSPconfig (bridge Mason and nvim-lspconfig) { "mason-org/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup({ ensure_installed = { "pyright", -- Python "ts_ls", -- TypeScript/JavaScript "jsonls", -- JSON "yamlls", -- YAML "html", -- HTML "cssls", -- CSS "bashls", -- Bash "lua_ls", -- Lua --"stylua", }, automatic_enable = true, }) end, }, -- nvim-lspconfig { "neovim/nvim-lspconfig", config = function() -- Lua vim.lsp.config("lua_ls", { settings = { Lua = { runtime = { version = "LuaJIT" }, workspace = { library = vim.api.nvim_get_runtime_file("", true) }, }, }, }) -- Python vim.lsp.config("pyright", { settings = { python = { analysis = { typeCheckingMode = "basic", extraPaths = {}, -- Add extra import paths if needed }, }, }, }) -- Type- and JavaScript vim.lsp.config("ts_ls", { settings = { typescript = { inlayHints = { includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, includeInlayPropertyDeclarationTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true, includeInlayEnumMemberValueHints = true, }, }, javascript = { inlayHints = { includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, includeInlayPropertyDeclarationTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true, includeInlayEnumMemberValueHints = true, }, }, }, }) -- Other languages vim.lsp.config("jsonls", {}) vim.lsp.config("yamlls", {}) vim.lsp.config("html", {}) vim.lsp.config("cssls", {}) vim.lsp.config("bashls", {}) -- Enable servers vim.lsp.enable("lua_ls") vim.lsp.enable("pyright") vim.lsp.enable("ts_ls") vim.lsp.enable("jsonls") vim.lsp.enable("yamlls") vim.lsp.enable("html") vim.lsp.enable("cssls") vim.lsp.enable("bashls") end, }, }