You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Neovim作为C# 10编辑器时LSP无法识别语言特性问题求助

解决Neovim中C# LSP无法识别C#9+语法的问题

一、更新OmniSharp-Roslyn版本

你当前使用的OmniSharp版本可能过旧,不支持C#9+语法:

  • 在Neovim中执行:OmniSharpInstall,该命令会自动拉取最新版的OmniSharp-Roslyn,替换缓存目录中的旧版本。
  • 确认配置中的cmd路径指向的是更新后的运行脚本,确保路径~/.cache/omnisharp-vim/omnisharp-roslyn/run对应最新安装的版本。

二、修正OmniSharp配置参数

配置中的两处细节可能导致语法识别异常:

  1. 补全PID变量:原配置中的pid未定义,需替换为Neovim的进程ID,使用vim.fn.getpid()。
  2. 启用EditorConfig支持:添加--enable-editorconfig-support参数,确保OmniSharp优先读取项目的语法版本配置。

修改后的OmniSharp配置:

require'lspconfig'.omnisharp.setup {
    capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()),
    on_attach = function(_, bufnr)
        vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
    end,
    cmd = { "~/.cache/omnisharp-vim/omnisharp-roslyn/run", "--languageserver", "--hostPID", tostring(vim.fn.getpid()), "--enable-editorconfig-support" },
}

三、更新csharp-ls并验证SDK配置

csharp-ls依赖.NET SDK版本来识别语法:

  • 通过:LspInstallInfo csharp_ls查看当前版本,若版本过旧,执行:LspInstall csharp_ls重新安装最新版。
  • 检查项目根目录的global.json,确保指定的SDK版本支持C#9+(如.NET 5及以上):
    {
      "sdk": {
        "version": "6.0.400"
      }
    }
    

四、确认项目配置的有效性

即使已指定LangVersion,仍需验证项目框架匹配:

  • 确保csproj中的TargetFramework与语法版本对应,比如C#10需要.NET 6及以上:
    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework>
      <LangVersion>10.0</LangVersion>
    </PropertyGroup>
    
    若TargetFramework为.NET Core 3.1或更早,即使指定高版本LangVersion也无法生效。

五、排查插件冲突

你同时安装了omnisharp-vim和nvim-lspconfig的OmniSharp配置,两者可能冲突:

  • 注释掉插件列表中的Plug 'OmniSharp/omnisharp-vim',执行:PlugClean清理已移除的插件,再执行:PlugInstall更新插件列表,仅保留nvim-lspconfig的OmniSharp配置。

六、清理LSP缓存

缓存的旧配置可能干扰语法识别:

  • 删除OmniSharp缓存目录:rm -rf ~/.cache/omnisharp-vim,之后重新安装最新版。
  • 删除csharp-ls安装目录(通常在~/.local/share/nvim/lsp_servers/csharp_ls),再通过:LspInstall csharp_ls重新安装。

内容的提问来源于stack exchange,提问作者JorgeFD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:12:38