Я пытаюсь написать расширение языка для кода VS в JavaScript, и мне кажется, что я что-то упускаю.
У меня есть Lexer.g4 и Parser.g4 для моего языка, и я могу создать дерево, используя их.
Моя проблема в том, что VS Code API дает мне документ и позицию в этом документе (строка #, символ #). Ни в одном из примеров, которые я просмотрел для ANTLR4, я не могу найти какие-либо сгенерированные функции, которые занимают позицию в файле и возвращают узлы дерева в этой позиции.
Я хочу знать, например, что курсор находится на имени функции.
Должен ли я проходить все дерево и проверять положение токенов, чтобы увидеть, охватывают ли они положение, в котором я нахожусь в редакторе? Или, может быть, я использую не тот инструмент для работы? Я чувствую, что, вероятно, упускаю что-то более фундаментальное.