Клиент автозаполнения C # LSP для neovim / vim8 - PullRequest
0 голосов
/ 30 октября 2019

Я пробовал несколько способов заставить это работать, но, кажется, нет простого способа. Да, есть множество плагинов, конфигураций. Но они не работают должным образом по состоянию на октябрь 2019 года.

  • OmniSharp-Vim клиент нуждается в конфигурации, он охватывает только C # и перечисляет интеграцию плагинов, которая больше не работает (попробуйте выбратьэто для linting в ALE).
  • YouCompeleteMe должен работать, но он большой и кажется раздутым.
  • Деоплет не имеет источника для C #и конфигурации, которые я обнаружил, устарели.
  • Coc.nvim даже не перечисляет C #, и у «неофициальных» конфигураций есть проблемы (например, this ). К тому же Coc.nvim кажется пришельцем из VS Code.
  • LanguageClient-neovim Я не нашел разумной конфигурации, и кажется, потому что C # LSP серверу нужен файл .sln.

Итаккажется, что csharpers должен перейти к VS (или Rider), и именно тогда MS предложила LSP. Как вы делаете IDE как из nvim для работы с C #?

Обычно клиент должен запустить сервер и использовать LSP.

~/.cache/omnisharp-vim/omnisharp-roslyn/run -s <PATH TO SLN OR DIR>

1 Ответ

1 голос
/ 08 ноября 2019

Я только что успешно установил 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
  • Vim8.1.2244
  • ядро ​​dotnet 3.1 - я ожидаю, что 3.0 тоже будет работать

Инструкции

Во-первых, я использую vim-подключи в качестве моего менеджера плагинов для установки. Я установил его в Windows и Mac OS, используя фрагменты bash / powershell в README vim-plug.

Затем я добавил следующее в свой vimrc (~\_vimrc в Windows, ~/.vimrc в Mac OS):

"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 и ale для вас.

Далее найдите решение C # и убедитесь, что решение собирается из командной строки (например, dotnet build должно завершиться без ошибок). Вам также нужен файл 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-Airlines для нижней панели- это не является частью omnisharp и не требуется.

Выше приведены снимки экрана для Windows, но они также отлично работают в Mac OS:

mac os

Мой полный vimrc доступен здесь , а исходный код, который я тестирую с , доступен здесь .

...