[neovim / vim8的C#LSP自动完成客户端

问题描述 投票:0回答:1

我已经尝试了几种方法使其正常工作,但似乎没有简单的方法。是的,有大量的插件和配置。但截至2019年10月,它们无法正常工作。

  • [OmniSharp-Vim客户端需要配置,它仅涵盖C#,并且列出了不再起作用的插件集成(请尝试在ALE中插入以进行选择)。
  • [YouCompeleteMe应该可以工作,但是它很大并且看上去很肿。
  • [Deoplete没有C#的来源,我发现的配置已过时。
  • Coc.nvim甚至没有列出C#,并且'非官方'配置有问题(例如this)。此外,Coc.nvim似乎与VS Code无关。
  • LanguageClient-neovim我没有找到合理的配置,这似乎是因为C# LSP server需要.sln文件。

因此,似乎csharpers应该转到VS(或Rider),这是MS提出LSP的时间。您如何使IDE像nvim一样与C#一起使用?

基本上,客户端应该像这样启动服务器并使用LSP。

~/.cache/omnisharp-vim/omnisharp-roslyn/run -s <PATH TO SLN OR DIR>
c# vim autocomplete language-server-protocol
1个回答
1
投票

我刚刚通过全新安装成功完成omnisharp / ale的工作。您可能希望完全卸载omnisharp(~\AppData\Local\omnisharp-vim~/.omnisharp),以防万一您有旧版本。

您没有提到您的操作系统;我在Windows 10和Mac OS上均可使用。如果您使用的是Mac OS,请确保先单击brew install libuv

我的环境

  • Windows 10(v1903)和Mac OS 10.14.6
  • Vim 8.1.2244
  • dotnet核心3.1-我希望3.0也能正常工作

说明

首先,我使用vim-plug作为插件管理器来处理安装。我使用vim-plug的README文件中的bash / powershell片段在Windows和Mac OS中都安装了它。

然后我在vimrc中添加了以下内容(在Windows上为~\_vimrc,在Mac OS上为~/.vimrc:]]

"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

重新启动vim,然后运行:PlugInstall。它将为您克隆omnisharp和淡啤酒。

[下一步,找到一些C#解决方案,并确保该解决方案在命令行中生成(例如dotnet build应该正确无误地完成)。如果还没有SLN文件,则还需要一个SLN文件(dotnet new sln,然后是dotnet sln add MyProj.csproj

选择一个C#文件并在vim中打开它。您应该看到以下通知:

omnisharp installation

如果安装未自动启动,则可以使用:OmniSharpInstall启动它。在终端窗口中进行安装需要一两分钟的下载时间。安装完成后,重新打开vim并执行:cd \path\to\my\solution以确保vim中的工作目录正确。然后使用:e MyProj\Program.cs

服务器将自动启动;不要手动启动它。服务器启动的最初几秒钟,我收到很多语法错误,此后我没有任何错误。

要拉出自动完成功能,请键入类似Console.的内容,然后按Ctrl-x o

vim with autocomplete

上面的屏幕截图的底部带有vim-airline,这不是omnisharp的一部分,不是必需的。]]

以上屏幕截图是Windows,但在Mac OS中也可以正常工作:

mac os

我的完整vimrc is available here和我正在使用is available here测试的源代码。

© www.soinside.com 2019 - 2024. All rights reserved.