vscode ECharts extension

1,437 阅读1分钟

最近弄了个ECharts 的 vscode 插件,用来提示在特定的option 下有哪些配置项,和提示这个配置项有哪些合规的值。虽然有一些公共的配置项例如 textStyle, 但在某些option下,textStyle 可以使用的配置项和其他的不一样,最突出的是 rich 富文本

首先上链接

github.com/susiwen8/ec…

整体的思路是把JS代码用 acornjs 解析成AST,然后利用 acorn-walk 的findNodeAround 对光标所在的位置查找临近的 property节点,acron会给出这个节点的范围(start 和 end),拿到区间后,将查找的位置设置为strart - 1 或者 end + 1 找上层父节点,递归查询到节点的类型是program停止. 就可以得到整个节点链上的option名,根据找到的结果去查询配置项即可。

从apache获取的数据格式不符合要求,原始数据是层级归属关系,需要把它扁平化, 自己写了个递归把数据扁平化,这样就能根据找到的所有的节点获取到确切的配置项。

现在的extension 有很多的限制,例如有提示的前提是必须没有JS报错,这就需要用户是一条一条往下加配置项,而且是按回车才能出发,后面有很多需要优化。

写的有点简单,欢迎去Github提建议和star.