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