4

我想知道如何让 ctags 在 Fortran 中使用接口,例如:

INTERFACE SOME_ROUTINE
  MODULE SOME_ROUTINE_A
  MODULE SOME_ROUTINE_B
END SOME_ROUTINE

因此,根据传递给子例程的参数调用 SOME_ROUTINE_A 或 SOME_ROUTINE_B。

如果我将光标放在 Vim 中对 SOME_ROUTINE 的调用上,然后点击 C-],我会收到“未找到标签:SOME_ROUTINE”错误,并且如果我检查我的 ctags 文件,它们不在其中。

奇怪的是我也在使用 Vim taglist 插件,源文件中的接口会显示在 taglist 窗口中。我能找到的唯一线索是 taglist 插件代码中的这一行:

let s:tlist_def_fortran_settings = 'fortran;p:program;b:block data;' .
                \ 'c:common;e:entry;i:interface;k:type;l:label;m:module;' .
                \ 'n:namelist;t:derived;v:variable;f:function;s:subroutine'

我已经检查了 ctags 的手册,但找不到任何关于它是如何工作的线索,有人知道发生了什么吗?

4

1 回答 1

8

好的,所以我当然在问了这个问题之后就找到了答案。我只需要在我的 ctags 命令中添加“--fortran-kinds=+i”。

运行“ctags --list-kinds”列出了可以为不同语言输出的信息种类。

于 2010-08-16T21:37:58.553 回答