neovim/vim8的C#LSP自动完成客户端
我试过几种方法使它工作,但似乎没有简单的方法。是的,有很多插件和配置。但按照2019年10月的标准,它们并不正常工作neovim/vim8的C#LSP自动完成客户端,c#,vim,autocomplete,language-server-protocol,coc.nvim,C#,Vim,Autocomplete,Language Server Protocol,Coc.nvim,我试过几种方法使它工作,但似乎没有简单的方法。是的,有很多插件和配置。但按照2019年10月的标准,它们并不正常工作 客户机需要配置,它只包含C#,并且它列出了不再工作的插件集成(尝试在ALE中选择linting) 应该可以用,但它很大,而且看起来很臃肿 没有C#的源代码,我发现的配置已经过时 甚至没有列出C#和“非官方”配置有问题(如)。此外,Coc.nvim似乎是VS代码中的外星人 我没有找到合理的配置,似乎是因为需要.sln文件 所以这似乎是csharpers应该去VS(或Rider)
- 客户机需要配置,它只包含C#,并且它列出了不再工作的插件集成(尝试在ALE中选择linting)
- 应该可以用,但它很大,而且看起来很臃肿
- 没有C#的源代码,我发现的配置已经过时
- 甚至没有列出C#和“非官方”配置有问题(如)。此外,Coc.nvim似乎是VS代码中的外星人李>
- 我没有找到合理的配置,似乎是因为需要.sln文件
~/.cache/omnisharp-vim/omnisharp-roslyn/run -s <PATH TO SLN OR DIR>
~/.cache/omnisharp vim/omnisharp roslyn/run-s
我刚刚让omnisharp/ale通过干净的安装成功运行。您可能希望完全卸载omnisharp(~\AppData\Local\omnisharp vim
或~/.omnisharp
),以防您有旧版本
你没有提到你的操作系统;我在Windows10和Mac操作系统中都可以使用它。如果您使用的是Mac OS,请确保首先安装libuv
我的环境
- Windows 10(v1903)和Mac OS 10.14.6
- Vim 8.1.2244
- DotnetCore3.1——我希望3.0也能工作
~\\u vimrc
在Windows上,~/.vimrc
在Mac OS上):
重新启动vim,然后运行:PlugInstall
。它将为您克隆omnisharp和麦芽酒
接下来,找到一些C#解决方案,并确保在命令行生成解决方案(例如,dotnet build
应无错误地完成)。如果您还没有SLN文件,您还需要一个SLN文件(dotnet new SLN
,然后dotnet SLN add MyProj.csproj
)
选择一个C#文件并在vim中打开它。您应该看到以下通知:
如果安装没有自动启动,可以使用:OmniSharpInstall
启动。安装需要在终端窗口中下载一两分钟。安装完成后,重新打开vim并执行:cd\path\to\my\solution
,以确保vim内的工作目录正确。然后打开一个文件,例如:e MyProj\Program.cs
服务器将自动启动;不要手动启动它。在服务器启动的前几秒钟,我遇到了很多语法错误,之后就没有任何错误了
要启动自动完成功能,请键入类似于控制台的内容。然后按Ctrl-x o:
上面的屏幕截图显示了底部栏——这不是omnisharp的一部分,也不是必需的
上面的屏幕截图是Windows,但在Mac OS中也可以正常工作:
我的完整vimrc和我正在测试的源代码。我刚刚让omnisharp/ale通过干净的安装成功运行。您可能希望完全卸载omnisharp(
~\AppData\Local\omnisharp vim
或~/.omnisharp
),以防您有旧版本
你没有提到你的操作系统;我在Windows10和Mac操作系统中都可以使用它。如果您使用的是Mac OS,请确保首先安装libuv
我的环境
- Windows 10(v1903)和Mac OS 10.14.6
- Vim 8.1.2244
- DotnetCore3.1——我希望3.0也能工作
~\\u vimrc
在Windows上,~/.vimrc
在Mac OS上):
重新启动vim,然后运行:PlugInstall
。它将为您克隆omnisharp和麦芽酒
接下来,找到一些C#解决方案,并确保在命令行生成解决方案(例如,dotnet build
应无错误地完成)。如果您还没有SLN文件,您还需要一个SLN文件(dotnet new SLN
,然后dotnet SLN add MyProj.csproj
)
选择一个C#文件并在vim中打开它。您应该看到以下通知:
如果安装没有自动启动,可以使用:OmniSharpInstall
启动。安装需要在终端窗口中下载一两分钟。安装完成后,重新打开vim并执行:cd\path\to\my\solution
,以确保vim内的工作目录正确。然后打开一个文件,例如:e MyProj\Program.cs
服务器将自动启动;不要手动启动它。在服务器启动的前几秒钟,我遇到了很多语法错误,之后就没有任何错误了
要启动自动完成功能,请键入类似于控制台的内容。然后按Ctrl-x o:
上面的屏幕截图显示了底部栏——这不是omnisharp的一部分,也不是必需的
上面的屏幕截图是Windows,但在Mac OS中也可以正常工作:
我的完整vimrc和我正在测试的源代码。到目前为止,这里是我使用Deoplete、OmniSharp和ALE(完整配置位于):
到目前为止,这是我使用Deoplete、OmniSharp和ALE(完整配置)进行的设置:
是的,我最终得到了类似的配置。正如我在vim配置中看到的,您没有OmniSharp的便捷键配置(GoTo、Documentation、Hover等),所以它还没有完成。和你比较一下我们从t开始工作的地方
"vim-plug config
call plug#begin()
Plug 'OmniSharp/omnisharp-vim'
Plug 'dense-analysis/ale'
call plug#end()
" plugin config
let g:OmniSharp_server_stdio = 1
" Install Deoplete and OmniSharp:
" - OmniSharp/omnisharp-vim " for LSP support (like start OmniSharp server) and code actions, etc
" - Shougo/deoplete.nvim " for better autocompletion
" - dense-analysis/ale " for highlights
function SetCSSettings()
" Use deoplete.
call deoplete#enable()
" Use smartcase.
call deoplete#custom#option('smart_case', v:true)
" Use OmniSharp-vim omnifunc
call deoplete#custom#source('omni', 'functions', { 'cs': 'OmniSharp#Complete' })
" Set how Deoplete filters omnifunc output.
call deoplete#custom#var('omni', 'input_patterns', {
\ 'cs': '[^. *\t]\.\w*',
\})
" ... then goes your mappings for :OmniSharp* functions, see its doc
endfunction
augroup csharp_commands
autocmd!
" Use smartcase.
" call deoplete#custom#option('smart_case', v:true)
autocmd FileType cs call SetCSSettings()
augroup END