如何让标签栏使用js文件
How to get tagbar to work with js files
如果我打开一个扩展名为.html的文件,tagbar就可以正常工作。
如果我打开一个扩展名为.js的文件,那么标签栏不会列出任何内容。只要将文件扩展名重命名为.html就可以了。
如何让标签栏与.js文件一起使用?
您尝试过taglist plus吗?它使用jsctags,在我安装这个插件的短暂时间里,它运行得很好。
-
您正在处理的文件的文件类型(
:set ft?
)是什么? -
您是否已安装和工作
ctags
和/或jsctags
?从放置JavaScript文件的位置执行的
$ ctags -R .
和/或$ jsctags .
是否会创建tags
文件?如果是,它包含什么?
-
如果您使用的是
jsctags
,它是最新的吗?nodejs呢?
在编辑Tasmota
代码时,在*.ino文件中使用vim
、tagbar
和Arduino
源代码时遇到此问题。
我必须意识到两件事:
- 使ctags处理新的文件扩展名(请参阅https://stackoverflow.com/a/67495267/10050838):对于
ctags-universal
,创建一个包含--langmap=c++:+.ino
的文件~/.ctags.d/local.ctags
- 让标签栏知道如何在
.vimrc
中处理vim文件类型arduino
(使用:set filetype?
查询vim中的文件类型):
let g:tagbar_type_arduino = {
' 'ctagstype' : 'c++',
' 'kinds' : [
' 'd:macros:1:0',
' 'p:prototypes:1:0',
' 'g:enums',
' 'e:enumerators:0:0',
' 't:typedefs:0:0',
' 'n:namespaces',
' 'c:classes',
' 's:structs',
' 'u:unions',
' 'f:functions',
' 'm:members:0:0',
' 'v:variables:0:0'
' ],
' 'sro' : '::',
' 'kind2scope' : {
' 'g' : 'enum',
' 'n' : 'namespace',
' 'c' : 'class',
' 's' : 'struct',
' 'u' : 'union'
' },
' 'scope2kind' : {
' 'enum' : 'g',
' 'namespace' : 'n',
' 'class' : 'c',
' 'struct' : 's',
' 'union' : 'u'
' }
' }
在:help tagbar -> tagbar-extend
中查找操作方法和此定义。~/.vim/bundle/tagbar/autoload/tagbar/types/uctags.vim
中给出了Javascript和其他定义
可能还有其他方法可以做到这一点。它适用于我(tm)。
剩下的唯一一件事是:重新打开*.ino
源文件,点击<F8>
显示您的标签栏。
HTH
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面