---@type string local stdpath_data = vim.fn.stdpath("data") ---@type table local config = { handlers = require("rzls.roslyn_handlers"), settings = { ["csharp|inlay_hints"] = { csharp_enable_inlay_hints_for_implicit_object_creation = true, csharp_enable_inlay_hints_for_implicit_variable_types = true, csharp_enable_inlay_hints_for_lambda_parameter_types = true, csharp_enable_inlay_hints_for_types = true, dotnet_enable_inlay_hints_for_indexer_parameters = true, dotnet_enable_inlay_hints_for_literal_parameters = true, dotnet_enable_inlay_hints_for_object_creation_parameters = true, dotnet_enable_inlay_hints_for_other_parameters = true, dotnet_enable_inlay_hints_for_parameters = true, dotnet_suppress_inlay_hints_for_parameters_that_differ_only_by_suffix = true, dotnet_suppress_inlay_hints_for_parameters_that_match_argument_name = true, dotnet_suppress_inlay_hints_for_parameters_that_match_method_intent = true, }, ["csharp|code_lens"] = { dotnet_enable_references_code_lens = true, }, }, } ---@type table local args = { "--stdio", "--logLevel=Information", "--extensionLogDirectory=" .. vim.fs.dirname(vim.lsp.get_log_path()), "--razorSourceGenerator=" .. vim.fs.joinpath( stdpath_data, "mason", "packages", "roslyn", "libexec", "Microsoft.CodeAnalysis.Razor.Compiler.dll" ), "--razorDesignTimePath=" .. vim.fs.joinpath( stdpath_data, "mason", "packages", "rzls", "libexec", "Targets", "Microsoft.NET.Sdk.Razor.DesignTime.targets" ), } -- TODO: it local exe = { "dotnet", vim.fs.joinpath(stdpath_data, "roslyn", "Microsoft.CodeAnalysis.LanguageServer.dll"), } ---@type table local opts = { config = config, exe = exe, args = args, -- TODO: if human rights violation, set false filewatching = true, choose_target = function(target) target = nil return target end, ignore_target = function(target) target = nil return target end, broad_search = false, lock_target = false, } return opts