我尝试了 Kate 编辑器的 CTags 插件。它有点工作,索引构建静默(没有错误消息),数据库文件以及必要的菜单条目出现。然后Go to definition
- No hits found
。
我并不感到太惊讶。显然,Kate 是这样构建索引的:
ctags -R --c++-types=+px --extra=+q --excmd=pattern --exclude=Makefile --exclude=.
它暗示了 C++;我不能说更多。Haskell ctags 的正确命令行是什么?
升级版:
hasktags
已提出。我设法安装并试运行它:
$ stack exec hasktags
Usage: hasktags [OPTION...] [files or directories...]
directories will be replaced by DIR/**/*.hs DIR/**/*.lhs
Thus hasktags . tags all important files in the current
directory.
If directories are symlinks they will not be followed
unless you pass -L.
A special file "STDIN" will make hasktags read the line separated file
list to be tagged from STDIN.
-c --ctags generate CTAGS file (ctags)
-e --etags generate ETAGS file (etags)
-b --both generate both CTAGS and ETAGS
-a --append append to existing CTAGS and/or ETAGS file(s). Afterward this file will no longer be sorted!
--ignore-close-implementation ignores found implementation if it is closer than 7 lines - so you can jump to definition in one shot
-o --output= output to given file, instead of 'tags', '-' file is stdout
-f --file= same as -o, but used as compatibility with ctags
-x --extendedctag Generate additional information in ctag file.
--cache Cache file data.
-L --follow-symlinks follow symlinks when recursing directories
-S[.hs,.lhs] --suffixes[=.hs,.lhs] list of hs suffixes including "."
-R --tags-absolute make tags paths absolute. Useful when setting tags files in other directories
-h --help This help
在 Kate 中也有一些路径CTags database file
:
/home/alexey/.local/share/kate/katectags/session_db_20171216_180641
我不能从hasktags
自述文件中得到太多。