JSDOM 是否可以建立一个充满活力的 ctags 项目?

发布于 2024-11-06 01:57:31 字数 156 浏览 0 评论 0原文

期待优秀的 javascript ctags 支持让我思考是否有像 http://zombie.labnotes.org/ 这样的项目可以用来设置 ctags 来让 vim 用户满意。

Looking forward towards excellent javascript ctags support kept me thinking if a project like http://zombie.labnotes.org/ could be used to setup ctags to keep a vim user happy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

又怨 2024-11-13 01:57:31

嗯,您引用的项目都不是解析器或与 ctags 有任何关系。

  • PhantomJS 让您可以像基于 webkit 的浏览器一样运行脚本。它不会输出代码的分析,只会执行它。您可以使用它对函数执行 toSource()isPrototypeOf() 操作,但这毫无意义。
  • JSDOM 是在脚本中使用的 DOM 实现。它不能作为外部工具运行,因此不能用于生成标签或分析代码。
  • Zombie.js 是一个为您模拟浏览器的测试框架。与 JSDOM 一样,它不能作为外部工具运行,也无法分析您的代码。

您可以使用 :!phantomjs % 将当前脚本提供给 phantomjs,或者在脚本中使用 Zombie 或 jsdom,但这些都无法帮助您更好地了解代码结构或跳转到定义的一个方法。

但是,如果您在项目中使用僵尸或 jsdom 或任何其他库,您可以生成各自的 tags 文件并将它们添加到您的 .vimrc 中,如下所示:

autocmd FileType javascript     set tags+=path/to/a/library/tags
autocmd FileType javascript     set tags+=path/to/another/library/tags

如果您想要的是更好/更现代的tags 生成,您可以尝试 DoctorJS 的 jsctags 或查看 此线程用于更黑客的让 ctags 为您服务的方法。据我所知,这些是你目前唯一的选择。

Hum, none of the projects you are citing are parsers or have anything to do with ctags.

  • PhantomJS let's you run your script as if it was run by a webkit-based browser. It won't output an analysis of your code, it will just execute it. You can use it to do a toSource() or a isPrototypeOf() on a function but that would be rather pointless.
  • JSDOM is an implementation of the DOM to use within your script. It can't be run as an external tool so it can't be used to generate tags or analyse your code.
  • Zombie.js is a testing framework that simulates a browser for you. Like JSDOM, it can't be run as an external tool and it has no ability to analyse your code.

You can feed your current script to phantomjs with :!phantomjs % or use zombie or jsdom in your script but none of it will help you have a better idea of the structure of your code or jump to the definition of a method.

However, if you use either zombie or jsdom or whatever other library in your project you can generate their respective tags files and add them to your .vimrc like this:

autocmd FileType javascript     set tags+=path/to/a/library/tags
autocmd FileType javascript     set tags+=path/to/another/library/tags

If what you want is a better/more modern tags generation you can try DoctorJS' jsctags or look at this thread for a more hackish way to make ctags work for you. As far as I know, these are you only options right now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文