| 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 |