Currently ctags does not have a built in support for Clojure, but the Lisp parser is good enough. You just need to tell ctags to treat .clj files as Lisp files. This is easily done by adding the following line to ~/.ctags
--langmap=Lisp:+.clj
To make sure it works, you can run
ctags --list-maps
and see that .clj is a suffix in the Lisp parser.
Cool, I didn't know about ~/.ctags.
ReplyDeleteI really wish ctags were better known by the Emacs-using Clojure community. I would guess that 90% just use Slime's M-., which is rather limited. First, it only works on Clojure code that is loaded into the currently running process. And I don't believe who-calls works in swank-clojure, whereas you get that functionality with tags.
With tags you can use M-. on code that you may just be reading but not have loaded into a running program. This is really nice if a library has dependencies or needs to be special setup and you just want to explore it first.
And of course ctags works with other languages that might be in your project, such as Javascript.