GNU Enscript converts ASCII files to PostScript, HTML, and other output languages, applying language sensitive highlighting (similar to Emacs’s font lock mode). Here are a few states files for highlighting Standard ML.
-
sml_simple.st
— Provides highlighting of keywords, string and character constants, and (nested) comments.
-
sml_verbose.st
— Supersedes the above, adding highlighting of numeric constants. Due to the limited parsing available, numeric record labels are highlighted as numeric constants, in all contexts. Likewise, a binding precedence separated frominfix
orinfixr
by a newline is highlighted as a numeric constant and a numeric record label selector separated from#
by a newline is highlighted as a numeric constant.
-
sml_fancy.st
— Supersedes the above, adding highlighting of type and constructor bindings, highlighting of explicit binding of type variables atval
andfun
declarations, and separate highlighting of core and modules level keywords. Due to the limited parsing available, it is assumed that the input is a syntactically correct, top-level declaration.
-
sml_gaudy.st
— Supersedes the above, adding highlighting of type annotations, in both expressions and signatures. Due to the limited parsing available, it is assumed that the input is a syntactically correct, top-level declaration.
Install and use
-
Version 1.6.3 of GNU Enscript
-
Copy all files to
/usr/share/enscript/hl/
or.enscript/
in your home directory. -
Invoke
enscript
with--highlight=sml_simple
(or--highlight=sml_verbose
or--highlight=sml_fancy
or--highlight=sml_gaudy
).
-
-
Version 1.6.1 of GNU Enscript
-
Append
sml_all.st
to/usr/share/enscript/enscript.st
-
Invoke
enscript
with--pretty-print=sml_simple
(or--pretty-print=sml_verbose
or--pretty-print=sml_fancy
or--pretty-print=sml_gaudy
).
-
Feedback
Comments and suggestions should be directed to MatthewFluet.