return { recommended = function() return LazyVim.extras.wants({ ft = { "cs", "vb" }, root = { "*.sln", "*.csproj", "omnisharp.json", "function.json" }, }) end, { "Hoffs/omnisharp-extended-lsp.nvim", lazy = true }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "c_sharp" } }, }, { "nvimtools/none-ls.nvim", optional = true, opts = function(_, opts) local nls = require("null-ls") opts.sources = opts.sources or {} table.insert(opts.sources, nls.builtins.formatting.csharpier) end, }, { "stevearc/conform.nvim", optional = true, opts = { formatters_by_ft = { cs = { "csharpier" }, }, formatters = { csharpier = { command = "dotnet-csharpier", args = { "--write-stdout" }, }, }, }, }, { "williamboman/mason.nvim", opts = { ensure_installed = { "csharpier", "netcoredbg" } }, }, { "neovim/nvim-lspconfig", opts = { servers = { omnisharp = { handlers = { ["textDocument/definition"] = function(...) return require("omnisharp_extended").handler(...) end, }, keys = { { "gd", function() require("omnisharp_extended").telescope_lsp_definitions() end, desc = "Goto Definition", }, }, enable_roslyn_analyzers = true, organize_imports_on_format = true, enable_import_completion = true, }, }, }, }, { "mfussenegger/nvim-dap", optional = true, opts = function() local dap = require("dap") if not dap.adapters["netcoredbg"] then require("dap").adapters["netcoredbg"] = { type = "executable", command = vim.fn.exepath("netcoredbg"), args = { "--interpreter=vscode" }, options = { detached = false, }, } end for _, lang in ipairs({ "cs", "fsharp", "vb" }) do if not dap.configurations[lang] then dap.configurations[lang] = { { type = "netcoredbg", name = "Launch file", request = "launch", ---@diagnostic disable-next-line: redundant-parameter program = function() return vim.fn.input("Path to dll: ", vim.fn.getcwd() .. "/", "file") end, cwd = "${workspaceFolder}", }, } end end end, }, { "nvim-neotest/neotest", optional = true, dependencies = { "Issafalcon/neotest-dotnet", }, opts = { adapters = { ["neotest-dotnet"] = { -- Here we can set options for neotest-dotnet }, }, }, }, }