我正在尝试将nvim配置为VSCode和VS2022的替代品。我已经设法使自动完成工作,但它似乎正在使用旧的语言版本(我使用的是语言版本10)编译我的代码,所以我的代码被标记了许多错误,尽管它用'dotnet build‘正确编译。
我不确定这是否是罗斯林或LSP的问题,所以不确定我应该在哪里寻找更多的信息。
我尝试过使用omnisharp和csharp作为LSP服务器(通过安装),两者都报告了相同的错误。
我使用的插件是:
Plug 'mfussenegger/nvim-dap'
Plug 'williamboman/nvim-lsp-installer'
Plug 'neovim/nvim-lspconfig'
Plug 'nvim-lua/completion-nvim'
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'OmniSharp/omnisharp-vim'
Plug 'dense-analysis/ale'
Plug 'mattn/emmet-vim'
Plug 'tpope/vim-commentary'
Plug 'Yggdroot/indentLine'
Plug 'vim-airline/vim-airline'
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
Plug 'nvim-telescope/telescope.nvim'这是lsp服务器的配置:
require'lspconfig'.csharp_ls.setup{}
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(pid) },
}下面的图像显示,使用charp-ls和omnisharp,我在第3行的var关键字上出现了一个错误,因为它没有识别允许编写顶级语句的C# 9的特性。我尝试在csproj文件中显式指定LangVersion,但结果相同。
[


发布于 2022-07-18 11:47:51
我终于发现了问题,似乎有两个服务在分析代码。
我添加了以下行以确保只有Omnisharp将编译器错误写入缓冲区:
let g:ale_linters = { 'cs': ['OmniSharp'] }此外,我还添加了下面的行,重新启动Vim并重新安装Omnisharp,以确保我有最新的特性版本,尽管这在添加前面解释的行之前没有什么区别:
let g:OmniSharp_server_use_net6 = 1https://stackoverflow.com/questions/73014295
复制相似问题