Вызовы функций Vimscript из эмулятора терминала - PullRequest
0 голосов
/ 17 января 2020

У меня установлен клиент языкового сервера ( vim-ls c) в качестве плагина в neovim. Этот клиент взаимодействует с языковым сервером для нескольких языков, таких как python или R, и предоставляет такие функции, как автозаполнение, переименование переменных и т. Д. c ...

Одна функция, которую я хочу использовать, - это выполнение кода в этом случае вы можете выбрать часть кода, а затем отправить ее на сервер LSP для оценки и получить ответ на нее. Я могу сделать то же самое, если я создам эмулятор терминала «term: // python» и скопирую туда код, но таким образом работают два «сервера», один через сервер LSP, а другой - из терминала. аналогично тому, что делает vim-matlab .

Я надеялся, что смогу сделать и то и другое только с одним запущенным экземпляром python или R или MATLAb. Если есть способ отправить набранную «команду» в эмуляторе терминала на сервер LSP через плагин vim-ls c, то эту работу можно выполнить только с одним запущенным экземпляром.

Я также Мысль о создании vimscript, который создает буфер, который эмулирует терминал (как это делает Conque или vim-терминал ), а затем захватывает и передает команды через этот скрипт. Хотя я не смог выяснить, как эти плагины сделали вывод команды и команды неизменяемыми, но оставил текущую набранную команду изменяемой пользователем.

Моя причина, по которой я предпочитаю маршрут LSP и не выбираю плагины например, vimterm состоит в том, что они не предоставляют различных функций, таких как автозаполнение и рефакторинг.

Любые предложения приветствуются. Спасибо.

РЕДАКТИРОВАТЬ: Я хотел бы уточнить, что на данный момент я не думаю, что vim-ls c имеет возможность отправлять запрос executeCommand. Я написал небольшой vimscript (отдельный код), который может это сделать. Я планирую своевременно подать запрос на получение и у меня будет функция, доступная в vim-ls c, следовательно, включение vim-ls c в описание. Извиняюсь за путаницу.

1 Ответ

0 голосов
/ 18 января 2020

Если это часть протокола LSP, и вы действительно можете отправить код на сервер LSP для исполнения, то это не тот, который реализован vim-ls c; Я не могу найти его в файле справки. Лучшее, что вы можете сделать, это найти на странице проблемы и / или опубликовать информацию о функции самостоятельно.

...