Javascript-如何在Javascript中列出文件中声明的所有类

Javascript-如何在Javascript中列出文件中声明的所有类,javascript,class,autocomplete,ecmascript-6,Javascript,Class,Autocomplete,Ecmascript 6,我正在为基于web的JS编辑器实现自动建议功能。当用户输入时,我想向他展示所有已经声明或仅由他自己使用的变量、函数和类的建议。我可以从窗口获取变量和函数,但无法获取声明的类列表。假设以下是到目前为止输入的代码: class类{ 构造函数(){ log(“我是ECMA6类的构造函数”); } };大多数IDE都使用自动完成和其他智能重构以及缺陷检测 最著名的Javascript AST工具之一是,它与解析Javascript一起在JS(浏览器和节点)中运行 下面是一个演示,演示了如何将其用于自动

我正在为基于web的JS编辑器实现自动建议功能。当用户输入时,我想向他展示所有已经声明或仅由他自己使用的变量、函数和类的建议。我可以从
窗口
获取变量和函数,但无法获取声明的类列表。假设以下是到目前为止输入的代码:

class类{
构造函数(){
log(“我是ECMA6类的构造函数”);
}

};大多数IDE都使用自动完成和其他智能重构以及缺陷检测

最著名的Javascript AST工具之一是,它与解析Javascript一起在JS(浏览器和节点)中运行

下面是一个演示,演示了如何将其用于自动完成:

如果您正在创建基于web的JS编辑器,此工具可能会为您节省大量时间,不要重新发明轮子

在CodeMirror的上下文中,您可能会发现以下内容很有帮助:

codemirror+esprima支持的html5 javascript编辑器组件


那么,您是在手动解析用户输入的saw文本吗?@Cerbrus,每当用户按下Ctrl空格键时,我当前正在调查窗口对象,并相应地返回结果。我也在调查worker thread的self对象以寻求建议。因此,为了从工作线程获取类,我需要声明的类列表。“调查窗口对象”?什么意思?您是否自动运行用户输入的代码?@Cerbrus,这是Chrome developer tools类型的应用程序,因此在用户键入有效的JS代码后,我将执行它,并保持下一个输入代码的范围不变。不过,您不想依靠运行的代码获得这些代码建议。。。您最好分析
class
parts的代码输入字段。prima只是分析文件中的关键字。在给出建议之前,它不会进行任何有效性检查。maxogden不支持ECMA6。它正在将
指定为无效关键字。-此外,maxogden可能不支持ECMA6,但esprima支持(它的主页上的第一个项目)——我不是说它将是一个现成的解决方案,但这比尝试自己可靠地重新创建要容易得多。