Я хотел бы написать и расширение с грамматикой языка. Он предназначен для выполнения rp c запросов к узлу. Запрос будет
method params
Грамматика должна быть динамической c, где ключевыми словами являются method
. Они получены путем вызова команды help
rp c, она выдаст мне список команд с подписью и описанием. Узел имеет подключаемую архитектуру, которая позволяет добавлять дополнительные команды rp c, поэтому полный список доступных методов не известен, пока я не подключусь к узлу и не введу команду help
(плюс он автоматически обновляется для узла изменения версии).
В настоящее время я работаю в автономном режиме в редакторе Monaco, используя поставщика токенов Monarch и дополнительно регистрируя провайдеры hover / code lens / complete / signature. Я хотел бы преобразовать в расширение vscode, но грамматики tm, похоже, загружаются только из файла AFAICT, что было бы неплохо, если бы я мог динамически добавлять ключевые слова во время выполнения, как это можно сделать?
Также в мире Монако я могу позвонить по номеру monaco.editor.tokenize(str, lang)
, и мне еще предстоит найти эквивалент vscode, это полезно для вышеупомянутых провайдеров.