Я использую инструмент командной строки exuberant ctags .
% ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Я хотел бы получить список определений регулярных выражений, которые ctags будет использовать при индексировании файлов.
Например, я могу увидеть, какие языки поддерживает ctags:
% ctags --list-languages
BETA
C
C++
C#
Cobol
DosBatch
Eiffel
Erlang
Flex
Fortran
Go
HTML [disabled]
Java
JavaScript
Ruby
Scheme
Sh
SLang
Меня интересует Sh
, поэтому я могу видеть, какие расширения файлов будут запускать ctags, которые будут искать идентификаторы Sh
с:
% ctags --list-maps=Sh
Sh *.sh *.SH *.bsh *.bash *.ksh *.zsh
Теперь я хотел бы получить вывод сопоставлений определений регулярных выражений для языка Sh
, например Я ищу что-то вроде:
ctags --list-definitions=Sh
и, надеюсь, напечатает что-то вроде
--regex-sh=/function[ \t]*([A-Za-z0-9._$()]+)[ \t]*\(/\1/F,function,functions/
--regex-sh=/^[ \t]*(local)?[ \t]*([A-Za-z0-9_-]+)=/\2/v,variable,variables/
Возможно ли это с помощью ctags?
коротко: это не так.
long: ничего подобного нет на странице руководства.
Нет смысла просить о новой функции, так как ее давно не трогали (см. веб-сайт). Существует еще один веб-сайт, рекламирующий себя как "поддерживаемые ctags", но беглое прочтение его страницы руководства показывает мало различий (ничего из того, что вы ищете).
Если это важно, имейте в виду, что эти проекты самообслуживания: если вам нужна функция, вы можете получить ее быстрее, если будете выполнять работу.