|   | 1 | = Syntax Coloring of Source Code =  | 
                  
                          |   | 2 | Trac supports language-specific syntax highlighting of source code in [wiki:WikiFormatting wiki formatted] text and the [wiki:TracBrowser repository browser].  | 
                  
                          |   | 3 |   | 
                  
                          |   | 4 | To do this, Trac uses external libraries with support for a great number of programming languages.  | 
                  
                          |   | 5 |   | 
                  
                          |   | 6 | Currently Trac supports syntax coloring using one or more of the following packages:  | 
                  
                          |   | 7 |   | 
                  
                          |   | 8 |  * [http://www.codento.com/people/mtr/genscript/ GNU Enscript]   | 
                  
                          |   | 9 |  * [http://silvercity.sourceforge.net/ SilverCity]  | 
                  
                          |   | 10 |   | 
                  
                          |   | 11 | 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`.  | 
                  
                          |   | 12 |   | 
                  
                          |   | 13 | When in use, Trac will automatically prioritize !SilverCity highlighting over Enscript if possible, (see note below).   | 
                  
                          |   | 14 |   | 
                  
                          |   | 15 | If neither package is available, Trac will display the data as plain text.   | 
                  
                          |   | 16 |   | 
                  
                          |   | 17 | '''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.  | 
                  
                          |   | 18 |   | 
                  
                          |   | 19 | === About SilverCity ===  | 
                  
                          |   | 20 | !SilverCity uses the lexer from [http://www.scintilla.org/ 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 [http://projects.edgewall.com/trac/wiki/SilverCityAddLanguage SilverCityAddLanguage] for some information how.  | 
                  
                          |   | 21 |   | 
                  
                          |   | 22 |   | 
                  
                          |   | 23 | == Syntax Coloring Support ==  | 
                  
                          |   | 24 |   | 
                  
                          |   | 25 | || || !SilverCity || Enscript ||  | 
                  
                          |   | 26 | || Ada      ||   || X ||  | 
                  
                          |   | 27 | || Asm      ||   || X ||  | 
                  
                          |   | 28 | || * ASP    || X || X ||  | 
                  
                          |   | 29 | || * C      || X || X ||  | 
                  
                          |   | 30 | || * C#     ||   || X(2) ||  | 
                  
                          |   | 31 | || * C++    || X || X ||  | 
                  
                          |   | 32 | || * Java   ||   || X ||  | 
                  
                          |   | 33 | || Awk      ||   || X ||  | 
                  
                          |   | 34 | || CSS      || X ||   ||  | 
                  
                          |   | 35 | || Diff     ||   || X ||  | 
                  
                          |   | 36 | || Eiffel   ||   || X ||  | 
                  
                          |   | 37 | || Elisp    ||   || X ||  | 
                  
                          |   | 38 | || Fortran  ||   || X ||  | 
                  
                          |   | 39 | || Haskell  ||   || X ||  | 
                  
                          |   | 40 | || HTML     || X || X ||  | 
                  
                          |   | 41 | || IDL      ||   || X ||  | 
                  
                          |   | 42 | || Javascript || X || X ||  | 
                  
                          |   | 43 | || m4       ||   || X ||  | 
                  
                          |   | 44 | || Makefile ||   || X ||  | 
                  
                          |   | 45 | || Matlab   ||   || X ||  | 
                  
                          |   | 46 | || Objective-C|| || X ||  | 
                  
                          |   | 47 | || Pascal   ||   || X ||  | 
                  
                          |   | 48 | || * Perl   || X || X ||  | 
                  
                          |   | 49 | || * PHP    || X || X ||  | 
                  
                          |   | 50 | || PSP      || X ||   ||  | 
                  
                          |   | 51 | || Pyrex    ||   || X ||  | 
                  
                          |   | 52 | || * Python || X || X ||  | 
                  
                          |   | 53 | || * Ruby   || X || X (1) ||  | 
                  
                          |   | 54 | || Scheme   ||   || X ||  | 
                  
                          |   | 55 | || Shell    ||   || X ||  | 
                  
                          |   | 56 | || SQL      || X || X ||  | 
                  
                          |   | 57 | || Troff    ||   || X ||  | 
                  
                          |   | 58 | || TCL      ||   || X ||  | 
                  
                          |   | 59 | || Tex      ||   || X ||  | 
                  
                          |   | 60 | || Verilog  ||   || X ||  | 
                  
                          |   | 61 | || VHDL     ||   || X ||  | 
                  
                          |   | 62 | || Visual Basic |||| X ||  | 
                  
                          |   | 63 | || VRML     ||   || X ||  | 
                  
                          |   | 64 | || XML      || X ||  ||  | 
                  
                          |   | 65 |   | 
                  
                          |   | 66 | ''(*) Supported as inline code blocks in [wiki:WikiFormatting Wiki text] using WikiProcessors.''  | 
                  
                          |   | 67 |   | 
                  
                          |   | 68 | ''(1) Ruby highlighting is not included in the Enscript distribution.  Highlighting rules for Ruby can be obtained from: http://neugierig.org/software/ruby/  | 
                  
                          |   | 69 |   | 
                  
                          |   | 70 | ''(2) C# highlighting is not included in the Enscript distribution.  Highlighting rules for C# can be obtained from: http://wiki.hasno.info/index.php/Csharp.st  | 
                  
                          |   | 71 |   | 
                  
                          |   | 72 | == Extra Software ==  | 
                  
                          |   | 73 |  * GNU Enscript -- http://directory.fsf.org/GNU/enscript.html  | 
                  
                          |   | 74 |  * GNU Enscript for Windows -- http://gnuwin32.sourceforge.net/packages/enscript.htm  | 
                  
                          |   | 75 |  * !SilverCity -- http://silvercity.sf.net/  | 
                  
                          |   | 76 |   | 
                  
                          |   | 77 | ----  | 
                  
                          |   | 78 | See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser  |