Vim 如何让带有泛型的groovy方法与CTAG(通用CTAG)一起工作?

Vim 如何让带有泛型的groovy方法与CTAG(通用CTAG)一起工作?,vim,groovy,tags,ide,ctags,Vim,Groovy,Tags,Ide,Ctags,我尝试了几种ctags配置,但当方法类型返回一些泛型时,所有配置都失败了 class Thing { List<Thing> doStuff() { getSomeList() } } 生成的标记文件: !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=fo

我尝试了几种ctags配置,但当方法类型返回一些泛型时,所有配置都失败了

class Thing {
  List<Thing> doStuff() {
    getSomeList()
  }
}
生成的标记文件:

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE   u-ctags /u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR    Universal Ctags Team    //
!_TAG_PROGRAM_NAME  Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL   https://ctags.io/   /official site/
!_TAG_PROGRAM_VERSION   0.0.0   /157918c6/
Thing   a.groovy    /^class Thing {$/;" h
有一件事,如果我将.groovy文件重命名为.java,我会得到正确的标记。所以功能就在那里的某个地方;我只需要CTAG在groovy文件上使用它。如果我的正则表达式更好,也许我可以修改其中一条规则,但似乎有点太多了。

正如你提到的:

如果我将.groovy文件重命名为.java,我会得到正确的标记

它只能是一行:
--langmap=java:.groovy


jsut已尝试并适用于类、方法。。。既然没有‘;’对于groovy中的语句,此方法将不会解析字段、接口函数decelleration,…

我能够通过添加到正则表达式的a-zA-Z0-9_uu部分使其工作。有更好的办法吗?我也意识到,我可能把这些字母改成了独一无二的字母,把事情搞砸了。我这样做是因为我收到了一个警告,但现在我意识到,最终会出现重复的标记:\n不应该是超级相关的。此外,我必须从规则中删除tildes以使它们与vim一起工作。我不知道他们在那里做什么。我试图使用你的
regex-groovy
模式,但我遇到了一个错误:
选项--regex-groovy=/^[\t]*public[\t]+[(abstract | final | static)\t]*((def | void | byte | int | short | long | float | double | boolean | char |[A-Z][A-zA-Z0-9][uz]*)+[A-Z0],public method/ctags:实物名称中使用了非字母数字字符--regex groovy选项中的“public method”
知道regex的哪个部分可能导致了它吗?最后我找到了,这对我来说很有效。我也尝试了这个方法,但在docstring中遇到了问题:
找不到匹配项'('在第60行
该行是
Doc=''的一部分\n..\n[链接](https://example.com)\n…\n“”
我不是java爱好者,所以我不知道java是否使用不同类型的docstring。我也遇到过。但是docstring实际上不是注释。java中的字符串应该是“…”;或注释中的文档字符串/***;,其中您的
doc=''''.'''.'
是python风格的。
!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE   u-ctags /u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR    Universal Ctags Team    //
!_TAG_PROGRAM_NAME  Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL   https://ctags.io/   /official site/
!_TAG_PROGRAM_VERSION   0.0.0   /157918c6/
Thing   a.groovy    /^class Thing {$/;" h