我正在为基于Web的JS编辑器实现自动建议功能。当用户输入时,我想向他展示已经由他自己声明或使用的所有变量,函数和类的建议。我可以从window
获取变量和函数,但是我无法获得声明的类列表。让我们说以下是迄今为止输入的代码:
class FooClass {
constructor() {
console.log("I am the constructor of ECMA6 class");
}
};

在宣布课程后,如果用户输入Foo,我想向他显示FooClass
的建议。
答案 0 :(得分:0)
大多数IDE使用AST执行自动完成和其他智能重构以及缺陷检测。
最着名的Javascript AST工具之一是Esprima,它与解析Javascript一起运行在JS(浏览器和节点)中。
以下是它如何用于自动完成的演示: http://esprima.org/demo/autocomplete.html
如果您正在创建基于Web的JS编辑器,此工具可能会节省您批次的时间,不要重新发明轮子。
在CodeMirror的上下文中,您可能会发现这有用: https://github.com/maxogden/javascript-editor
codemirror + esprima powered html5 javascript编辑器组件