需要一种使用Vim轻松导航/浏览XSLT文件的方法.
类似于ctags可以与C/C++源代码一起使用的方式.
一个好的解决方案是允许只为自己安装脚本等或直接从Vim内部运行它们.仇恨不得不走出 vim只是为了搜索功能定义或“文本”搜索.
类似于ctags可以与C/C++源代码一起使用的方式.
一个好的解决方案是允许只为自己安装脚本等或直接从Vim内部运行它们.仇恨不得不走出 vim只是为了搜索功能定义或“文本”搜索.
搜索了几个小时,想出了一些像’ack’这样的优秀线索.
显然,这可以使用ack.vim与vim集成.然而要正确地测试它.
我发现kipelovets’和GuruM的答案很有用,并找出了结合他们建议的解决方案:
.ctags文件:
--langdef=xslt --langmap=xslt:.xsl --regex-xslt=/<xsl:template[^>]+name=\"([-a-zA-Z0-9_:]+)\"( +mode="([^"]+)")?/\1 \2/n,namedtemplate/i --regex-xslt=/<xsl:template[^>]+match=\"([^"]+)\"( +mode="([^"]+)")?/\1 \2/m,matchedtemplate/i --regex-xslt=/<xsl:apply-templates +select="([^"]{2,})"( +mode="([^"]+)")?/\1 \2/a,applytemplate/i --regex-xslt=/<xsl:call-template +select="([^"]+)"( +mode="([^"]+)")?/\1 \2/c,calltemplate/i --regex-xslt=/<xsl:variable[^>]+name=\"([-a-zA-Z0-9_]+)\"/\1/v,variable/i --regex-xslt=/<xsl:function[^>]+name=\"([-a-zA-Z0-9_:]+)\"/\1/f,function/i --regex-xslt=/<xsl:param[^>]+name=\"([-a-zA-Z0-9_:]+)\"/\1/p,parameter/i
vim标签栏设置(有些人可能觉得有用):
let g:tagbar_type_xslt = { \ 'ctagstype' : 'xslt',\ 'kinds' : [ \ 'n:templates (named)',\ 'm:templates (matched)',\ 'a:applied templates',\ 'c:called templates',\ 'f:functions',\ 'p:parameters',\ 'v:variables' \ ] \ }
它更好,但我仍然遇到的一些问题包括:
>按模式分组模板
>空格,例如模板/变量等属性之间的新行…
>确定变量和参数的范围,并应用模板和调用模板
>因此,如果您有多个具有相同名称但在不同模板中的变量,
不捕获它们所在模板的范围.
未来尝试的更好方法:
>用于解析来自xslt的信息的正则表达式可以正确地执行此操作
>最好的解决方案可能是使用xslt本身编写自定义xslt标记生成器.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。