2010-06-11 74 views
5

我无法让taglist插件与Scala一起正常工作。我已经安装了插件和ctags,并验证它可以与Java和C++一起正常工作。然后,我按照这个page(减去特定于电梯的指令)的说明进行操作,但是当我在编辑Scala文件时将其打开时,taglist窗口中没有任何显示。有没有人得到这个工作,什么是适当的步骤?谢谢。有没有人有与Scala一起工作的vim taglist插件?

回答

4

首先检查您的标签文件是否有内容。如果您已按照您提到的页面上的说明操作,它应该正确识别类别,方法等。如果已经有效,那么您可以继续下一步。

taglist plugin有一个支持语言设置的硬编码列表,而Scala不在其中。因此,即使CTags生成正确的标签,该插件也不会读取这些文件类型。

应该可以添加一个定义作为全局变量g:tlist_def_<lang>_settings,但我一直无法让它工作。因此,您必须修改~/.vim/plugin目录中的taglist.vim文件以添加Scala支持。别担心,这很容易做到!

搜索定义s:tlist_def_yacc_settings和之后添加下面的几行的行:

let s:tlist_def_scala_settings = 'scala;t:trait;c:class;T:type;' . 
         \ 'm:method;C:constant;l:local;p:package;o:object' 

现在,当你按下Ctrl-T,你应该看到在标签列表窗口中的产生的斯卡拉标签。

+0

我想你已经拉近了我的距离。我现在可以使用:标记LiftSession(来自示例)跳转到该文件和项目中的其他文件。但Ctrl-T总是返回'E73:标签列表空'。 :TlistToggle也是空的。我会投票回答你的回答,因为它有帮助。 – 2010-06-14 23:51:18

+0

很奇怪 - 也许标签文件格式不知何故?我尝试了最近的“最近”(尽管从2007年)taglist插件和ctags 2.7和2.8,以及那些与TlistToggle一起工作。唯一的区别是我的Scala文件没有使用Lift。 – richq 2010-06-15 10:37:03

+0

刚刚用ctags 2.7和最新的电梯RC 2.0试了一下,效果很好。也许另一个ctags选项会隐藏到你的.ctags文件中? – richq 2010-06-15 10:44:20

0

我最近遇到了同样的麻烦,并且我已经采用并扩展了scala的ctags提取器,这与tagbar插件的工作相当好。这是代码:

https://github.com/luben/sctags

它比旺盛,ctags的慢,因为它使用了scalac解析器和JVM具有明显的启动时间,但它给出了一个相当完整的信息。

相关问题