Skip to content

Instantly share code, notes, and snippets.

@tajmone
Created October 15, 2018 22:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tajmone/14cba70b583b971a1c0772bd4213dc07 to your computer and use it in GitHub Desktop.
Save tajmone/14cba70b583b971a1c0772bd4213dc07 to your computer and use it in GitHub Desktop.
AsciiDoc 2 PlainText
HIGHLIGHT MANUAL
André Simon
version 3.45,September 2018Contents * 1. OVERVIEW * 1.1. INTENDED PURPOSE
* 1.2. FEATURE LIST
* 1.3. SUPPORTED PROGRAMMING AND MARKUP LANGUAGES
* 2. USAGE AND OPTIONS * 2.1. QUICK INTRODUCTION
* 2.2. CLI OPTIONS
* 2.3. GUI OPTIONS
* 2.4. INPUT AND OUTPUT * HTML, TeX, LaTeX and SVG output
* Terminal output:
* Text processing:
* 2.5. GNU SOURCE-HIGHLIGHT COMPATIBILITY
* 2.6. ADVANCED OPTIONS * Prevent parsing of binary input files
* Highlight nested code without starting
delimiter
* Test new configuration scripts
* Debug language definitions
* Remove an UTF8 BOM:
* Force output to stdout
* Portable GUI (Windows build)
* 2.7. ENVIRONMENT VARIABLES
* 2.8. SYNTAX TESTING
* 3. CONFIGURATION * 3.1. FILE FORMAT
* 3.2. LANGUAGE DEFINITIONS * Syntax elements
* Global variables
* The function OnStateChange
* 3.3. REGULAR EXPRESSIONS
* 3.4. THEME DEFINITIONS * Format attributes
* Theme elements
* 3.5. KEYWORD GROUPS
* 3.6. PLUG-INS
* 3.7. FILE MAPPING
* 3.8. CONFIG FILE SEARCH
* 4. EMBEDDING HIGHLIGHT * 4.1. SAMPLE SCRIPTS
* 4.2. PANDOC
* 4.3. SWIG
* 4.4. TCL
* 4.5. THIRD PARTY SCRIPTS AND PLUG-INS
* 5. BUILDING AND INSTALLING * 5.1. PRECOMPILED PACKAGES
* 5.2. BUILDING DEPENDENCIES
* 6. DEVELOPER CONTACT
OSI Certified Open Source Software
Deutsche Anleitung: README_DE [README_DE.adoc]
1. OVERVIEW
Highlight converts sourcecode to HTML, XHTML, RTF, ODT, LaTeX, TeX,
SVG, BBCode, Pango markup and terminal escape sequences with coloured
syntax highlighting. Syntax definitions and colour themes are
customizable.
1.1. INTENDED PURPOSE
Highlight was designed to offer a flexible but easy to use syntax
highlighter for several output formats. No syntax or colouring
information is hardcoded, instead all relevant data is stored in
configuration scripts. These Lua scripts may be altered and enhanced
with plug-ins.
1.2. FEATURE LIST
* highlighting of keywords, types, strings, numbers, escape
sequences, comments, operators and preprocessor directives
* coloured output in HTML, XHTML 1.1, RTF, TeX, LaTeX, SVG, BBCode,
Pango Markup and terminal escape sequences
* supports referenced stylesheet files for HTML, LaTeX, TeX or SVG
output
* configuration files are Lua scripts
* supports plug-in scripts to tweak language definitions and themes
* syntax elements are defined as regular expressions or plain string
lists
* customizable keyword groups
* recognition of nested languages within a file
* reformatting and indentation of C, C++, C# and Java source code
* wrapping of long lines
* configurable output of line numbers
1.3. SUPPORTED PROGRAMMING AND MARKUP LANGUAGES
Please see README_LANGLIST [README_LANGLIST.adoc] for the current set
of supported languages. To get a list and associated file
extensionsYou may also run:
highlight --list-scripts=langs
2. USAGE AND OPTIONS
2.1. QUICK INTRODUCTION
The following examples show how to produce a highlighted C++ file,
usingmain.cpp as input file:
Generate HTMLhighlight -i main.cpp -o main.cpp.html
highlight < main.cpp > main.cpp.html --syntax cpp
You will find the HTML file and highlight.css in the working
directory. If you use IO redirection (2nd example), you must define
the programming language with --syntax.
Generate HTML with embedded CSS definitions and line numbershighlight -i main.cpp -o main.cpp.html --include-style --line-numbers
Generate HTML with inline CSS definitionshighlight -i main.cpp -o main.cpp.html --inline-css
Generate LaTeX using “horstmann” source formatting style and “neon”
colour themehighlight -O latex -i main.cpp -o main.cpp.tex --reformat horstmann --style neon
The following output formats may be defined with --out-format:
htmlHTML5 (default)
xhtmlXHTML 1.1
texPlain TeX
latexLaTeX
rtfRTF
odtOpenDocument Text (Flat XML)
svgSVG
bbcodeBBCode
pangoPango markup
ansiTerminal 16 color escape codes
xterm256Terminal 256 color escape codes
truecolorTerminal 16m color escape codes
Customize font settingshighlight --syntax ada --font-size 12 --font "'Courier New',monospace"
highlight --syntax ada --out-format=latex --font-size tiny --font sffamily
Define an output directoryhighlight -d some/target/dir/ *.cpp *.h
See highlight --help or man highlight for more details.
2.2. CLI OPTIONS
The command line version of highlight offers the following options:
USAGE: highlight [OPTIONS]... [FILES]...
General options:
-B, --batch-recursive=<wc> convert all matching files, searches subdirs
(Example: -B '*.cpp')
-D, --data-dir=<directory> set path to data directory
--config-file=<file> set path to a lang or theme file
-d, --outdir=<directory> name of output directory
-h, --help print this help
-i, --input=<file> name of single input file
-o, --output=<file> name of single output file
-P, --progress print progress bar in batch mode
-q, --quiet supress progress info in batch mode
-S, --syntax=<type> specify type of source code
-v, --verbose print debug info
--force generate output if input syntax is unknown
--list-scripts=<type> list installed scripts
<type> = [langs, themes, plugins]
--plug-in=<script> execute Lua plug-in script; repeat option to
execute multiple plug-ins
--plug-in-param=<value> set plug-in input parameter
--print-config print path configuration
--print-style print stylesheet only (see --style-outfile)
--skip=<list> ignore listed unknown file types
(Example: --skip='bak;c~;h~')
--start-nested=<lang> define nested language which starts input
without opening delimiter
--stdout output to stdout (batch mode, --print-style)
--validate-input test if input is text, remove Unicode BOM
--version print version and copyright information
Output formatting options:
-O, --out-format=<format> output file in given format
<format>=[html, xhtml, latex, tex, odt, rtf,
ansi, xterm256, truecolor, bbcode, pango, svg]
-c, --style-outfile=<file> name of style file or print to stdout, if
'stdout' is given as file argument
-e, --style-infile=<file> to be included in style-outfile (deprecated)
use a plug-in file instead
-f, --fragment omit document header and footer
-F, --reformat=<style> reformats and indents output in given style
<style> = [allman, banner, gnu,
horstmann, java, kr, linux, mozilla, otbs, vtk,
stroustrup, whitesmith, google, pico, lisp]
-I, --include-style include style definition in output file
-J, --line-length=<num> line length before wrapping (see -V, -W)
-j, --line-number-length=<num> line number width incl. left padding (default: 5)
-k, --font=<font> set font (specific to output format)
-K, --font-size=<num?> set font size (specific to output format)
-l, --line-numbers print line numbers in output file
-m, --line-number-start=<cnt> start line numbering with cnt (assumes -l)
-s, --style=<style> set colour style (theme). See --base16
-t, --replace-tabs=<num> replace tabs by <num> spaces
-T, --doc-title=<title> document title
-u, --encoding=<enc> set output encoding which matches input file
encoding; omit encoding info if set to NONE
-V, --wrap-simple wrap lines after 80 (default) characters w/o
indenting function parameters and statements
-W, --wrap wrap lines after 80 (default) characters
--wrap-no-numbers omit line numbers of wrapped lines
(assumes -l)
-z, --zeroes pad line numbers with 0's
--base16 use a theme of the Base16 collection
--delim-cr set CR as end-of-line delimiter (MacOS 9)
--keep-injections output plug-in injections in spite of -f
--kw-case=<case> change case of case insensitive keywords
<case> = [upper, lower, capitalize]
--no-trailing-nl omit trailing newline
--no-version-info omit version info comment
(X)HTML output options:
-a, --anchors attach anchor to line numbers
-y, --anchor-prefix=<str> set anchor name prefix
-N, --anchor-filename use input file name as anchor prefix
-C, --print-index print index with hyperlinks to output files
-n, --ordered-list print lines as ordered list items
--class-name=<name> set CSS class name prefix;
omit class name if set to NONE
--inline-css output CSS within each tag (verbose output)
--enclose-pre enclose fragmented output with pre tag
(assumes -f)
LaTeX output options:
-b, --babel disable Babel package shorthands
-r, --replace-quotes replace double quotes by \dq{}
--beamer adapt output for the Beamer package
--pretty-symbols improve appearance of brackets and other symbols
RTF output options:
--page-color include page color attributes
-x, --page-size=<ps> set page size
<ps> = [a3, a4, a5, b4, b5, b6, letter]
--char-styles include character stylesheets
SVG output options:
--height set image height (units allowed)
--width set image width (see --height)
GNU source-highlight compatibility options:
--doc create stand alone document
--no-doc cancel the --doc option
--css=filename the external style sheet filename
--src-lang=STRING source language
-t, --tab=INT specify tab length
-n, --line-number[=0] number all output lines, optional padding
--line-number-ref[=p] number all output lines and generate an anchor,
made of the specified prefix p + the line
number (default='line')
--output-dir=path output directory
--failsafe if no language definition is found for the
input, it is simply copied to the output
2.3. GUI OPTIONS
The Graphical User Interface offers a subset of the CLI’s features. It
includes a dynamic preview of the output file’s apperarance. Please
see screenshots and screencasts on the project website. Invoke
highlight-gui with the --portable option to let it save its settings
in the binary’s current directory (instead of using the registry).
2.4. INPUT AND OUTPUT
If no input or output file name is defined by --input and --output
options, highlight will use stdin and stdout for file processing.
Since version 3.44, reading from stdin can also be triggered by the -
option.
If no input filename is defined by --input or given at the prompt,
highlight is not able to determine the language type by means of the
file extension (except some scripting languages which are figured out
by the shebang in the first input line). In this case you have to pass
highlight the language with --syntax(this usually should be the file
suffix of the source file). Example: If you want to convert a Python
file, highlight needs to load thepy.lang definition. The correct
argument of --syntax would be py.
highlight test.py
highlight < test.py --syntax py # --syntax option necessary
cat test.py | highlight --syntax py
If there exist multiple suffixes (like C, cc, cpp and h for C++
files), they are mapped to a language definition in
$CONF_DIR/filetypes.conf.
Highlight enters the batch processing mode if multiple input files are
given or if --batch-recursive is set. In batch mode, highlight will
save the generated files using the original filename, appending the
extension of the chosen output type. If files in the input directories
happen to share the same name, the output files will be prefixed with
their source path name. The --out-dir option is recommended in batch
mode. Use --quiet to improve performance (recommended for usage in
shell scripts).
HTML, TEX, LATEX AND SVG OUTPUT
The HTML, TeX, LaTeX and SVG output formats allow to reference a
stylesheet file which contains the formatting information.
In HTML and SVG output, this file contains CSS definitions and is
saved ashighlight.css. In LaTeX and TeX, it contains macro
definitions, and is saved as 'highlight.sty'.
Name and path of the stylesheet may be modified with --style-outfile.
If the --outdir option is given, all generated output, including
stylesheets, are stored in this directory.
Use --include-style to embed the style information in the output
documents without referencing a stylesheet.
Referenced stylesheets have the advantage to share all formatting
information in a single file, which affects all referencing documents.
With --style-infile you define a file to be included in the final
formatting information of the document. This way you enhance or
redefine the default highlight style definitions without editing
generated code. Note: Using a plug-in script is the preferred way to
enhance styling.
TERMINAL OUTPUT:
Since there are limited colours defined for ANSI terminal output,
there exists only one hard coded colour theme with --out-format=ansi.
You should therefore use --out-format=xterm256 to enable output in 256
colours. The 256 colour mode is supported by recent releases of xterm,
rxvt and Putty (among others). The latest terminal emulators also
support 16m colors, this mode is enabled with --out-format=truecolors.
highlight --out-format=ansi <inputfile> | less -R
highlight --out-format=xterm256 <inputfile> | less -R
TEXT PROCESSING:
If the language definition is specified as txt, no highlighting takes
place.
highlight -S txt --out-format=latex README > README.tex
2.5. GNU SOURCE-HIGHLIGHT COMPATIBILITY
The command line interface is extensively harmonised with
source-highlight [http://www.gnu.org/software/src-highlite/].
The following highlight options have the same meaning as in
source-highlight:
--input, --output, --help, --version, --out-format, --title,
--data-dir,--verbose, --quiet
These options were added to enhance compatibility:
--css, --doc, --failsafe, --line-number, --line-number-ref, --no-doc,
--tab,--output-dir, --src-lang
These switches provide a common highlighter interface for scripts,
plugins etc.
2.6. ADVANCED OPTIONS
PREVENT PARSING OF BINARY INPUT FILES
If highlight might process untrusted input, you can disable parsing of
binary files using --validate-input. This flag causes highlight to
match the input file header with a list of magic numbers. If a binary
file type is detected, highlight quits with an error message. This
switch also removes an UTF-8 BOM in the output.
HIGHLIGHT NESTED CODE WITHOUT STARTING DELIMITER
If a file starts with an embedded code section which misses an
appropriate opening delimiter, the --start-nested option will switch
to the nested language mode. This can be useful with LuaTeX files:
highlight luatex.tex --latex --start-nested=inc_luatex
inc_luatex is a Lua language definition with TeX line comments. The
nested code section has to end with the ending delimiter defined in
the host language definition.
TEST NEW CONFIGURATION SCRIPTS
The option --config-file helps to test new config files. The argument
file must be a lang or theme.
highlight --config-file xxx.lang --config-file yyy.theme -I
DEBUG LANGUAGE DEFINITIONS
Use --verbose to display Lua and syntax data.
REMOVE AN UTF8 BOM:
Use --validate-input to get rid of UTF8 byte order marks.
FORCE OUTPUT TO STDOUT
Use --stdout to write output files in batch mode to stdout.
PORTABLE GUI (WINDOWS BUILD)
Invoke highlight-gui.exe with the --portable switch to save its
configuration in text files instead of the registry.
2.7. ENVIRONMENT VARIABLES
The command line version recognizes these variables:
* HIGHLIGHT_DATADIR: sets the path to highlight’s configuration
scripts
* HIGHLIGHT_OPTIONS: may contain command line options, but no input
file paths.
2.8. SYNTAX TESTING
Since version 2.45, highlight supports special notations within
comments to test its syntax recognition. See README_TESTCASES
[README_TESTCASES.adoc] for details.
3. CONFIGURATION
3.1. FILE FORMAT
Configuration files are Lua scripts. Please refer to
http://www.lua.org/manual/5.1/manual.html
[http://www.lua.org/manual/5.1/manual.html] for more details about the
Lua syntax.
For more details about the Lua syntax, please refer to:
* http://www.lua.org/manual/5.1/manual.html
[http://www.lua.org/manual/5.1/manual.html]
These constructs are sufficient to edit the scripts:
Variable assigmentname = value
(variables have no type, only values have)
Stringsstring1="string literal with escape: \n"
string2=[[raw string without escape sequence]]
If raw string content starts with [ or ends with ], pad the
paranthesis with space to avoid a syntax error. Highlight will strip
the string.
If the string is a regular expression containing a set with a
character class like , use string delimiters with a “filler”:
[=[ regex string ]=]
Comments-- line comment
--[[ block comment ]]
Arraysarray = { first=1, second="2", 3, { 4,5 } }
3.2. LANGUAGE DEFINITIONS
A language definition describes syntax elements of a programming
language which will be highlighted by different colours and font
types. Save the new file in langDefs/ [langDefs/], using the following
name convention:
<usual extension of sourcecode files>.lang
Examples:
PHP→ php.lang
Java→ java.lang
If there exist multiple suffixes, list them in filetypes.conf
[filetypes.conf].
SYNTAX ELEMENTS
Keywords = { Id, List|Regex, Group? }
Id: Integer, keyword group id (values 1-4, can be reused for several keyword
groups)
List: List, list of keywords
Regex: String, regular expression
Group: Integer, capturing group id of regular expression, defines part of regex
which should be returned as keyword (optional; if not set, the match
with the highest group number is returned (counts from left to right))
Comments = { {Block, Nested?, Delimiter={Open, Close?} }
Block: Boolean, true if comment is a block comment
Nested: Boolean, true if block comments can be nested (optional)
Delimiter: List, contains open delimiter regex (line comment) or open and close
delimiter regexes (block comment)
Strings = { Delimiter|DelimiterPairs={Open, Close, Raw?}, Escape?, Interpolation?,
RawPrefix?, AssertEqualLength? }
Delimiter: String, regular expression which describes string delimiters
DelimiterPairs: List, includes open and close delimiter expressions if not
equal, includes optional Raw flag as boolean which marks
delimiter pair to contain a raw string
Escape: String, regex of escape sequences (optional)
Interpolation: String, regex of interpolation sequences (optional)
RawPrefix: String, defines raw string indicator (optional)
AssertEqualLength: Boolean, set true if delimiters must have the same length
PreProcessor = { Prefix, Continuation? }
Prefix: String, regular expression which describes open delimiter
Continuation: String, contains line continuation character (optional).
NestedSections = {Lang, Delimiter= {} }
Lang: String, name of nested language
Delimiter: List, contains open and close delimiters of the code section
Description: String, Defines syntax description
Digits: String, Regular expression which defines digits (optional)
Identifiers: String, Regular expression which defines identifiers
(optional)
Operators: String, Regular expression which defines operators
EnableIndentation: Boolean, set true if syntax may be reformatted and indented
IgnoreCase: Boolean, set true if keyword case should be ignored
GLOBAL VARIABLES
The following variables are available within a language definition:
HL_LANG_DIRpath of language definition directory (use with Lua dofile
function)
IdentifiersDefault regex for identifiers
DigitsDefault regex for numbers
The following integer variables represent the internal highlighting
states:
* HL_STANDARD
* HL_STRING
* HL_NUMBER
* HL_LINE_COMMENT
* HL_BLOCK_COMMENT
* HL_ESC_SEQ
* HL_PREPROC
* HL_PREPROC_STRING
* HL_OPERATOR
* HL_INTERPOLATION
* HL_LINENUMBER
* HL_KEYWORD
* HL_STRING_END
* HL_LINE_COMMENT_END
* HL_BLOCK_COMMENT_END
* HL_ESC_SEQ_END
* HL_PREPROC_END
* HL_OPERATOR_END
* HL_INTERPOLATION_END
* HL_KEYWORD_END
* HL_EMBEDDED_CODE_BEGIN
* HL_EMBEDDED_CODE_END
* HL_IDENTIFIER_BEGIN
* HL_IDENTIFIER_END
* HL_UNKNOWN
* HL_REJECT
THE FUNCTION ONSTATECHANGE
This function is a hook which is called if an internal state changes
(e.g. fromHL_STANDARD to HL_KEYWORD if a keyword is found). It can be
used to alter the new state or to manipulate syntax elements like
keyword lists.
OnStateChange(oldState, newState, token, kwGroupID)
Hook Event: Highlighting parser state change
Parameters: oldState: old state
newState: intended new state
token: the current token which triggered the new state
kwGroupID: if newState is HL_KEYWORD, the parameter
contains the keyword group ID
Returns: Correct state to continue OR HL_REJECT
Return HL_REJECT if the recognized token and state should be
discarded; the first character of token will be outputted and
highlighted as oldState.
See README_PLUGINS [README_PLUGINS.adoc] for more available functions.
ExampleDescription="C and C++"
Keywords={
{ Id=1,
List={"goto", "break", "return", "continue", "asm", "case", "default",
-- [..]
}
},
-- [..]
}
Strings = {
Delimiter=[["|']],
RawPrefix="R",
}
Comments = {
{ Block=true,
Nested=false,
Delimiter = { [[\/\*]], [[\*\/]] } },
{ Block=false,
Delimiter = { [[//]] } }
}
IgnoreCase=false
PreProcessor = {
Prefix=[[#]],
Continuation="\\",
}
Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|\<|\>|\!|\=|\/|\*|\%|\+|\-|\~]]
EnableIndentation=true
-- resolve issue with C++14 number separator syntax
function OnStateChange(oldState, newState, token)
if token=="'" and oldState==HL_NUMBER and newState==HL_STRING then
return HL_NUMBER
end
return newState
end
3.3. REGULAR EXPRESSIONS
Please see README_REGEX [README_REGEX.adoc] for the supported regex
constructs.
3.4. THEME DEFINITIONS
Colour themes contain the formatting information of the syntax
elements which are described in language definitions.
The files have to be stored as .theme in themes/ [themes/]. Apply a
theme with the --style option. Use --base16 to use one of the included
Base16 themes (located in themes/base16/ [themes/base16/]).
FORMAT ATTRIBUTES
Attributes = {Colour, Bold?, Italic?, Underline? }
ColourString, defines colour in HTML hex notation (#rrggbb)
BoldBoolean, true if font should be bold (optional)
ItalicBoolean, true if font should be italic (optional)
UnderlineBoolean, true if font should be underlined (optional)
THEME ELEMENTS
Description: String, Defines theme description
Default = Attributes (Colour of unspecified text)
Canvas = Attributes (Background colour )
Number = Attributes (Formatting of numbers)
Escape = Attributes (Formatting of escape sequences)
String = Attributes (Formatting of strings)
Interpolation = Attributes (Formatting of interpolation sequences)
PreProcessor = Attributes (Formatting of preprocessor directives)
StringPreProc = Attributes (Formatting of strings within preprocessor directives)
BlockComment = Attributes (Formatting of block comments)
LineComment = Attributes (Formatting of line comments)
LineNum = Attributes (Formatting of line numbers)
Operator = Attributes (Formatting of operators)
Keywords= {
Attributes1,
Attributes2,
Attributes3,
Attributes4,
}
AttributesN: Formatting of keyword group N. There should be at least four items
to match the number of keyword groups defined in the language
definitions
ExampleDefault = { Colour="#000000" }
Canvas = { Colour="#ffffff" }
Number = { Colour="#000000" }
Escape = { Colour="#bd8d8b" }
String = { Colour="#bd8d8b" }
StringPreProc = { Colour="#bd8d8b" }
BlockComment = { Colour="#ac2020", Italic=true }
PreProcessor = { Colour="#000000" }
LineNum = { Colour="#555555" }
Operator = { Colour="#000000" }
LineComment = BlockComment
Keywords = {
{ Colour= "#9c20ee", Bold=true },
{ Colour= "#208920" },
{ Colour= "#0000ff" },
{ Colour= "#000000" },
}
3.5. KEYWORD GROUPS
You may define custom keyword groups and corresponding highlighting
styles. This is useful if you want to highlight functions of a third
party library, macros, constants etc.
You define a new group in two steps:
1. Define a new group in your language definition or plug-in:
table.insert(Keywords, {
{Id=5, List = {"ERROR", "DEBUG", "WARN"} }
})
2. Add a corresponding highlighting style in your colour theme or
plug-in:
if #Keywords==4 then
table.insert(Keywords, {Colour= "#ff0000", Bold=true})
end
It is recommended to define keyword groups in user-defined plugin
scripts to avoid editing of original highlight files. See the
cpp_qt.lua [plugins/cpp_qt.lua] sample plug-in script and
README_PLUGINS [README_PLUGINS.adoc] for details.
3.6. PLUG-INS
The --plug-in option reads the path of a Lua script which overrides or
enhances the settings of theme and language definition files. Plug-ins
make it possible to apply costum settings without the need to edit
installed configuration files. You can apply multiple plugins by using
the --plug-in option more than once.
See README_PLUGINS [README_PLUGINS.adoc] for a detailed description
and examples of packaged plugins.
3.7. FILE MAPPING
The script filetypes.conf [filetypes.conf] assigns file extensions and
shebang descriptions to language definitions. A configuration is
mandatory only if multiple file extensions are linked to one syntax or
if a extension is ambiguous. Otherwise the syntax definition whose
name corresponds to the input file extension will be applied.
Format:
FileMapping={
{ Lang, Filenames|Extensions|Shebang },
}
Lang: String, name of language definition
Filenames: list of strings, contains filenames referring to "Lang"
Extensions: list of strings, contains file extensions referring to "Lang"
Shebang: String, Regular expression which matches the first line of the input
file
Behaviour upon ambiguous file extensions:
- CLI: the first association listed here will be used
- GUI: a syntax selection prompt will be shown
Edit the file gui_files/ext/fileopenfilter.conf
[gui_files/ext/fileopenfilter.conf] to add new syntax types to the
GUI’s file open filter.
3.8. CONFIG FILE SEARCH
Configuration scripts are searched in the following directories:
1. ~/.highlight/
2. value of the environment variable HIGHLIGHT_DATADIR
3. user defined directory set with --data-dir (deprecated option)
4. /usr/share/highlight/
5. /etc/highlight/ (location of filetypes.conf)
6. current working directory (fallback)
These subdirectories are expected to contain the corresponding
scripts:
* langDefs: *.lang
* themes: *.theme
* plugins: *.lua
A custom filetypes.conf may be placed directly in ~/.highlight/. This
search order enables you to enhance the installed scripts without the
need to copy preinstalled files somewhere else.
4. EMBEDDING HIGHLIGHT
4.1. SAMPLE SCRIPTS
See the extras/ [extras/] subdirectory in the highlight package for
some scripts in PHP, Perl and Python which invoke highlight and
retrieve its output as string. These scripts may be used as reference
to develop plug-ins for other apps.
4.2. PANDOC
PP macros file and tutorial are located in extras/pandoc/
[extras/pandoc/]. See README.html [extras/pandoc/README.html] for
usage instruction and example files as reference.
4.3. SWIG
A SWIG interface file is located in extras/swig/ [extras/swig/]. See
README_SWIG [extras/swig/README_SWIG] for installation instructions
and the example scripts in Perl, PHP and Python as programming
reference.
4.4. TCL
A TCL extension is located in extras/tcl/ [extras/tcl/]. See
README_TCL [extras/tcl/README_TCL] for installation instructions.
4.5. THIRD PARTY SCRIPTS AND PLUG-INS
See the extras/web_plugins/ [extras/web_plugins/] subdirectory in the
highlight package for some plugins which integrate highlight in Wiki
and Blogging software:
* DokuWiki
* MovableType
* Wordpress
* Serendipity
Other uses of highlight can be found on www.andre-simon.de
[http://www.andre-simon.de]This site shows several use cases of
highlight in projects like Webgit, Evolution, Inkscape, Ranger and
more.
5. BUILDING AND INSTALLING
5.1. PRECOMPILED PACKAGES
The file INSTALL [INSTALL] describes the installation from source and
includes links to precompiled packages.
5.2. BUILDING DEPENDENCIES
Highlight is known to compile with gcc and clang.
It depends on Boost headers and Lua 5.x/LuaJit developer packages.
The optional GUI depends on Qt5 developer packages.
Please see the makefile [makefile] for further options.
6. DEVELOPER CONTACT
Andre Simon
andre.simon1@gmx.de [andre.simon1@gmx.de]
www.andre-simon.de [http://www.andre-simon.de]
Git project with repository, bug tracker:
* https://gitlab.com/saalen/highlight/
[https://gitlab.com/saalen/highlight/]
* https://github.com/andre-simon/highlight
[https://github.com/andre-simon/highlight] (will be set to archive
mode)
sf.net project with SVN repository, download mirror, bug tracker, help
forum:
* http://sourceforge.net/projects/syntaxhighlight/
[http://sourceforge.net/projects/syntaxhighlight/]
Version 3.45
Last updated 2018-10-06 00:42:04 ora legale Europa occidentale
:: "adoc2txt.bat" v1.0.0 (20018/10/16) by Tristano Ajmone
:: =============================================================================
:: ASCIIDOC 2 PLAINTEXT
:: =============================================================================
:: Released into the Public Domain via Unlicense || http://unlicense.org
:: -----------------------------------------------------------------------------
:: Requires Jamie Halvorson's html-to-text-cli:
:: -- https://www.npmjs.com/package/html-to-text-cli
:: -----------------------------------------------------------------------------
@ECHO OFF
CALL :conv2txt README.adoc
CALL :conv2txt ChangeLog.adoc
EXIT /B
:: =============================================================================
:: func Convert To PlainText
:: =============================================================================
:conv2txt
CALL asciidoctor^
-a sectids!^
-a sectanchors!^
%1
TYPE %~n1.html | html-to-text^
--wordwrap=70^
--hideLinkHrefIfSameAsText=true^
--ignoreHref=true^
--unorderedListItemPrefix=" + "^
> %~n1.txt
EXIT /B
HIGHLIGHT CHANGELOG
HIGHLIGHT 3.47
13.10.2018
* fixed xterm256 and truecolor whitespace output #2 (
https://gitlab.com/saalen/highlight/issues/90
[https://gitlab.com/saalen/highlight/issues/90])
* fixed LaTeX, TeX, SVG and ODT whitespace output (regression of
3.45)
* added darkplus theme (
https://gitlab.com/saalen/highlight/merge_requests/84
[https://gitlab.com/saalen/highlight/merge_requests/84])
* converted ChangeLog to AsciiDoc
* allowed state test indicators to match both whitespace (ws) and the
enclosing state (others)
* CLI: default output changed to xterm256 or truecolor if run in a
terminal with color support and only a single file is outputted
* GUI: added checkbox in the clipboard tab to output selected lines
only
HIGHLIGHT 3.46
07.10.2018
* fixed xterm256 and truecolor whitespace output (
https://gitlab.com/saalen/highlight/issues/90
[https://gitlab.com/saalen/highlight/issues/90])
* converted manuals to AsciiDoc (thanks to Tristano Ajmone)
HIGHLIGHT 3.45
02.10.2018
* added DocumentHeader and DocumentFooter plug-in hooks
* added RemoveKeyword Lua function for syntax definitions
* added syntax test indicators (see README_TESTCASES)
* added support for ISO and R10 variants of Modula2 (thanks to
Benjamin Kowarsch)
* fixed R identifiers (
https://gitlab.com/saalen/highlight/merge_requests/77
[https://gitlab.com/saalen/highlight/merge_requests/77])
* fixed ALAN IF identifiers (see
https://gitlab.com/saalen/highlight/merge_requests/79
[https://gitlab.com/saalen/highlight/merge_requests/79])
* fixed issue with Bash string interpolation
* fixed some bugs found by coverity tool (
https://gitlab.com/saalen/highlight/issues/82
[https://gitlab.com/saalen/highlight/issues/82])
* added Swift keywords and types
* added filetypes.conf.5 man page (
https://gitlab.com/saalen/highlight/issues/83
[https://gitlab.com/saalen/highlight/issues/83])
* added Gradle extension mapping (
https://gitlab.com/saalen/highlight/merge_requests/80
[https://gitlab.com/saalen/highlight/merge_requests/80])
HIGHLIGHT 3.44
17.07.2018
* fixed gcc 8 compilation warnings
* fixed Ruby string interpolation (
https://github.com/andre-simon/highlight/issues/70
[https://github.com/andre-simon/highlight/issues/70])
* added support for ALAN IF (thanks to Tristano Ajmone)
* added 107 Base16 themes [https://github.com/chriskempson/base16
[https://github.com/chriskempson/base16]] (thanks to Tristano
Ajmone)
* updated Rust and Java reserved words lists
* revised documentation
* moved extras/css-themes into extras/themes-resources
* added extras/themes-resources/base16 (thanks to Tristano Ajmone)
* GUI: added Base16 theme selection checkbox
* CLI: added --base16 option to enable the new themes
* CLI: accept - as argument to read from stdin (
https://github.com/andre-simon/highlight/issues/73
[https://github.com/andre-simon/highlight/issues/73])
HIGHLIGHT 3.43
30.04.2018
* updated astyle code to release 3.1 (Rev. 655)
* added webkit reformatting style
* improved several language definitions
* fixed Matlab string recognition (
https://github.com/andre-simon/highlight/issues/61
[https://github.com/andre-simon/highlight/issues/61])
* fixed Autohotkey escape sequence recognition (thanks to Klaus
Daube)
* added excel.lang (https://github.com/andre-simon/highlight/pull/60
[https://github.com/andre-simon/highlight/pull/60])
* improved Qt pro file (
https://github.com/andre-simon/highlight/pull/59
[https://github.com/andre-simon/highlight/pull/59])
* CLI: added --reformat-option (
https://github.com/andre-simon/highlight/issues/62
[https://github.com/andre-simon/highlight/issues/62])
* CLI: added --line-range (
https://github.com/andre-simon/highlight/issues/64
[https://github.com/andre-simon/highlight/issues/64])
* GUI: added Bulgarian translation (thanks to Georgi Sotirov)
HIGHLIGHT 3.42
20.01.2018
* fixed HL_OUTPUT in Lua state for HL_FORMAT_XHTML and
HL_FORMAT_TRUECOLOR values
* fixed lib-shared make target
* updated astyle code to release 3.1.0 beta
* added Polygen and EBNF2 syntax definitions (thanks to Tristano
Ajmone)
* added pywal terminal colouring template in extras/pywal
* added reformatting style ratliff (replaces banner)
* added extras/langDefs-resources/cleanslate.lang (thanks to Tristano
Ajmone)
* improved Perl6 compatibility
* improved PHP string interpolation
* improved Haskell definition (
https://github.com/andre-simon/highlight/pull/52
[https://github.com/andre-simon/highlight/pull/52])
* CLI: added --canvas option to define background color padding in
ANSI output (https://github.com/andre-simon/highlight/issues/40
[https://github.com/andre-simon/highlight/issues/40])
* GUI: added French translation (thanks to Antoine Belvire)
* GUI: added Scripts tab (suggested by Tristano Ajmone)
* GUI: minor bugfixes
HIGHLIGHT 3.41
27.11.2017
* renamed examples directory to extras
* line anchors (-a) are attached as id attribute to the first span or
li tag in HTML output (
https://github.com/andre-simon/highlight/issues/36
[https://github.com/andre-simon/highlight/issues/36])
* renamed ID prefix in outhtml_codefold plug-in to be compatible with
-a IDs
* added fstab.lang and added anacrontab in filetypes.conf
* removed references to OutputType::HTML32
* added extras/css-themes and extras/langDefs-resources (thanks to
Tristano Ajmone)
* CLI: removed deprecated indicator of --data-dir option
* CLI: added --no-version-info option
* GUI: fixed initial theme selection
* GUI: added "Omit version info comment" option
* GUI: added "Copy with MIME type" option for HTML output (
https://github.com/andre-simon/highlight/issues/32
[https://github.com/andre-simon/highlight/issues/32])
HIGHLIGHT 3.40
20.10.2017
* fixed Ruby string parsing (thanks to Jens Schleusener)
* fixed segfault on sparc64 (patch by James Clarke)
* fixed PureBasic definition (
https://github.com/andre-simon/highlight/issues/25
[https://github.com/andre-simon/highlight/issues/25])
* added CMake definition (
https://github.com/andre-simon/highlight/issues/20
[https://github.com/andre-simon/highlight/issues/20])
* added email definition (
https://github.com/andre-simon/highlight/issues/21
[https://github.com/andre-simon/highlight/issues/21])
* linked scm suffix to lisp definition (
https://github.com/andre-simon/highlight/issues/22
[https://github.com/andre-simon/highlight/issues/22])
* W32 CLI: support HIGHLIGHT_DATADIR and --data-dir options (
https://github.com/andre-simon/highlight/issues/24
[https://github.com/andre-simon/highlight/issues/24])
* revised documentation
HIGHLIGHT 3.39
25.07.2017
* added syntax for Docker and Elixir
* improved HTML, Julia, Kotlin and Smalltalk syntax definitions
* GUI: added "Paste, Convert and Copy" button (
https://sourceforge.net/p/syntaxhighlight/support-requests/4/
[https://sourceforge.net/p/syntaxhighlight/support-requests/4/])
HIGHLIGHT 3.38
20.06.2017
* fixed Bash variable highlighting issue
* updated astyle code to release 3.0.1 (
https://sourceforge.net/p/astyle/bugs/438
[https://sourceforge.net/p/astyle/bugs/438])
* added bash_ref_man7_org.lua plugin
HIGHLIGHT 3.37
30.05.2017
* fixed Perl string highlighting issue
* fixed highlighting if a line continues after the nested code
delimiter
* updated astyle code to release 3.0
* added examples/pandoc (thanks to Tristano Ajmone)
* added syntax mapping for markdown (
https://github.com/andre-simon/highlight/issues/11
[https://github.com/andre-simon/highlight/issues/11])
* added syntax mapping for clj (
https://github.com/andre-simon/highlight/issues/15
[https://github.com/andre-simon/highlight/issues/15])
* improved Java definition (
https://github.com/andre-simon/highlight/issues/13
[https://github.com/andre-simon/highlight/issues/13])
* added theme to JSON converter in examples/json (
https://github.com/andre-simon/highlight/issues/8
[https://github.com/andre-simon/highlight/issues/8])
* CLI: added support for environment variable HIGHLIGHT_OPTIONS (
https://github.com/andre-simon/highlight/issues/17
[https://github.com/andre-simon/highlight/issues/17])
HIGHLIGHT 3.36
30.03.2017
* fixed code folding plugin to support more Ruby conditional
modifiers (thanks to Jens Schleusener)
* fixed Perl quoted string highlighting (thanks to Jens Schleusener)
* added new GeneratorOverride syntax definition parameter
* added Filenames parameter in filetypes.conf to assign input
filenames to syntax types (suggested by Andy)
* added FASM definition and edit-fasm theme (thanks to Tristano
Ajmone)
* added outhtml_ie7_webctrl plug-in (suggested by Tristano Ajmone)
* GUI: file extensions can be configured for multiple languages,
triggers syntax selection prompt
* GUI: added Italian translation (thanks to Tristano Ajmone)
HIGHLIGHT 3.35
28.02.2017
* fixed code folding plugin to support Ruby conditional modifiers
* fixed JSON definition (thanks to Timothee Cour)
* fixed output of unknown syntax warning with applied force switch
(thanks to Andy)
* added state trace parameter to Decorate plug-in function
* added GDScript definition and edit-godot theme (thanks to Tristano
Ajmone)
* updated SWIG code samples
* updated Artistic Style lib (SVN Rev. 553)
* revised docs
* CLI: fixed creation of hidden files if output filename is prepended
by its input path
* CLI: added switch --stdout (
https://sourceforge.net/p/syntaxhighlight/bugs/14
[https://sourceforge.net/p/syntaxhighlight/bugs/14])
HIGHLIGHT 3.34
27.12.2016
* fixed segfault with --skip applied on a single file input list
(thanks to Jens Schleusener)
* added support for Python 3.6 syntax
* added Github and Sourceforge themes
HIGHLIGHT 3.33
02.11.2016
* fixed highlighting of nested section delimiters
* fixed PHP definition (thanks to Christoph Burschka)
* fixed font family declaration in SVG
* fixed user defined encoding in ODT
* fixed unnecessary output of style file with --inline-css (thanks to
Jens Schleusener)
* added vimscript language definition (thanks to Max Christian Pohle)
* added Coffeescript language definition (thanks to Jess Austin)
* added PureBasic definition and theme (thanks to Tristano Ajmone)
* added JSX language definition (suggested by Max Stoiber)
* added PO translation definition
* added plug-in outhtml_add_figure.lua
* updated js definition
* updated Artistic Style lib (SVN Rev. 521)
* improved various color themes and syntax definitions
HIGHLIGHT 3.32
24.09.2016
* added support for true color escape codes (--out-format truecolor)
* fixed xterm256 output for paging with less (thanks to Fylwind)
* fixed operator regex in rnc.lang, crk.lang and yaml.lang (thanks to
Joe Klauza)
* added Pony and Whiley definitions
* updated Ceylon, Julia and TypeScript definitions
* added Go, AutoHotKey, TypeScript and R to the foldable list in the
outhtml_codefold.lua plug-in
* removed plugins/bash_ref_linuxmanpages_com.lua
* GUI: fixed README, ChangeLog and License file paths on Linux
HIGHLIGHT 3.31
01.08.2016
* revised documentation
* GUI: fixed minor layout issues
HIGHLIGHT 3.30
30.06.2016
* the data directory can be defined with the HIGHLIGHT_DATADIR
environment variable
* fixed RTF output of UTF-8 input; needs input encoding set to utf-8
(thanks to Kamigishi Rei)
* fixed XML comment recognition (thanks to Mani)
* data search directories were appended to the result of
--list-scripts
* revised older syntax definitions
* updated base URLs of bash_ref_linuxmanpages and cpp_ref_qtproject
plug-ins
* GUI: added system copy and paste shortcuts for clipboard functions
(suggested by Kamigishi Rei)
HIGHLIGHT 3.29
24.05.2016
* added Ansible Yaml definition (thanks to Raphael Droz)
* added Chapel definition (thanks to Lydia Duncan)
* fixed gcc 6 warnings about deprecated auto_ptr usage
* src/makefile: added -std=c++11 because of auto_ptr to unique_ptr
transition (thanks to Jens Schleusener)
* GUI: fixed style file output if "write to source directory" option
is checked (thanks to Jim Pattee)
HIGHLIGHT 3.28
15.02.2016
* added support of Pascal, Lua, Ruby and C# regions in
outhtml_codefold.lua
* improved outhtml_codefold.lua to handle embedded languages
* added string delimiters in the Ruby definition
* added new AssertEqualLength flag in string section of language
definitions
* improved heredoc parsing
* fixed Lua multiline string recognition
* improved SVG whitespace output (patch by Paul de Vrieze)
* added Nim and mIRC Scripting definitions
HIGHLIGHT 3.27
19.01.2016
* improved outhtml_codefold.lua to ignore brackets on the same line
* added RTF output to mark_lines.lua
* fixed Powershell and NSIS definitions
* added JSON and Github Markdown definitions
* CLI: added --keep-injections option to force plugin injection
output with -f
* GUI: added keep injections checkbox
* GUI: fixed crash after removing selected plugins
HIGHLIGHT 3.26
13.01.2016
* added HL_REJECT state to be used in a OnStateChange function
* added DecorateLineBegin and DecorateLineEnd hooks
* added mark_lines.lua, outhtml_codefold.lua, comment_links.lua
plug-ins
* fixed font face in ODT output
* fixed Operators parameter in frink.lang and oorexx.lang
* fixed regular expression parsing within strings for JS, Perl and
Ruby
* CLI: added --page-color option to include a page color in RTF
output
* GUI: added RTF page color checkbox
HIGHLIGHT 3.25
18.12.2015
* added new SVG definition to support embedded scripting
* improved js.lang, css.lang, scss.lang, less.lang, tsql.lang
* modified HTML ordered list output to work better with new plug-ins
* renamed plug-in variable HL_INPUT_FILE to HL_PLUGIN_PARAM
* CLI: renamed --plug-in-read option to --plug-in-param
* GUI: updated plug-in parameter label and tool-tips
* GUI: fixed minor issues
HIGHLIGHT 3.24
02.11.2015
* fixed TeX output for cweb documents (patch by Ingo Krabbe)
* fixed string interpolation in bat.lang
* added reduce_filesize.lua, outhtml_add_shadow.lua,
outhtml_add_background_svg.lua, outhtml_add_background_stripes.lua,
outhtml_add_line.lua plug-ins
* added TCL extension in examples/tcl
* added kotlin.lang, nginx.lang and julia.lang
* updated php.lang to include version 7 keywords
* updated ceylon.lang to include version 1.2 keywords
* updated scripts in examples directory
* CLI: style-infile option marked as deprecated
* GUI: shortened paths in file input lists
HIGHLIGHT 3.23
16.07.2015
* added rs.lang
* added conf.lang (thanks to Victor Ananjevsky)
* added some extensions in filetypes.conf (patch by Victor
Ananjevsky)
* fixed Matlab definition and style (thanks to Justin Pearson)
* CLI: fixed --list-scripts with unknown argument (thanks to Jens
Schleusener)
HIGHLIGHT 3.22
17.02.2015
* updated astyle code to release 2.05.1
* fixed shebang recognition (thanks to Victor Ananjevsky)
* GUI: added option to define line numbering start
HIGHLIGHT 3.21
02.02.2015
* added support for LESS, SASS and Stylus CSS processors (suggested
by Marcel Bischoff)
* added support for Lua 5.3, removed LUA52 makefile option
* fixed heredoc matching in perl.lang (thanks to cornucopia)
* fixed Haskell lang (thanks to Daan Michiels)
* fixed RNC lang (thanks to Daan Michiels)
* fixed regex pattern in js.lang
HIGHLIGHT 3.20
28.11.2014
* updated astyle code to release 2.05
* added astyle reformatting style vtk
HIGHLIGHT 3.19
05.09.2014
* added bold, italic and underline attributes to xterm256 ANSI output
(patch by Andrew Fuller)
* fixed assembler mapping in filetypes.conf (thanks to Jens
Schleusener)
* added Swift definition
* improved ASP, F#, OCaml and Lisp syntax definitions
* added interpolation patterns to several definitions
* updated base URLs in cpp_ref_gtk_gnome and cpp_ref_qtproject
plug-ins
* CLI: added Pango markup output option (patch by Dominik Schmidt)
HIGHLIGHT 3.18
28.03.2014
* filenames without extension (ie. makefile) can be mapped in
filetypes.conf (suggested by Sam Craig)
* fixed Rexx highlighting
* added GDB language definition (thanks to A. Aniruddha)
* added the.theme (thanks to Mark Hessling)
HIGHLIGHT 3.17
06.01.2014
* updated astyle code to release 2.04
* added astyle reformatting styles google, pico and lisp
* improved raw string parsing in cs.lang (patch by smdn.jp)
* added regex recognition in js.lang (patch by Troy Sankey)
* added PDF language definition (thanks to Roland Hieber)
HIGHLIGHT 3.16.1
01.11.2013
* fixed debug output in sh.lang (
https://sourceforge.net/p/syntaxhighlight/bugs/9/
[https://sourceforge.net/p/syntaxhighlight/bugs/9/])
HIGHLIGHT 3.16
30.09.2013
* updated astyle code to release 2.03
* added heredoc string literal parsing for Lisp, Perl, PHP, Ruby and
Bash
* revised several language definitions
* added DataDir::searchDataDir for the Perl SWIG bindings (thanks to
David Bremner)
* added SWIG PHP binding (patch by G. Wijaya)
HIGHLIGHT 3.15
27.06.2013
* updated Diluculum code to release 1.0 (support of Lua 5.2)
* patched Diluculum to support Lua 5.1 and 5.2
* added support for Yang (thanks to A. Aniruddha)
* fixed Ruby definition
HIGHLIGHT 3.14
31.04.2013
* added HeaderInjection and FooterInjection variables for syntax
plug-ins
* fixed handling of CRLF files on Linux (suggested by William Bell)
* replaced single data directory by a dynamic config file search; see
README (suggested by Daniel)
* added plug-ins outhtml_parantheses_matcher.lua,
outhtml_keyword_matcher.lua
* CLI: added --list-scripts option
* CLI: marked --data-dir, --list-langs, --list-themes options as
deprecated
* CLI: removed --add-config-dir option
HIGHLIGHT 3.13
05.02.2013
* added support for Crack (thanks to Conrad Steenberg)
* added XML shebang regex (thanks to Ferry Huberts)
* added hints to makefile to deal with Lua 5.1 and LuaJIT system libs
* updated cpp_ref_gtk_gnome.lua plug-in
* updated cpp_ref_cplusplus_com.lua plug-in
* CLI: fixed segfault if --force was applied and unknown files were
parsed (thanks to Jussi Judin)
* GUI: fixed unselected theme after first program start
HIGHLIGHT 3.12
05.10.2012
* CSS class name is omitted in HTML output if class-name option is
set to NONE
* added support for highlighting of string interpolation
* added support for Dart and TypeScript
* fixed SWIG module
* GUI: added Simplified Chinese translation (thanks to Love NoAny)
HIGHLIGHT 3.11 BETA
21.08.2012
* replaced Pattern/Matcher classes by the Boost xpressive library
(now swig example is broken)
* updated Relax NG syntax (thanks to Roger Sperberg)
* added new oxygenated theme (thanks to Roger Sperberg)
* fixed highlight.pro to include correct lua5.1 paths
* GUI: fixed shebang recognition
HIGHLIGHT 3.10 BETA
21.07.2012
* fixed HTML ordered lists to improve copy&paste in browsers
(suggested by Nash)
* changed default output from HTML 4.01 to HTML5
* changed default HTML font family to include the generic monospace
font
* added ODT Flat XML output format (--out-format=odt)
* added fontenc package in LaTeX output (patch by Yimin Li)
* fixed RTF hyperlink output in several plug-ins
* removed ctags option (functionality was replaced by plug-in)
* CLI: added --wrap-no-numbers option (patch by Michael Enßlin)
* GUI: replaced Qt file dialogs by native dialogs
HIGHLIGHT 3.9
01.05.2012
* enhanced the plug-in interface (added Decorator function and
Injections property)
* added several example plug-ins which show how to add keyword links
to online references (e.g. cplusplus.com, perldoc.perl.org,
qtproject_org)
* added ctags plugin (ctags_html_tooltips.lua)
* improved Perl and N3 definitions (thanks to Heiko Jansen)
* CLI: marked --ctags-file option as deprecated
* CLI: added --plug-in-read option to define an input file for
plug-ins
* CLI: fixed file suffix recognition
* GUI: added input field for a plug-in input file
* GUI: fixed initial input tab selection
* GUI: set initial font selection to Courier
HIGHLIGHT 3.8
24.02.2012
* updated astyle code to release 2.02.1
* fixed SWIG perl binding makefile (patch by David Bremner)
* fixed shebang recognition (patch by Georgios M. Zarkadas)
* fixed file suffix recognition (patch by Georgios M. Zarkadas)
* fixed memory leak in astyle’s ASFormatter (patch by MENG Wei)
HIGHLIGHT 3.7
03.01.2012
* added support for Biferno (thanks to Sandro Bilbeisi)
* added support for RPL (thanks to Frank Seidinger)
* added support for Ceylon
* fixed Ruby definition
* HTML font string may contain a list of fonts, which is not enclosed
in quotes (suggested by Sebastiano Poggi)
* GUI: added --portable command line option to save config files in
the current working directory instead of the user directory
(suggested by Royi Avital)
* GUI: fixed some language mappings
HIGHLIGHT 3.6
05.10.2011
* added support for UPC (thanks to Viraj Sinha)
* added support for N3, N-Triples, Turtle, SPARQL (suggested by Heiko
Jansen)
* added Solarized color theme (thanks to Steve Huff)
* fixed OCaml definition (thanks to Kakadu Hafanana)
* fixed camo colour theme
* removed sienna and desertEx colour themes
* CLI: fixed segfault with --print-style option
* GUI: added "Dock floating panels" checkbox in the main menu
HIGHLIGHT 3.5
02.06.2011
* updated astyle code to release 2.02
* fixed --force option (thanks to Stefan Bühler)
HIGHLIGHT 3.4
31.03.2011
* added support for ABC, Algol, AS/400 CL, BCPL, Limbo, Gambas,
JavaFX, RPG, Transact-SQL, PL/Perl, PL/Tcl, PL/Python, Charmm
* fixed web plugins (Serendipity, DokuWiki, Wordpress)
* fixed BBCode closing tag order
* GUI: Updated Czech translation (thanks to Pavel Fric)
HIGHLIGHT 3.3
28.12.2010
* updated astyle code to release 2.01
* fixed overwriting of files with the same name in recursive batch
mode (thanks to Ramanathan U.)
* added DataDir class to SWIG interface (patch by David Bremner)
* added Andes theme (thanks to Roger Sperberg)
* enabled deprecated @highlight pass-through (suggested by David
Bremner)
* dropped oceandeep theme
* updated documentation
HIGHLIGHT 3.2
08.11.2010
* added plug-in function AddKeyword (suggested by Michael Serrano)
* language definitions are cached instead of being reloaded if input
syntax changes
* added keyword group ID parameter to the plug-in function
OnStateChange
* added plug-in script bash_functions.lua
* added theme description in output style’s comment
* added enum and union keywords in c.lang (thanks to Thiago)
* added dl linking flag in Makefile to fix Debian build error (thanks
to Michael Serrano)
* added NDEBUG flag in makefile to disable asserts
* GUI: Added Czech translation (thanks to Pavel Fric)
HIGHLIGHT 3.1
24.08.2010
* updated Diluculum to version 0.5.3
* fixed README
* fixed conversion without highlighting (--syntax txt)
* fixed msxml definition (thanks to Andrei Rosca)
* added edit-flashdevelop theme (thanks to Andrei Rosca)
* CLI: fixed minor bugs
HIGHLIGHT 3.1 BETA3
12.08.2010
* added --config-file option
* CLI: fixed minor bugs
* GUI: renamed output specific options tab
* GUI: remember state of the dock panel
HIGHLIGHT 3.1 BETA2
08.07.2010
* moved plugin scripts from examples to new plugins directory
* fixed web_plugin path in makefile (thanks to Jochen Schmitt)
* fixed SWIG interface and example scripts
* improved converted VIM colour themes
* improved several language definitions (Fortran77, Zonnon, Basic,
Verilog, Squirrel, R)
* added new plugins (java_library.lua, theme_invert.lua)
* GUI: added plug-in description label
* GUI: moved setting controls into a dock panel
HIGHLIGHT 3.1 BETA1
21.06.2010
* enabled loading of multiple plugins
* added MXML language definition (suggested by Neal Delfeld)
* fixed HTML, XML, CSS, Actionscript and JavaScript definitions
* converted 60 popular VIM colour themes
HIGHLIGHT 3.0 BETA
03.06.2010
* language definitions, themes, filetypes.conf were converted to Lua
scripts (try examples/*2to3.py to convert old files)
* added --plug-in option to enable user scripts
* renamed *.style files to *.theme
* moved include files from src/core to src/include
* moved examples/plugins to examples/web_plugins
* renamed --linenumbers to --line-numbers
* renamed several language definitions and themes
* fixed several string delimiter issues (Ruby, Lua)
* changed default theme for xterm256 output to edit-vim-dark
* changed short options: -O is --out-format, -d is --out-dir, -T is
--doc-title
* disabled --mark-line feature
* disabled --add-data-dir feature
* disabled separate output format options (use --out-format instead)
* disabled XML output (use SVG or XHTML)
* New dependencies: Lua5.1-devel, Boost Headers (Bind)
HIGHLIGHT 2.16
29-03-2010
* updated astyle code to release 1.24
* added indentation styles 1tbs and horstmann
* added --no-trailing-nl switch (suggested by Adiel Mittmann)
* added Modula2 definition (thanks to Benjamin Kowarsch)
* added EBNF definition (thanks to Mate Ory)
* added ABNF, AutoHotKey, BBCode and Clean language definitions
* updated C definition to support C0x syntax
* added StartupNotify switch in desktop file (patch by Jochen
Schmitt)
HIGHLIGHT 2.15
25-02-2010
* improved HTML nested language patterns (thanks to Simone)
* improved Rexx and PL1 definitions (thanks to Robert Prins)
* added support for NXC and NBC
* GUI: added copy and paste support (thanks to Torsten Flammiger)
* GUI: fixed preview of UTF-8 input
HIGHLIGHT 2.14
04-01-2010
* fixed Rexx output (thanks to Marc Hessling)
* added support for Go and Pure
* added support for BNF (thanks to Julien Fontanet)
* updated Logtalk definition (thanks to Paulo Moura)
* updated THE theme (thanks to Marc Hessling)
* CLI: --quiet switch supresses "Unknown source file extension" error
(suggested by Nathan Gray)
HIGHLIGHT 2.13
02-10-2009
* fixed SVG output (thanks to Xico)
* GUI: added new icon
HIGHLIGHT 2.12
07-09-2009
* fixed bug with $INCLUDE statement
* fixed ctags file parsing
* added nested language recognition within a source file (suggested
by Pavel Striz)
* added $NESTED statement to language definitions (pas, html, tex)
* added support for F# (fs.lang)
* added support for haXe (hx.lang)
* improved various language definitions
* revised documentation
* LIB: added version to shared lib output name
* CLI: added options --start-nested and --print-style
HIGHLIGHT 2.11
23-07-2009
* added BBCode output option (--bbcode, suggested by Qui Peccavit)
* added new --delim-cr option to cope with MacOS 9 files (suggested
by Steven Haddock)
* added shared lib target (make lib-shared, suggested by Dario
Teixeira)
* list of installed languages (--list-langs) was enhanced to include
mapped file extensions (suggested by Martin Kammerlander)
* improved many colour themes using Agave (agave.sf.net)
HIGHLIGHT 2.10
24-06-2009
* fixed CR parsing bug on MacOS (thanks to Shiro Wilde)
* fixed SWIG makefile (thanks to David Bremner)
* license changed from GPLv2 to GPLv3 (incl. included libs)
* updated Artistic Style lib to version 1.23
* new indentation schemes: stroustrup, whitesmith, banner
* removed indentSchemes and helpmsg directories
* removed README_INDENT
* replaced ide-devcpp theme by a new jedit theme
* added support for Interactive Data Language (idlang, thanks to
Roberto Mendoza)
* added support for Rebol, Oz, Mercury, Zonnon, ATS (Applied Type
System), CHILL, NetRexx, Inno Setup and INTERLIS
* added pp, rjs, jnlp, groovy, gnad, es, sblc, ooc, gst, sq
extensions to filetypes.conf
* improved Prolog, Pike, Oberon, Nice, Java, Lisp, Lua, Haskell, C#
and SML definitions
* improved spec.lang for RPM (thanks to Luoyi Ly)
* CLI: option --help-lang is deprecated
* API: dropped setSpecialOptions(), renamed initializing methods to
init*
HIGHLIGHT 2.9
30-April-2009
* added more customized boxes for the LaTeX --pretty-symbols switch
(thanks to Romain Francois)
* GUI: fixed makefile to pass costum paths to the Qt project makefile
(thanks to Joerg Germeroth)
* GUI: reduced window height (thanks to Fidel Barrera)
* GUI: added Spanish translation (thanks to Fidel Barrera)
* GUI: added drag and drop for input files
HIGHLIGHT 2.8
30-March-2009
* added --pretty-symbols option to improve LaTeX output quality of
tilde and braces (thanks to Romain Francois)
* omitted warning message if --syntax parameter is contained in the
--skip list (thanks to Bob Smith)
* included language descriptions in --list-langs output
* dropped dependency of --replace-quotes and --fragment options
* enhanced Python SWIG example (testmod.py)
* added qmake language definition
* fixed SWIG scripts (thanks to David Bremner)
* fixed gcc 4.4 compilation (patch by Jochen Schmitt)
* dropped core/html32generator.*
* dropped src/gui (wxWidgets based interface)
* GUI: rewrote the user interface using Qt
HIGHLIGHT 2.7
12-January-2009
* changed versioning scheme to major.minor
* fixed infinite loop in the W32 build when outputting LaTeX/TeX as
UTF-8 (thanks to Christophe Bal)
* fixed VHDL and Scilab definitions (thanks to Frederik Teichert)
* fixed XML definition (thanks to Edin)
* fixed -r switch (thanks to Frederik Teichert)
* fixed default number recognition regex
* added Clojure language definition (thanks to Pierre Larochelle)
* added wrapping arrow in LaTeX/HTML output if --wrap/--wrap-simple
is set (suggested by Frederik Teichert)
* updated ide-msvcpp.style to match current Visual Studio appearance
(suggested by Pieter Kruger)
* added make targets "lib" and "cli"
* organized sources in subdirectories (core, cli, gui) and adjusted
makefiles
HIGHLIGHT 2.6-14
21-October-2008
* added --ctags-file option to add tooltips with meta information in
HTML output
* added options to improve compatibility with GNU source-highlight:
--doc, --no-doc, --tab, --css, --output-dir, --failsafe,
--out-format, --src-lang, --line-number, --line-number-ref
* fixed ADA95, C#, Eiffel, Fortran, TCL, Bash definitions
* added Vala language definition
* added several file suffixes to filetypes.conf
* fixed gcc 4.3 compilation issues (patch by Detlef Reichelt)
* fixed race condition in makefile (patch by Jochen Schmitt)
* added exit condition if input path matches output path (suggested
by James Haefner)
* GUI: added ctags file selection options (only wx2.9 version)
HIGHLIGHT 2.6-13
29-September-2008
* added --skip option to ignore unknown file types (suggested by Bob
Smith)
* added Haskell LHS language definition (suggested by Sebastian
Roeder)
* added regex description for Perl and Ruby definitions
* improved Bison, Paradox, SML, Snobol, Verilog definitions
* renamed snobol.lang to sno.lang
* updated Artistic Style lib to version 1.22
* replaced dirstream lib by a faster file globbing method (invoked
with --batch-recursive)
* support for USE_FN_MATCH compile flag was dropped
* Makefile generates libhighlight.a (suggested by Adiel Mittmann)
* Updated SWIG makefile and documentation
HIGHLIGHT 2.6-12
04-August-2008
* added RTF character stylesheet option (suggested by Klaus Nordby)
* fixed filetypes.conf path in RPM specfile (thanks to Nikita
Borodikhin)
HIGHLIGHT 2.6-11
09-July-2008
* added SVG output option (--svg)
* reassigned -G short option from --class-name to --svg
* fixed various makefile issues (patches by Samuli Suominen)
* added highlight.desktop file (suggested by Samuli Suominen)
* GUI: added SVG and font selection options (only wx2.9 version)
* GUI: reduced window height by hiding format specific input controls
* updated highlight.spec to compile wx2.9 GUI
HIGHLIGHT 2.6-10
07-May-2008
* fixed XHTML output (thanks to Allen McPherson)
* added Logtalk definition (thanks to Paulo Moura)
* added support for Eiffel ecf project files (thanks to Jérémie
Blaser)
* various code improvements (patch by Antonio Diaz Diaz)
HIGHLIGHT 2.6-9
26-March-2008
* fixed --validate-input option with input from stdin
* fixed missing DESTDIR prefix in makefile (thanks to Bob Smith)
* fixed handling of several keyword regexes using the same group name
* added support for Lilypond
* added support for Arc (thanks to Pierre Larochelle)
* added support for embedded output instructions (see README)
* added examples/highlight_pipe.* (PHP, Perl and Python interface
scripts)
* replaced getopt_long by argparser class
* language definition parameters $kw_list and $kw_re are merged to
$keywords
* GUI: fixed preview of UTF-8 files (thanks to Victor Woo)
* GUI: added all-gui-wx29 target in Makefile to compile with
wxWidgets 2.9
HIGHLIGHT 2.6-8
01-February-2008
* fixed highlighting issue with nested comments, if delimiters are
distinct
* fixed XML and CSS highlighting
* fixed C escape sequence parsing of octal and hex sequences
* language definition tag tag_delim was dropped
* outdated file README_ES was dropped
* gcc4.3 compilation support was added (patch by Jochen Schmitt)
* font-family parameter is enclosed in apostrophes in HTML output
* added --kw-case=capitalize option
* added --enclose-pre option
* added file README_LANGLIST
* improved several language definitions
* GUI: decreased window height
* GUI: preview window is scrolled to last view position after a
content update
* GUI: windows saves and restores previous position and size
HIGHLIGHT 2.6-7
04-January-2008
* support for RTF background colour was added
* regex() in language definitions expression allows optional
definition of capturing group number
* added --add-config-dir option to define config search path
(suggested by Nathaniel Gray)
* allowed invocation of makefile with CFLAGS and LDFLAGS as
parameters (patch by Nathaniel Gray)
* fixed OCaml definition (thanks to Nathaniel Gray)
* fixed AutoIt definition
* added case insensitive file suffix matching (thanks to Stefan
Boumans)
* GUI: added RTF mimetype to clipboard data (thanks to Stefan
Boumans)
* GUI: fixed preview update after tab width change (thanks to Stefan
Boumans)
HIGHLIGHT 2.6-6
10-December-2007
* added Smalltalk definition and moe theme (thanks to Joerg Walter)
* added support for diff and patch files
* GUI: added clipboard button (suggested by Klaus Schueller and
Stefan Boumans)
* fixed Matlab definition (thanks to Andreas Boehler)
* fixed print.style (thanks to Albert Neu)
* fixed output of lines with CR/LF (bug of 2.6.5)
* fixed php and css definitions
* updated ActionScript definition (thanks to Samuel Toulouse)
* updated sql definition (thanks to Stefan Boumans)
* dropped dull theme
HIGHLIGHT 2.6-5
02-October-2007
* fixed compilation warning on 64 Bit OS (thanks to Uwe Sassenberg)
* allowed embedded comments in Pascal definition (thanks to Helmut
Giritzer)
* fixed memory leak
* improved performance
* added serendipity plugin in examples/plugins
* added support for diff (and patch) files (suggested by Dan
Christensen)
* adjusted SWIG makefiles and sample scripts
* improved definitions of Bash, Ruby, Maya, Tcl, Agda and Haskell
HIGHLIGHT 2.6-4
13-September-2007
* fixed TeX and LaTeX output (space after strings were omitted,
thanks to Andre Schade)
* fixed Perl language definition (thanks to Jens Kadenbach)
* fixed gui.cpp compilation with wxWigets unicode build (thanks to
Dennis Veatch)
* updated R language definition (thanks to Yihui Xie)
HIGHLIGHT 2.6-3
06-September-2007
* added --inline-css option to output CSS within each tag element
* renamed previewgenerator.* files to html32generator.*
* GUI: changed GUI configuration format (using wx config classes)
* GUI: added inline CSS option
* binaries are no longer stripped by default (src/makefile)
* added notes to makefiles and INSTALL concerning static linking
(thanks to Ken Poole)
* improved MacOS X compatibility (thanks to Benjamin Kowarsch)
* added ide-xcode theme (thanks to Benjamin Kowarsch)
* README files were updated
* updated plugin scripts to use the new --inline-css option
HIGHLIGHT 2.6-2
19-July-2007
* dropped deprecated option --format-style
* added --html option for plausibility (HTML output is still default)
* reassigned -H option to --html
* added option --kw-case to output keywords in upper case or lower
case if the language is not case sensitive
* added option --mark-line to highlight several code lines in HTML
output
* added mark-line parameter to colour themes, renamed kw_group
parameter to kw-group
* added option --validate-input to test if input file is text (if the
input is considered binary, no parsing takes place)
* updated astyle code to release 1.21
* improved PHP4 compatibility of the wordpress plugin (thanks to
Thomas Keller)
* added support for Open Object Rexx (oorexx.lang)
* updated documentation
HIGHLIGHT 2.6-1
21-May-2007
* support of HTML colour notation in theme files (ie #12aa00)
* fixed bad formatting of single line comment and directive
substrings after line wrapping took place (multiline comments may
still be screwed up)
* enabled "highlight -c stdout" to print style definition to stdout
* moved highlight/highlight subdir to highlight/src
* removed examples/cgi
* added examples/plugins
* moved gui file directories ext and i18n to DATADIR/gui_files/
* removed themes: berries-light, whatis
* added themes: lucretia, orion
* fixed SWIG interface files and scripts
* fixed makefile and filetypes.conf (thanks to Axel Dyks)
* improved ini.lang (thanks to Axel Dyks)
* GUI: added Brazilian Portuguese translation (thanks to Yorick)
HIGHLIGHT 2.6-0
05-May-2007
* fixed bug with line number count starting at zero by default
* modified makefile to support PREFIX and DESTDIR variables (patch by
Jeremy Bopp)
HIGHLIGHT 2.5-6 BETA
20-April-2007
* added new option --class-name (suggested by John Pye)
* fixed XML output (thanks to Hilmar Bunjes)
* updated README files
HIGHLIGHT 2.5-5 BETA
05-April-2007
* renamed --line-number-width to --line-number-length
* added new option --line-length
* fixed compilation error with gcc 4.3 (thanks to Martin Michlmayr)
* added script shebang recognition with stdin input (patch by Alan
Briolat)
* added support for Boo scripting language
* fixed translated help texts
* added *.p, *.i, *.w as Progress file suffixes (thanks to Mark
Reeves)
HIGHLIGHT 2.5-4 BETA
07-March-2007
* improved display quality of preview font (Courier New)
* updated astyle to version 1.20.2
HIGHLIGHT 2.5-3 BETA
03-March-2007
* fixed bug in GUI preview update
* reduced GUI height
* added support for Linden script (Second Life)
HIGHLIGHT 2.5-2 BETA
28-February-2007
* added prefix and prefix_bin variables to makefile (suggested by
Thomas Link)
* removed LaTeX page dimension directives (suggested by Thomas Link)
* improved several color themes
* removed berries-dark, added seashell theme
HIGHLIGHT 2.5-1 BETA
29-January-2007
* fixed GTK GUI language file encoding to UTF 8
* improved Ruby language definition
* added gui subsection in the RPM specfile
HIGHLIGHT 2.5-0 BETA
17-January-2007
* added Miranda language definition (thanks to Peter Bartke)
* added Powershell (Monad) language definition
* fixed ignored conf_dir parameter in makefiles (thanks to Bob Smith)
* included source files and additional make rules to compile a
wxWidgets GUI (binary: highlight-gui; make all-gui; needs wxWidgets
2.6+)
HIGHLIGHT 2.4-8
19-October-2006
* added xterm 256 color output (-M, --xterm256) (thanks to Wolfgang
Frisch)
* prints warning if output format ignores the theme background colour
* fixed Java and Python language definitions
* revised README files
HIGHLIGHT 2.4-7
10-June-2006
* fixed segfault in symbol parsing procedure (thanks to Veit
Wedtstein)
* updated Lua and Lisp definitions
* added AutoIt, NSIS, Graphviz and Qore definitions
* updated SWIG sample scripts
HIGHLIGHT 2.4-6
02-May-2006
* fixed segfault when outputting ANSI (thanks to Philip Jenvey)
HIGHLIGHT 2.4-5
20-March-2006
* fixed bug which caused segfault on x86_64 (thanks to Eric Hopper)
* fixed wrong enumeration start when outputting text w/o highlighting
(thanks to Russell Yanofsky)
* added anchor-prefix option (suggested by Peter Biechele)
* added anchor-filename option (suggested by Mazy)
* added $description entry to language file format
* added D language file
* updated regex classes to version 1.05.02
HIGHLIGHT 2.4-4
19-February-2006
* added print-config option
* added scilab definition (thanks to Gunnar Lindholm)
* dropped support for XSL-FO (use XML instead for further processing)
* dropped deprecated options (css-infile, css-outfile, include-css)
* fixed line numbering (starting at 1, printed if syntax option is
txt) (thanks to Russell Yanofsky)
* renamed extensions.conf to filetypes.conf
* moved content of scriptre.conf into filetypes.conf
* renamed option help-int to help-lang
* renamed option format-style to reformat
* updated regex classes to version 1.04
* code cleanup
* updated documentation
HIGHLIGHT 2.4-3
30-October-2005
* added RTF page-size option (suggested by David Strip)
* fixed bug in RTF output, which prevented italic and bold output
(patch by Jeremy Weinberger)
* renamed colour theme parameter KW_CLASS to KW_GROUP
HIGHLIGHT 2.4-2
25-September-2005
* added line-number-start switch (suggested by Roie Black)
* added babel switch to make output compatible with LaTeX Babel
package (disables Babel shorthands)
* fixed ampl.lang (thanks to David Strip)
* fixed error message if language definition is unknown
* added Nemerle definition (n.lang)
* added SAS definition (thanks to Alexandre Detiste)
* added TTCN3 definition (thanks to Peter Biechele)
* added tcsh.lang (thanks to Igor Furlan)
* Unix package: moved *.conf to /etc/highlight/ (suggested by Jochen
Schmitt)
HIGHLIGHT 2.4-1
23-July-2005
* dropped include-pkg option
* added CSS style for list items (--ordered-list)
* fixed default number regex
* fixed VHDL event recognition
* added missing KWD keyword style to several colour themes
* added $STRING_UNEQUAL parameter for language definitions
* added string CodeGenerator::generateString(const string &)
* improved Ruby and Octave highlighting
* added SWIG interface in examples/swig
* removed examples/python-binding
* removed themes: neon2 fluke greyish ide-jbuilder4 ide-jcreator2
ide-synedit neon2 rand02 ron whitenblue website
HIGHLIGHT 2.3-6 BETA
02-July-2005
* fixed crash in language definition loader
* saved helpmsg/cs.help as iso-8859-2
* added include-pkg option to define a list of LaTeX packages which
should be included
* fixed output of UTF-8 characters (replaced isspace by iswspace)
HIGHLIGHT 2.3-5 BETA
26-June-2005
* fixed LaTeX and TeX output
* added support for UTF-8 LaTeX output (suggested by Sungmin Cho)
* dropped automatic conversion of ASCII characters > 127, package
latin1 is included instead
HIGHLIGHT 2.3-4 BETA
17-June-2005
* added font and fontsize options (submitted by Yves Bailly)
* added line-number-width (suggested by Yves Bailly)
* code cleanup
HIGHLIGHT 2.3-3 BETA
16-May-2005
* added kwd keyword class to most of the colour themes
* added regular expressions to some language definitions
HIGHLIGHT 2.3-2 BETA
04-May-2005
* improved number regex
* added --ordered-list option (suggested by Dominic Lchinger)
* fixed tag parsing (broken in 2.3-1)
* updated docs
* added Brazilian help text (thanks to Adao Raul)
* added Czech help text
HIGHLIGHT 2.3-1 BETA
23-April-2005
* added support for regular expressions in language definitions
HIGHLIGHT 2.2-10
25-March-2005
* added support for PowerPC Assembler (thanks to Juergen Frank)
* added support for AppleScript (thanks to Andreas Amann)
* added encoding option to set proper output encoding type in XML and
HTML output formats (default encoding: ISO-8895-1) Note: encoding
name has to match input file encoding
* style definitions are generated if only --fragment and
--style-outpath options are set
* added simple recognition of scripts without file extension (Bash,
Perl, AWK, Python)
* added config file scriptre.conf to configure script recognition
* moved langDefs/extensions.conf to package base directory
* added --force option to generate output if language type is unknown
* fixed parsing of escape sequences outside of strings in Perl (last
six points suggested by Andreas Amann)
* fixed output of CR line terminators
* added classes pre.hl and body.hl in CSS definitions
HIGHLIGHT 2.2-9
27-February-2005
* fixed --output option
* fixed line number indentation in TeX and LaTeX output
* fixed compilation error for Darwin (OSX) (thanks to Plumber)
* fixed LaTeX compilation warnings (thanks to Tyranix)
* fixed xml default file suffix
* closing style tags are no longer printed in the following output
line (suggested by Yves Bailly)
* fixed rb.lang (Ruby is case sensitive)
* external style definitions and inclusion of user defined styles
were added to LaTeX and TeX output
* installation directory configuration is improved in the makefiles
(all suggested by Thomas Link)
* new options: style-outfile, style-infile, include-style
* deprecated options: css-outfile, css-infile, include-css
HIGHLIGHT 2.2-8
20-February-2005
* added XML output (suggested by Matteo Bertini)
* added support for MS SQL (thanks to Magnus ?erg)
* added support for Pyrex (thanks to Matteo Bertini)
* added support for Hecl, Luban and Qu
HIGHLIGHT 2.2-7
12-January-2005
* fixed compilation error on AMD64/gcc4.0 (thanks to Andreas Jochens)
* fixed tab replacement (thanks to Adrian Bader)
* fixed parsing of keywords with special characters as prefix
($ALLOWEDCHARS) (thanks to Magnus ?erg)
* single spaces in (La)TeX are no longer preceeded by backslash
HIGHLIGHT 2.2-6
03-December-2004
* fixed compilation error with getopt and Solaris 5.8 (thanks to
Philippe Cornu and Jean-Emmanuel Reynaud)
* enabled css-infile option when include-css is set
* improved IO and Perl language definitions
* updated dirstram classes to release 0.4
* W32 port: fixed installation path determination
HIGHLIGHT 2.2-5
31-October-2004
* fixed some compiler warnings in various Debian builds (thanks to
Ayman Negm)
* fixed indentation error in LaTeX output and output of "--" in bold
font (thanks to Michael Suess)
* added background colour attribute of body element to the CSS output
to improve compatibility with old browsers (NS Communicator 4.8)
(thanks to Wojciech Stryjewski)
* in CSS output, user defined CSS definitions are now included after
highlight style definitions to make modifications easier
* highlight returns EXIT_FAILURE after every IO failure
* updated Spanish manual and help message (thanks to David Villa)
HIGHLIGHT 2.2-4
26-September-2004
* changed ANSI output colours to vim style (suggested by David Villa)
* added new acid indentation scheme and acid colour theme (thanks to
Alexandre "AciD" Bonneau)
* highlight returns 1 (EXIT_FAILURE) if file operations failed
(suggested by David Villa)
* fixed bug in LaTeX output: [ and * characters after a linebreak
(\\) caused latex compilation to stop (thanks to Christian
Schilling)
* improved error reports
HIGHLIGHT 2.2-3
10-September-2004
* applied patch to suppress compiler warnings on several platforms
(thanks to weasel@debian.org [weasel@debian.org])
* renamed the /utils directory to /examples, which moved to
/usr/share/doc/highlight/ (suggested by Ayman Negm)
* if --output is defined and output format is (X)HTML, the CSS file
is stored in the directory given by --output (suggested by Vicky
Brown)
* added spanish translations: README_ES and es.help (thanks to David
Villa)
* added support for SNMPv1 and SNMPv2 files: mib.lang (thanks to
Roman Surma)
* fixed highlighting of escape sequences in Pascal (thanks to
Grzegorz Tworek)
* added Pascal multi line comment delimiters: (*, *)
* added a third keyword style (kwc) to all themes
* added a third keyword group: ada.lang, gawk.lang, c.lang,
java.lang, pas.lang
* fixed some language definition with old $keyword entries
HIGHLIGHT 2.2-2
20-July-2004
* removed $STRINGDELIMITERPAIR parameter
* internal changes
HIGHLIGHT 2.2-1
11-July-2004
* added content-type (iso-8859-1) to HTML output
* added possibility to define custom keyword groups (suggested by
Daniel Bonniot)
* reformatting and indentation schemes are customizable, config files
are located in /indentSchemes (suggested by Petri Heiramo)
* added new output format: ANSI terminal sequences (--ansi)
(suggested by David Villa) assigned -A to --ansi, -g to
--fop-compatible
* added $SL-COMMENT parameter to colour themes (enables seperate
highlighting of single and multi line comments)
* added option to fill linenumbers with zeroes
* improved quality of colour themes
* changed names of following command line options: deletetabs →
replace-tabs listthemes → list-themes listlangs → list-langs
includecss → include-css printindex → print-index
* dropped support for C# member attributes (was a nasty workaround)
* dropped support for Forth
* removed unnecessary --batch (-b) option
* removed utils/cgi/perl/README_CGI
* fixed raw string highlighting bug: r"""\n""" in Python is parsed
correctly
* fixed some old parameters in language definitions
* added source directory names to generated index file (-C)
HIGHLIGHT 2.0-25
20-June-2004
* fixed quote replacement in LaTeX (\dq → \dq{}) (thanks to Adrian
Bader)
* fixed crash if $HOME is not defined (thanks to Kostas Maistelis)
* added compile flag CONFIG_FILE_PATH to define a custom path to the
config file
* added local copy of getopt, which is compiled if the system does
not provide it (removed win32cmdline.*)
* fixed VHDL event parsing
* removed some poor quality colour themes and improved some others
* added ide-eclipse style
HIGHLIGHT 2.0-24
10-June-2004
* improved VHDL support (thanks to Aaron D. Marasco)
* added Coldfusion MX definition (thanks to Paul Connell)
* added $REFORMATTING option to language definitions
* added a Python binding in utils/python-binding
* some code clean up
HIGHLIGHT 2.0-23
16-May-2004
* fixed ABAP definition (thanks to Kevin Barter)
* fixed Python definition
* fixed parsing of methods applied to numerical literals (possible in
Ruby)
* fixed indentation of line numbers in LaTeX (thanks to Michael
Berndt)
* reduced LaTeX output file size
* improved layout of LaTeX document
* applied some patches to Artistic Style code (see
astyle.sourceforge.net)
* added updated phpwiki-plugin utils/cgi/php/SyntaxHighlighter.php
(thanks to Reini Urban)
HIGHLIGHT 2.0-22
19-April-2004
* improved Fortran 77 parsing (thanks to Geraldo Veiga), moved
parsing information to f77.lang and f90.lang
* added highlighting of float literals like .5
* added new language definitions: ABAP/4, ARM, Bison, Dylan,
FAME,Informix, Lisp, Octave, R, Scala, Snobol, Verilog
* removed -d option
* added -P option to display a progress bar in batch mode
HIGHLIGHT 2.0-21
23-March-2004
* added option (-r) to replace " by \dq in LaTeX (thanks to Nikolai
Mikuszeit)
* added option (-E) to define another search path, where language
definitions and themes may be stored (suggested by a Debian package
tester)
* fixed bug which disabled HTML anchors (thanks to Richard Beauchamp)
* fixed wrong current working directory detection in W32 code (thanks
to Ian Oliver)
* improved fragmented TeX output
* fixed man page
* changed path of config file to ~/.highlightrc (Unix)
* added options to config file
* changed parameter prefix from "/" to the more convenient "$" in
configuration files
* changed "typesmods" parameter in language definitions to "types"
* improved some colour themes
* added $INCLUDE statement in language definitions to include content
of other files
HIGHLIGHT 2.0-20
09-March-2004
* added new parser options: TYPEDELIMITERS and KEYWORDDELIMITERS to
enable highlighting of variables like ${var}
* changed RTF font to Courier New
* added symbol highlighting (last two suggested by Anssi Lehtinen)
* added new colour themes (darkblue, zellner, ron, peachpuff, pablo,
nedit)
* added a new directive to add a custom installation directory at
compile time (CUSTOM_INSTALL_DIR in highlight/makefile)
* added Doxygen documentation
* updated spec.lang, sh.lang and make.lang
* fixed some case insensitive language files
* replaced make by ${MAKE} in makefile (suggested by Thomas Dettbarn)
* removed utils/frontend (see homepage for highlight-gui package)
* moved German help to README_DE
* moved documentation files to /usr/share/doc/highlight (suggested by
Ayman Negm)
HIGHLIGHT 2.0-19
21-February-2004
* improved whitespace indentation in TeX and LaTeX
* fixed output of +, -, =, <, > in TeX
* fixed output of blank lines in TeX (all suggested by Milan Straka)
* updated Java language definition to 1.5
* added support for BibTex, Erlang, Icon, Lisp, Lotos, Maple,
Objectice C, Prolog, PostScript and RPM Spec
HIGHLIGHT 2.0-18
08-February-2004
* changed hskip unit in LaTeX output vom mm to em
* fixed different font width of spaces in TeX output (thanks to Milan
Straka)
* added macros in TeX output to reduce file size
* fixed bug which made first line number disappear (introduced in
2.0-17)
* declared XSL-FO output as experimental, added a switch to provide
modified output for both Apache FOP and xmlto/xsltproc
HIGHLIGHT 2.0-17
01-February-2004
* enabled multiple input file names and real batch processing
wildcards
* improved debugging output
* added new PHP Wiki plugin (thanks to Alec Thomas)
* fixed newlines at the beginning and the ending of HTML output
* fixed Java and Nice language definitions (thanks to Daniel Bonniot)
* general cleanup (code, makefiles, docs)
HIGHLIGHT 2.0-16
12-January-2004
* added new options to wrap long lines (suggested by Johannes Wei�)
* added new colour themes: vim, vim-dark and ide-codewarrior
* improved Java, Nice and C parsing
HIGHLIGHT 2.0-15
04-January-2004
* improved XSL-FO output (thanks to Daniel Bonniot)
* reduced LaTeX output file size
HIGHLIGHT 2.0-14
21-December-2003
* added XSL-FO output format (suggested by Daniel Bonniot)
* fixed segfault when theme file was not found
* improved makefiles
* ported code to Solaris (thanks to Ade Fewings)
HIGHLIGHT 2.0-13
25-November-2003
* fixed parsing of XML comments
* fixed conversion of umlauts and accents
* improved parsing of numbers (suffixes like 30L, 4.5f; exponents)
* '@' in HTML output is replaced by HTML entity to confuse spam
robots
* fixed Avenue, Perl, Progress and Clipper language definitions
* added support for Action Script, Objective Caml, Standard ML,
Felix, Frink, IO, Nasal, MaxScript, Oberon, Object Script
* replaced AutoConf build process by customizable makefile (suggested
by John Skaller)
HIGHLIGHT 2.0-12
09-November-2003
* fixed parsing of subtractions (i.e: varName-1)
* added support for SuperX++ (thanks to Kimanzi Mati)
* added Relax NG Compact language definition (thanks to Christian
Siefkes)
HIGHLIGHT 2.0-11
26-October-2003
* fixed LaTeX and Squirrel language definitions (thanks to Stephan
Bhme and Alberto Dechemelis)
* fixed number parsing (allow 'a'-'f' in Hex numbers only)
* replaced double quotes by single quotes in fragmented LaTeX output
* added a new subdirectory "utils/", moved "cgi/" there
* added a new Python Qt-Frontend
* added a PHP module (thanks to Philip Van Hoof)
* added Nice language definition
HIGHLIGHT 2.0-10
21-September-2003
* changed LaTeX font settings to \tt and \it
* improved fragmented LaTeX output
* fixed LaTeX language definition
* fixed multi line compiler directive parsing with strings
* added new Squirrel ans JSP language definitions
HIGHLIGHT 2.0-9
14-September-2003
* trailing whitespace from input is ignored
* modified LaTeX fragmented output to simplify inclusion of code in
existing documents
* added support for multiple line compiler directives
* added new THE style (thanks to Mark Hessling)
HIGHLIGHT 2.0-8 HOT SUMMER BUILD
15-August-2003
* fixed bug which prevented highlighting of escape characters within
strings which start a new line
* fixed XHTML line anchors attribute to "id"
* added background colour support for plain TeX
* improved recognition of strings with different open/close
delimiters
* added a reasonable 4th support
* internal changes to improve speed
* changed XHTML encoding from utf-8 to iso-8859-1 and xhtml version
to 1.1
* removed comment in XHTML header to enable highlighting when style
definition is included in output
* added recognition of hex, octal and unicode escape sequences (\123,
\xff)
* improved Python and Tcl support
HIGHLIGHT 2.0-7
04-August-2003
* fixed parsing of C# simplified strings (thanks to Cerda)
* added support for C# member attributes (thanks to Gauthier)
* added --listlangs option (suggested by Mark Hessling)
* improved plausibility of --outdir option (thanks to Otto Barnes II)
HIGHLIGHT 2.0-6
27-July-2003
* fixed bug in HTML and XHTML output, which caused insertion of too
many "</span>" tags (thanks to Mark Hessling)
HIGHLIGHT 2.0-5
20-July-2003
* improved LaTeX, TeX and RTF colour output
* fixed TeX output formatting errors
* fixed LaTeX line number output (thanks to Johannes Nolte)
* improved code portability (thanks to Gauthier)
* added french help (thanks to Gauthier)
HIGHLIGHT 2.0-4
01-July-2003
* improved Ada 95 output (thanks to Frank Piron)
* added HTML index file option
* simplified API
* added some language definitions
HIGHLIGHT 2.0-2
28-May-2003
* fixed bug causing lowercase output of case insensitive languages
(thanks to David and Mark Hessling)
* added new Matlab colour theme (thanks to David)
* improved Rexx language definition (thanks to Mark Hessling)
* added plain text language definition
HIGHLIGHT 2.0
01-May-2003
* fixed memory leak in DataDir::searchDataDir()
* fixed configuration file parsing
* added data-dir option
* added batch-recursive option
* changed CmdLineoptions.cpp to compile under Windows
HIGHLIGHT 2.0B-9
27-April-2003
* improved integer literal and C++ multiline comment parsing (both
suggested by Benjamin Kaufmann)
* improved directive line parsing
HIGHLIGHT 2.0B-8
20-April-2003
* added Pike language definition (thanks to Olivier Girondel)
* added support for Forth (suggested by Hans Bezemer)
* fixed bugs in language definition loader method
* fixed segfault
HIGHLIGHT 2.0B-7
07-April-2003
* added Artistic Style indentation and reformatting
HIGHLIGHT 2.0B-6
31-March-2003
* fixed fortran code parsing ( thanks to Henning Weber)
* improved performance
HIGHLIGHT 2.0B-5
* fixed theme files which had DOS line terminators
* presets reader method was fixed
* changed RTF output to Courier and 20 pt font size
* help screen fixed
HIGHLIGHT 2.0B-4
19-March-2003
* added css-infile and css-outfile options to make generation of
customizable css definitons clearer (suggested by Markus Werle)
* fixed bug reading fontsize parameter of themes
HIGHLIGHT 2.0B-3
16-March-2003
* improved RTF output
HIGHLIGHT 2.0B-2
09-March-2003
* improved RTF output (added bold/italics/underline attributes)
* improved TeX output (added theme colors [thanks to Markus Henning
for TeX-URL], bold and italics)
* added a decription how to use the highlight parser in own
applications
HIGHLIGHT 2.0B
05-March-2003
* memory leak was fixed
* the parser was rewritten to add more flexibility and stability
* added ability to highlight code with tags (XML, HTML…​)
* added ability to highlight strings with prefixes (variableprefix,
keywordprefix)
* different source file extensions are stored in a configuration file
(extensions.conf)
* configuration reader was modified to allow storing parameter values
in multiple lines
* added some more language definitions
HIGHLIGHT 1.3.4-2
30-January-2003
* added option to disable directive line bug
* added ability to search *.style and *.lang files in different
directories, which may be set as prefix option of ./configure
(suggested by Jose Santiago)
HIGHLIGHT 1.3.4
28-January-2003
* fixed LaTeX output regarding escape characters outside of strings
* fixed unmasked escape characters (both bugs reported by Peter
Albert)
* added \ttfamily to LaTeX header (suggested by Peter Albert)
* rpm-spec file allows relocatable builds (thanks to Dwight Engen)
* added "CPP" to recogniced source file suffixes (suggested by
Maniac)
* replaced verb-|- by \textbar
* fixed php.lang and py.lang
HIGHLIGHT 1.3.3
08-January-2003
* fixed Asm.lang (lower case of keywords/types)
* added option to specify target directory of the output files
* fixed bug in LateX/RTF/TeX output; last opened tag being closed now
* improved LaTeX output
* added ability to read presets from the configuration file
$HOME/.highlight.conf
* added simple cgi script (Perl)
HIGHLIGHT 1.3.2-2
29-November-2002
* fixed LaTeX output of | and ~ characters (thanks to Martin
Idelberger)
HIGHLIGHT 1.3.2
26-November-2002
* fixed buffer overflow problem (thanks to Christian Perle)
* added Rexx, Modula3, Agda, Haskell language definition
* added (G)AWK language definition (thanks to Andreas Schoenberg)
* added Bold and Italic font support, and background colour to LaTeX
output
* highlight compiles without warnings with gcc 3.2
HIGHLIGHT 1.3.1-2
20-November-2002
* applied gcc 3.2 patch (thanks to Georg Young)
HIGHLIGHT 1.3.1
18-November-2002
* fixed bug whioch disabled batch mode
* added POV Ray Definition (thanks to Christian Perle)
* added emacs and kwrite style
HIGHLIGHT 1.3 (BETA)
11-November-2002
* applied Ruby definition file patch (thanks to Jonas Fonseca)
* introduced style definition files
* added background colour to style definitions
* added line anchors in HTML output
HIGHLIGHT 1.2.1
05-October-2002
* applied patch to make highlight compile with gcc 3.x (thanks to
Marc Duponcheel)
* fixed LaTeX output of "^" and /hskip (thanks to Dan Muller)
* fixed TeX output
HIGHLIGHT 1.2
26-August-2002
* fixed bug which caused wrong output file suffixes in batch mode
* fixed (X)HTML output of french characters
* added frech character output (accent graphe, acute) to rtf, TeX and
LaTeX output
* ability to recognize keywords with "-"
* added new language definitions (Ruby, COBOL, Fortran)
HIGHLIGHT 1.1
20-August-2002
* TeX output
* fixed documentation regarding LaTeX / TeX output (Thanks to Keith
Briggs)
* fixed bug which caused single line comments left unmasked
* french letters like ? ?are masked
HIGHLIGHT 1.0 <STABLE>
13-August-2002
* reduced tex output file size
* Perl and Visual Basic definition file
* fixed error in help msg (Thanks to Jan van Haarst)
HIGHLIGHT 0.1
25-July-2002
* RTF and La(Tex) output
* Lua definition file
* header and footer part of output file may be omitted
* changed path of language definitions to /usr/share/highlight
SRC2CSS 0.2
06-May-2002:
* batch mode, converting all files matching a given wildcard
* XHTML output
* Python definition file
SRC2CSS 0.1
04-Apr-2002:
* initial release
Last updated 2018-10-15 23:37:00 ora legale Europa occidentale
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment