Как я могу добавить эти функции завершения кода в мое расширение VSCode? - PullRequest
1 голос
/ 08 мая 2019

Я нахожусь в процессе создания расширения VSCode, чтобы выполнить завершение кода для существующего Lua API.

У меня возникли проблемы с достижением следующего (например, JavaScript):

method information

parameter information

Я искал примеры и учебные пособия, но ничего не придумал. Я предполагаю, что мне может потребоваться выполнить значительный объем обработки строк вокруг текущей позиции курсора, чтобы получить достаточно данных для поиска соответствующей документации (которую я сохранил в массиве объектов json). Но в настоящее время я не знаю, как отобразить диалоговое окно метаданных при вводе параметров.

P.S. Я рассмотрел официальные примеры расширений .

1 Ответ

1 голос
/ 08 мая 2019

На скриншотах показаны две функции кода VS:

На первом снимке экрана показана подсказка / быстрая информация . Используется для отображения информации о текущем слове, над которым пользователь наводит курсор. Чтобы добавить зависание, ваше расширение должно реализовать и зарегистрировать HoverProvider

На втором снимке экрана показаны подсказки параметров / справка по подписи . Он отображает информацию для пользователя, когда он завершает вызов функции. Чтобы добавить справку по подписи, ваше расширение должно реализовать и зарегистрировать SignatureHelpProvider


В обоих случаях реализация ваших функций полностью зависит от вашего расширения. Большинство языковых расширений поддерживают структурное представление файла (например, AST ) и используют его для предоставления справочной информации о наведении и подписи.

Вы также можете реализовать свое расширение как прямое расширение кода VS или использовать протокол языкового сервера (который работает в разных редакторах). См. Обзор языковых расширений VS Code для получения дополнительной информации о разработке языкового расширения и о том, почему вы можете рассмотреть протокол языкового сервера

...