首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nVim作为c#语言版本10的编辑器

使用nVim作为c#语言版本10的编辑器
EN

Stack Overflow用户
提问于 2022-07-17 18:21:29
回答 1查看 475关注 0票数 0

我正在尝试将nvim配置为VSCode和VS2022的替代品。我已经设法使自动完成工作,但它似乎正在使用旧的语言版本(我使用的是语言版本10)编译我的代码,所以我的代码被标记了许多错误,尽管它用'dotnet build‘正确编译。

我不确定这是否是罗斯林或LSP的问题,所以不确定我应该在哪里寻找更多的信息。

我尝试过使用omnisharp和csharp作为LSP服务器(通过安装),两者都报告了相同的错误。

我使用的插件是:

代码语言:javascript
复制
    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服务器的配置:

代码语言:javascript
复制
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,但结果相同。

[

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 11:47:51

我终于发现了问题,似乎有两个服务在分析代码。

我添加了以下行以确保只有Omnisharp将编译器错误写入缓冲区:

代码语言:javascript
复制
let g:ale_linters = { 'cs': ['OmniSharp'] }

此外,我还添加了下面的行,重新启动Vim并重新安装Omnisharp,以确保我有最新的特性版本,尽管这在添加前面解释的行之前没有什么区别:

代码语言:javascript
复制
let g:OmniSharp_server_use_net6 = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73014295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档