【发布时间】:2018-04-20 03:34:48
【问题描述】:
我们有一个内部模块加载器在工作,我正在尝试为添加代码导航的 vscode 做一个扩展。模块加载器的工作方式类似于 requirejs,但更接近正常 require()。
它将require() 替换为全局include() 函数。
和带有exportModules() 函数的module.exports。
然后使用 acorn.js 构建一个 AST 并对其进行解析以获取所有内容的位置。还有更多,但我认为其余的与这个问题无关。
我做了一些研究,发现这个扩展可以做一些我想做的事情,但可能更简单,因为它不提供函数 goto。
https://github.com/anacierdem/vscode-requirejs
我想知道是否有比通过正则表达式手动查找所有内容或在我的情况下遍历模块加载器为我提供的 AST 树更简单的方法。
问题看起来很简单,告诉 vs code include() 实际上是 require 并将 uri 提供给该文件,以便它可以完成路径并提供正确的代码导航。但这似乎并不那么容易做到。
实现这一目标的最简单方法是什么?
【问题讨论】:
标签: visual-studio-code vscode-extensions monaco-editor