Exuberant ctags

From EDM2
Jump to: navigation, search

Exuberant Ctags is a multi-platform, multi-language implementation of ctags, but that is a programmer's utility that generates an index file of function, variable, class and macro names it finds in source and header files which then allows you to find them quickly if you have a text editor or other utility that supports ctags files. The utility can also create a cross reference file of found items that is intended for human consumption rather than to used by software.

Background

Originally written by Ken Arnold in the late 70's and called just ctags and it was an add on package for vi, but as the name implies the package was originally developed for the C language only. The package was then taken by Darren Hiebert who created Exuberant Ctags expressively so that it could be extended to support just about any language out there and he packaged it with the vim editor.

Forks

There are a few forks and language or editor specific re-implementations that aim to improve support for specific languages or editors but none of these are really of any interest to the OS/2 user, the only one that might be of any interest is Universal-ctags, but that is a fork that attempts to extend and modernise Exuberant Ctags.

Language support

As of version 5.8 ctags supports the following programming languages: Assembler, AWK, ASP, BETA, Bourne/Korn/Z Shell, C, C++, C Sharp (C#), COBOL, Eiffel, Erlang, Fortran, Java, Lisp, Lua, Makefile, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme, S-Lang, Standard ML, Tcl, Vera, Verilog, VHDL, Vim (Vimscript), and YACC.

OS/2 text editors that support ctags

  • NEdit - Open source - Discontinued
  • Preditor/2 - Commercial - Discontinued
  • vi
  • vim - Open source - Current

Versions

  • Last known OS/2 version: ctags v5.8 (2012-06-18)
  • Watcom version: ctags v5.6 (2006-12-18)

Links & publications

Authors

  • Ken Arnold (Original author)
  • Darren Hiebert (Original Exuberant ctags author)
  • Mike Greene (Original OS/2 port)
  • Mentore Siesto (OS/2 port)