这是.ctags
文件:
-R
--langdef=swift
--langmap=swift:.swift
--regex-swift=/[[:<:]]class[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/c,class/
--regex-swift=/[[:<:]]enum[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/e,enum/
--regex-swift=/[[:<:]]func[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/f,function/
--regex-swift=/[[:<:]]protocol[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/P,protocol/
--regex-swift=/[[:<:]]struct[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/s,struct/
--regex-swift=/[[:<:]]extension[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/E,extension/
--regex-swift=/[[:<:]]typealias[[:>:]][[:space:]]+([[:alnum:]_]+)/\1/t,typealias/
该文件生成得很好,我可以使用该命令tags
搜索 Swift 标签。:tag
当我使用 :CtrlPBufTag 时,我会收到==NO ENTRIES==
消息。
这些标签适用于其他文件类型。例如,这是两个文件的标记文件,一个 PHP 和一个 Swift:
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
PhpTest test.php /^class PhpTest$/;" c
SwiftyClass test.swift /^class SwiftyClass {$/;" c
__construct test.php /^ public function __construct()$/;" f
swiftyFunc test.swift /^ func swiftyFunc() {$/;" f
在 PHP 文件中,我可以使用 :CtrlPBufTag 查看缓冲区的标签。对于 Swift,我得到了==NO ENTRIES==
.