如何在VSCode中获取Java抽象语法树?

时间:2019-03-12 10:41:55

标签: java visual-studio-code abstract-syntax-tree vscode-extensions language-server-protocol

我希望我的扩展程序能够读取.java文件的Java AST,以进一步保存所选代码段的节点名称(例如,“ ClassDeclaration”)。例如,如果您选择“ public”,则AST会告诉您它是一个“修饰符”,然后我要将节点名称“ modifier”另存为变量中的字符串。

首先,我需要Java AST。

我首先研究了VSCode市场,但是没有适用于Java的AST扩​​展(但是您可以找到其他用于TypeScript等语言的扩展)。我得到的结果是Java扩展包,其中包含许多有用的Java扩展,但是它们都不是关于AST的。由于有Red Hat提供的调试器和语言支持,因此我非常确定他们使用AST来使扩展正常工作,因此我查看了他们的源代码,试图找到成功的解决方案。我唯一了解的是它们引用了Eclipse JDT“包”,但是我不知道如何。答案可能就在那里,但是代码对我来说很复杂。

我尝试的另一种方法是从TypeScript AST中获取源代码(git链接:https://github.com/krizzdewizz/vscode-typescript-ast-explorer),并尝试编写自己的Java AST Extension(当然是在TypeScript中),但是我很快意识到他使用了TypeScript。特定的node_modules。我去寻找一个Java版本,并提出了以下npm软件包:https://www.npmjs.com/package/java-ast。我不确定这是否有用,但是我也不知道如何使用它(是的,有一个示例,我尝试过,但是我对此很陌生)。

如果有人可以进一步帮助我,我将不胜感激。

0 个答案:

没有答案