Visual Studio 代码 - 如何为自定义模块加载器做代码导航扩展
Visual Studio Code - How to do code navigation extention for custom module loader
我们有一个内部模块加载器在工作,我正在尝试为 vscode 做一个添加代码导航的扩展。模块加载器的工作方式类似于 requirejs 但更接近正常 require()
.
它将 require()
替换为全局 include()
函数。
和 module.exports
具有 exportModules()
功能。
然后使用 acorn.js 构建一个 AST 并解析它以获取所有内容的位置。还有更多,但我认为其余的与这个问题无关。
我做了一些研究,发现这个扩展可以做一些我想做的事情,但可能更简单,因为它不提供函数 goto。
https://github.com/anacierdem/vscode-requirejs
我想知道是否有比通过正则表达式手动查找所有内容或在我的情况下遍历模块加载器提供给我的 AST 树更简单的方法。
问题看起来很简单,告诉 vs code include()
实际上是 require
并为其提供该文件的 uri,以便它可以完成路径并提供正确的代码导航。但这似乎一点也不容易做到。
实现此目标的最简单方法是什么?
一种可能的方法是 TypeScript Server plugin. These plugins can augment or change the TypeScript language server's behavior (the TS server powers both vscode's js and ts intellisense). Plugins can be contributed by extensions
我不知道插件添加对新方式的支持或在模块中导入和导出会有多容易。根据您需要多少支持,我怀疑它会非常复杂
我们有一个内部模块加载器在工作,我正在尝试为 vscode 做一个添加代码导航的扩展。模块加载器的工作方式类似于 requirejs 但更接近正常 require()
.
它将 require()
替换为全局 include()
函数。
和 module.exports
具有 exportModules()
功能。
然后使用 acorn.js 构建一个 AST 并解析它以获取所有内容的位置。还有更多,但我认为其余的与这个问题无关。
我做了一些研究,发现这个扩展可以做一些我想做的事情,但可能更简单,因为它不提供函数 goto。
https://github.com/anacierdem/vscode-requirejs
我想知道是否有比通过正则表达式手动查找所有内容或在我的情况下遍历模块加载器提供给我的 AST 树更简单的方法。
问题看起来很简单,告诉 vs code include()
实际上是 require
并为其提供该文件的 uri,以便它可以完成路径并提供正确的代码导航。但这似乎一点也不容易做到。
实现此目标的最简单方法是什么?
一种可能的方法是 TypeScript Server plugin. These plugins can augment or change the TypeScript language server's behavior (the TS server powers both vscode's js and ts intellisense). Plugins can be contributed by extensions
我不知道插件添加对新方式的支持或在模块中导入和导出会有多容易。根据您需要多少支持,我怀疑它会非常复杂