Generate ctags from eggs for development.
This recipe generates a TAGS database file that can be used with a number of different editors to quickly lookup class and function definitions in your package’s source files and egg dependencies.
Before running a tags enabled buildout, you must install the appropriate command line tag generation tools: exuberant-ctags and id-utils. In Ubuntu, you can install these with apt-get:
$ sudo apt-get install exuberant-ctags id-utils
On a Mac, download and install port from http://www.macports.org/ and then install ctags and idutils in this way:
$ sudo port install ctags idutils
Suppose you have an egg called MyApplication. To use this recipe with buildout, you would add the following to the buildout.cfg file:
[tags] recipe = z3c.recipe.tag:tags eggs = MyApplication
This produces a script file in the bin/ directory which you can then run like this:
By default, this script produces three files in the directory from which you ran the script:
- a ctags file called TAGS for use by emacs,
- a ctags file called tags for use by vi, and
- an idutils file called ID for use by either.
You can then use these file in your editor of choice.
Optionally, you can select which files to build. The following is the output of ./bin/tags --help:
If you’d like to set command line options by default (e.g. to limit building to ctags-vi by default) you can pass the default option in your buildout:
[tags] recipe = z3c.recipe.tag:tags eggs = MyApplication default = ['-v']
For additional information on using tags tables with different editors see the following websites:
- Emacs: http://www.gnu.org/software/emacs/manual/html_node/emacs/Tags.html
- to jump to the location of a tag, type M-x find-tag and the name of the tag. Or use M-. to jump to the tag matching the token the cursor is currently on. The first time you do this, you will be prompted for the location of the TAGS file.
- VIM: http://vimdoc.sourceforge.net/htmldoc/tagsrch.html
- BBEdit: http://pine.barebones.com/manual/BBEdit_9_User_Manual.pdf Chapter 14, page 324
For more information on ctags, visit http://ctags.sourceforge.net/
(BBEdit is a Macintosh text editor.)
- Exclude Python import statements by default from showing up as tags.
- Add ‘defaults’ option to allow adding default command line options (e.g. to set ‘-v’ by default)
- Skip nonexistent sys.path directories to avoid ctags warnings.
- Support new script features from zc.buildout 1.5 and higher. This version requires zc.buildout 1.5 or higher.
- Also index Mako and HTML files with id-utils.
Add support for using this recipe as a paver task.
Define a default entry point for zc.buildout, so you can simply say:
[ctags] recipe = z3c.recipe.tag
- Allow command-line choices for what files to build, and what languages ctags should parse. (Note that the default behavior of running ./bin/tags is the same as previous releases.)
- Support the Mac OS X packaging system “macports” (exuberant ctags is ctags-exuberant in Ubuntu and ctags in macports).
- Support creating BBEdit-style ctags files.
- Small changes for development (use bootstrap external, set svn:ignore)
- Initial release.
- buildout recipe for generating ctags of eggs used.