ctags и интерфейсы Fortran

Мне интересно, как заставить ctags работать с интерфейсами в Fortran, например:

INTERFACE SOME_ROUTINE
  MODULE SOME_ROUTINE_A
  MODULE SOME_ROUTINE_B
END SOME_ROUTINE

Так что либо SOME_ROUTINE_A, либо SOME_ROUTINE_B вызывается в зависимости от параметров, переданных подпрограмме.

Если я наведу курсор на вызов SOME_ROUTINE в Vim и нажму C-], я получу ошибку «тег не найден: SOME_ROUTINE», и если я проверю свой файл ctags, их там нет.

Странно то, что я также использую плагин списка тегов Vim, и интерфейсы в исходном файле будут отображаться в окне списка тегов. Единственная подсказка, которую я смог найти, это строка в коде плагина 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 и не могу найти ни малейшего понятия о том, как это работает, кто-нибудь знает, что происходит?


person AdamR    schedule 16.08.2010    source источник


Ответы (1)


Хорошо, конечно, я нахожу ответ сразу после того, как задаю этот вопрос. Мне просто нужно было добавить "--fortran-kinds=+i" к моей команде ctags.

Запуск «ctags --list-kinds» перечисляет виды информации, которые могут быть выведены для разных языков.

person AdamR    schedule 16.08.2010
comment
Было бы полезно упомянуть, что i — это один из двух видов (другой — L), который по умолчанию равен off. - person Enlico; 16.05.2018