return { { "stevearc/conform.nvim", event = "BufWritePre", -- uncomment for format on save opts = require("configs.conform"), }, { "neovim/nvim-lspconfig", config = function() require("configs.lspconfig") end, }, { import = "nvchad.blink.lazyspec" }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "vim", "lua", "vimdoc", "html", "css", "python", "typst", "c_sharp", -- C# treesitter support "cpp", "c", "javascript", "typescript", "json", }, }, }, { "williamboman/mason.nvim", opts = { ensure_installed = { -- LSP servers "clangd", "typescript-language-server", "html-lsp", "css-lsp", "emmet-ls", "eslint-lsp", "pyright", "tinymist", "jdtls", "omnisharp", -- C# LSP server -- Formatters "prettier", "eslint_d", "black", -- Python formatter "isort", "google-java-format", "csharpier", -- C# formatter -- Debuggers "netcoredbg", -- C# debugger -- Linters "flake8", }, }, }, { "williamboman/mason-lspconfig.nvim", dependencies = { "williamboman/mason.nvim", }, opts = { ensure_installed = { "clangd", "pyright", "jdtls", "ts_ls", "html", "cssls", "emmet_ls", "eslint", "omnisharp", -- Ensure OmniSharp is installed }, automatic_installation = true, }, }, -- C# specific plugins { "Hoffs/omnisharp-extended-lsp.nvim", ft = "cs", -- Only load for C# files }, -- Debug support { "mfussenegger/nvim-dap", dependencies = { "rcarriga/nvim-dap-ui", }, config = function() require("configs.csharp") -- This will set up C# debugging end, }, -- Python debugging { "mfussenegger/nvim-dap-python", ft = "python", dependencies = { "mfussenegger/nvim-dap", "rcarriga/nvim-dap-ui", }, config = function() local path = require("mason-registry").get_package("debugpy"):get_install_path() require("dap-python").setup(path .. "/venv/bin/python") end, }, -- Java support { "mfussenegger/nvim-jdtls", ft = "java", }, -- Enhanced completion { "hrsh7th/nvim-cmp", opts = function() local M = require("nvchad.configs.cmp") table.insert(M.sources, { name = "pyright" }) return M end, }, }