Skip to content

Instantly share code, notes, and snippets.

@xarg
Created July 10, 2012 20:12
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 xarg/3085919 to your computer and use it in GitHub Desktop.
Save xarg/3085919 to your computer and use it in GitHub Desktop.
Fabric Pygments Lexer
from pygments.lexer import RegexLexer, bygroups
from pygments.token import Text, Name, Generic, Whitespace, Operator
class FabLexer(RegexLexer):
name = 'FAB'
aliases = ['fab', 'fabric']
filenames = ['*.txt', '*.log']
tokens = {
'root': [
(r'\s+', Whitespace), # matches all whitespaces
(r'(\[[^\[]+\])', Name.Namespace), # matches [host1]
(r'(Warning: )(.*?)$', bygroups(Generic.Deleted, Text)),
(r'(Fatal error: )(.*?)$', bygroups(Generic.Error, Text)),
(r'(run: )(.*?)$', bygroups(Generic.Inserted, Text)),
(r'(Executing task )\'(.+)(\.)(.+)\'$', #matches Executing task 'some_namespace.some_task'
bygroups(Generic.Strong, Name.Variable, Operator, Name.Attribute)),
(r'(Executing task )\'(.+)\'$', # matches Executing task 'some_task'
bygroups(Generic.Strong, Name.Variable)),
(r'.', Text), # everything else
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment