Syntax Coloring of Source Code

Trac supports language-specific syntax highlighting of source code in wiki formatted text and the repository browser.

To do this, Trac uses external libraries with support for a great number of programming languages.

Currently Trac supports syntax coloring using one or more of the following packages:

  • GNU Enscript
  • SilverCity

To activate syntax coloring, simply install either one (or more) of these packages. No additional configuration is required, however to modify the colors, have a look at trac/htdocs/css/code.css.

When in use, Trac will automatically prioritize SilverCity highlighting over Enscript if possible, (see note below).

If neither package is available, Trac will display the data as plain text.

Note: Enscript supports a greater number of languages, however SilverCity is generally faster since it is a library and isn't executed in an external process.

About SilverCity?

SilverCity uses the lexer from Scintilla. Scintilla supports more languages than SilverCity implements. If you want to add a language to SilverCity supported by Scintilla, it's not very difficult. See SilverCityAddLanguage for some information how.

Syntax Coloring Support

SilverCity Enscript
Ada X
Asm X
* ASP X X
* C X X
* C++ X X
* Java X
Awk X
CSS X
Diff X
Eiffel X
Elisp X
Fortran X
Haskell X
HTML X X
IDL X
Javascript X X
m4 X
Makefile X
Matlab X
Objective-C X
Pascal X
* Perl X X
* PHP X X
PSP X
Pyrex X
* Python X X
* Ruby X X (1)
Scheme X
Shell X
SQL X X
Troff X
TCL X
Tex X
Verilog X
VHDL X
Visual Basic X
VRML X
XML X X

(*) Supported as inline code blocks in Wiki text using WikiProcessors.

(1) Ruby highlighting is not included in the Enscript distribution. Highlighting rules for Ruby can be obtained from: http://neugierig.org/software/ruby/

Extra Software

  • GNU Enscript -- http://people.ssh.fi/mtr/genscript/
  • SilverCity -- http://silvercity.sf.net/

See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser