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 look up 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 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 id-utils (gid, lid).
You can then use these files 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.cfg:
[tags] recipe = z3c.recipe.tag eggs = MyApplication default = ['-v']
You can use this with virtualenv too:
my_venv/bin/pip install z3c.recipe.tag my_venv/bin/build_tags
this will build a tags file for all the packages installed in that virtualenv.
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.)
For more information about GNU id-utils (basically a local text indexing/search engine; think of it as a very fast version of grep -w), see the id-utils manual.
- Add –tag-relative option to support relative tag generation.
- Support and require zc.buildout 2.0.
- Add supported Python version (3.6, 2.7, 3.2, 3.3) classifiers to setup.py
- Update manifest to allow package generation fron non-VCS export. Counters the 0.5 “brown bag” release.
- 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.