Как получить абстрактное синтаксическое дерево Java в VSCode? - PullRequest
2 голосов
/ 12 марта 2019

Я хочу, чтобы мое расширение могло считывать Java AST .java-файла для дальнейшего сохранения имени узла (например, "ClassDeclaration") выбранного фрагмента кода.Например, если вы выберете «public», AST скажет вам, что это «модификатор», а затем я хочу сохранить «модификатор» имени узла в виде строки в переменной.

Сначала мне нужен JavaAST.

Сначала я посмотрел на рынок VSCode, но нет расширения AST для Java (но есть некоторые для других языков, таких как TypeScript).В результате я получил пакет расширений Java, который содержит много полезных расширений Java, но ни одно из них явно не относится к AST.Поскольку в Red Hat есть отладчик и языковая поддержка, я уверен, что они используют AST для расширения своих возможностей, поэтому я посмотрел на их источник, пытаясь найти его безуспешно.Единственное, что мне известно, это то, что они ссылаются на «пакеты» Eclipse JDT, но я не понимаю как.Ответ может быть правильным, но код для меня сложный.

Еще один подход, который я пробовал, заключался в использовании исходного кодаиз TypeScript AST (git link: https://github.com/krizzdewizz/vscode-typescript-ast-explorer) и попробуйте написать свое собственное расширение Java AST (конечно, в TypeScript), но я быстро понял, что он использует специфичные для TypeScript узлы_модулей. Я пошел искать один для Java ипридумали этот пакет npm: https://www.npmjs.com/package/java-ast. Я не уверен, полезно ли это или нет, но я тоже не знаю, как его использовать (да, есть пример, и я пытался, но я 'я очень новичок в этом, как вы можете сказать).

Если бы кто-то мог помочь мне в дальнейшем, я был бы очень признателен.

...