summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgbrandl <devnull@localhost>2008-07-27 22:24:49 +0200
committergbrandl <devnull@localhost>2008-07-27 22:24:49 +0200
commit4d8834b10a274df782f08fdff305bb445fc82dd9 (patch)
treecdab8a9f2801d8c5c23d499b6fab7b71ab3760ab
parent8cd9a199ec3bc1c3a79876e358f4aba85a945022 (diff)
parentc083e1cc5e0fdba050ea93161833ca61b898f08d (diff)
downloadpygments-4d8834b10a274df782f08fdff305bb445fc82dd9.tar.gz
Merge from Tim's branch.
-rw-r--r--docs/generate.py3
-rw-r--r--pygments/formatters/latex.py1
-rw-r--r--pygments/formatters/other.py29
-rw-r--r--pygments/lexers/agile.py1
4 files changed, 30 insertions, 4 deletions
diff --git a/docs/generate.py b/docs/generate.py
index 7702cfe5..658ada4b 100644
--- a/docs/generate.py
+++ b/docs/generate.py
@@ -69,7 +69,8 @@ def generate_formatter_docs():
from pygments.formatters import FORMATTERS
out = []
- for cls, data in FORMATTERS.iteritems():
+ for cls, data in sorted(FORMATTERS.iteritems(),
+ key=lambda x: x[0].__name__):
heading = cls.__name__
out.append('`' + heading + '`\n' + '-'*(2+len(heading)) + '\n')
out.append(cls.__doc__)
diff --git a/pygments/formatters/latex.py b/pygments/formatters/latex.py
index 66afd567..529fa8f9 100644
--- a/pygments/formatters/latex.py
+++ b/pygments/formatters/latex.py
@@ -109,6 +109,7 @@ class LatexFormatter(Formatter):
The LaTeX commands used to produce colored output are constructed
using this prefix and some letters (default: ``'PY'``).
*New in Pygments 0.7.*
+
*New in Pygments 0.10:* the default is now ``'PY'`` instead of ``'C'``.
"""
name = 'LaTeX'
diff --git a/pygments/formatters/other.py b/pygments/formatters/other.py
index bd375f32..fb123689 100644
--- a/pygments/formatters/other.py
+++ b/pygments/formatters/other.py
@@ -11,7 +11,8 @@
from pygments.formatter import Formatter
from pygments.util import get_choice_opt
-
+from pygments.token import Token
+from pygments.console import colorize
__all__ = ['NullFormatter', 'RawTokenFormatter']
@@ -46,6 +47,11 @@ class RawTokenFormatter(Formatter):
`compress`
If set to ``'gz'`` or ``'bz2'``, compress the output with the given
compression algorithm after encoding (default: ``''``).
+ `error_color`
+ If set to a color name, highlight error tokens using that color. If
+ set but with no value, defaults to ``'red'``.
+ *New in Pygments 0.11.*
+
"""
name = 'Raw tokens'
aliases = ['raw', 'tokens']
@@ -57,6 +63,15 @@ class RawTokenFormatter(Formatter):
Formatter.__init__(self, **options)
self.compress = get_choice_opt(options, 'compress',
['', 'none', 'gz', 'bz2'], '')
+ self.error_color = options.get('error_color', None)
+ if self.error_color is True:
+ self.error_color = 'red'
+ if self.error_color is not None:
+ try:
+ colorize(self.error_color, '')
+ except KeyError:
+ raise ValueError("Invalid color %r specified" %
+ self.error_color)
def format(self, tokensource, outfile):
if self.compress == 'gz':
@@ -78,6 +93,14 @@ class RawTokenFormatter(Formatter):
lasttype = None
lastval = u''
- for ttype, value in tokensource:
- write("%s\t%r\n" % (ttype, value))
+ if self.error_color:
+ for ttype, value in tokensource:
+ line = "%s\t%r\n" % (ttype, value)
+ if ttype is Token.Error:
+ write(colorize(self.error_color, line))
+ else:
+ write(line)
+ else:
+ for ttype, value in tokensource:
+ write("%s\t%r\n" % (ttype, value))
flush()
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py
index 8e69b472..109bffcc 100644
--- a/pygments/lexers/agile.py
+++ b/pygments/lexers/agile.py
@@ -811,6 +811,7 @@ class PerlLexer(RegexLexer):
(r"'(\\\\|\\'|[^'])*'", String),
(r'"(\\\\|\\"|[^"])*"', String),
(r'`(\\\\|\\`|[^`])*`', String.Backtick),
+ (r'<([^\s>]+)>', String.Regexp),
(r'(q|qq|qw|qr|qx)\{', String.Other, 'cb-string'),
(r'(q|qq|qw|qr|qx)\(', String.Other, 'rb-string'),
(r'(q|qq|qw|qr|qx)\[', String.Other, 'sb-string'),