【问题标题】:Has anyone got the vim taglist plugin working with Scala?有没有人使用 Scala 的 vim taglist 插件?
【发布时间】:2010-06-11 01:45:11
【问题描述】:

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

【问题讨论】:

    标签: vim scala taglist


    【解决方案1】:

    首先检查您的标签文件中是否包含某些内容。如果您按照您提到的页面上的说明进行操作,它应该正确识别类、方法等。如果这有效,那么您可以进入下一步。

    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 时,您应该会在“标签列表”窗口中看到生成的 Scala 标签。

    【讨论】:

    • 我想你让我更接近了。我现在可以使用 :tag LiftSession(来自示例)跳转到该文件和项目中的其他文件。但是 Ctrl-T 总是返回 'E73: Tag list empty'。 :TlistToggle 也始终为空。我赞成你的答案,因为它很有帮助。
    • 很奇怪 - 也许标签文件格式以某种方式关闭?我已经尝试过使用最新的(尽管是从 2007 年开始的)taglist 插件和 ctags 2.7 和 2.8,这些都可以与 TlistToggle 一起使用。唯一的区别是我没有使用 Lift 的 Scala 文件。
    • 刚刚用 ctags 2.7 和最新的 lift RC 2.0 试了一下,效果很好。也许另一个 ctags 选项已潜入您的 .ctags 文件?
    • 大多数情况都是如此。我清理了我的 .ctags 文件,只使用了 Scala 设置,现在使用 TlistToggle 可以正常工作。 Ctrl-T 返回 'tag stack empty' 但没关系。谢谢!
    • 很高兴听到你把它整理好了!
    【解决方案2】:

    我最近遇到了同样的麻烦,我已经为 scala 采用并扩展了一个 ctags 提取器,它与 tagbar 插件配合得很好。这是代码:

    https://github.com/luben/sctags

    它比 exuberant-ctags 慢,因为它使用 scalac 解析器,并且 JVM 有明显的启动时间,但它提供了相当完整的信息。

    【讨论】:

      猜你喜欢
      • 2011-06-01
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多