【发布时间】:2017-04-10 12:36:53
【问题描述】:
我正在为基于 Web 的 JS 编辑器实现自动建议功能。当用户打字时,我想向他展示所有已经声明或使用的变量、函数和类的建议。我可以从window 获取变量和函数,但我无法获取声明的类列表。假设以下是到目前为止输入的代码:
class FooClass {
constructor() {
console.log("I am the constructor of ECMA6 class");
}
};
声明类后,如果用户输入 Foo,我想向他显示建议为FooClass。
【问题讨论】:
-
那么,您是手动解析用户输入的锯文本吗?
-
@Cerbrus,每当用户按下 Ctrl-Space 时,我目前正在调查窗口对象,并相应地返回结果。我也在调查工作线程的 self 对象以获取建议。所以要从工作线程中获取类,我需要声明的类列表。
-
“调查窗口对象”?你什么意思?你是否自动运行用户输入的代码?
-
@Cerbrus,它是一种 Chrome 开发工具类的应用程序,所以在用户输入有效的 JS 代码后,我正在执行它并保持下一个要输入的代码的范围相同。
-
您不想依赖运行的代码来获得这些代码建议,但是...您最好解析
class <someName>部分的代码输入字段
标签: javascript class autocomplete ecmascript-6