
## Description There was a problem with Omnisharp with fzf.lua enabled instead of telescope. As discussed in #4258, this change makes Go To Definition work with fzf.lua. ## Related Issue(s) - Fixes #4258 ## Checklist - [x ] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines.
118 lines
2.9 KiB
Lua
118 lines
2.9 KiB
Lua
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",
|
|
LazyVim.has("telescope.nvim") and function()
|
|
require("omnisharp_extended").telescope_lsp_definitions()
|
|
end or function()
|
|
require("omnisharp_extended").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
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|