# from pygments.lexer import RegexLexer # from pygments.token import Text, Comment, Operator, Name, String # from pygments.lexers import _lexer_cache # from pygments.lexers._mapping import LEXERS # def italic_attr(lexer, m): # yield m.start(), String, '"' # yield m.start() + 2, Comment, m.group()[3:-1] # yield m.end() - 1, String, '"' # def italic_generic(lexer, m): # yield m.start(), Comment, m.group() # def italic_tag(lexer, m): # yield m.start(), Name.Tag, "<" # name = m.group()[3:] # if name.endswith(">"): # yield m.start() + 1, Comment, name[:-1] # yield m.end() - 1, Name.Tag, ">" # else: # yield m.start() + 1, Comment, name # def italic_tag_close(lexer, m): # yield m.start(), Name.Tag, "" # def repeat_tag_close(lexer, m): # before, _, after = m.group().partition("[]") # yield m.start(), Name.Tag, before # yield m.start() + len(before), Operator, "[]" # yield m.start() + len(before) + 2, Name.Tag, after # def italic_attr_name(lexer, m): # name, _, after = m.group().partition("*") # yield m.start(), Name.Attribute, name # yield m.start() + len(name), Operator, "*" # yield m.start() + len(name) + 1, Name.Attribute, after from pygments.lexer import RegexLexer, bygroups from pygments.token import Comment, Name, String, Whitespace from pygments.lexers import _lexer_cache from pygments.lexers._mapping import LEXERS class CustomIniLexer(RegexLexer): name = 'amINI' aliases = ['amini'] tokens = { 'root': [ (r'\s+', Whitespace), (r'[;#].*', Comment.Single), (r'([a-zA-Z0-9]+?)([ \t]+)([a-zA-Z0-9]+)', bygroups(Name.Attribute, Whitespace, String)), ] } _lexer_cache[CustomIniLexer.__name__] = CustomIniLexer LEXERS["CustomIniLexer"] = ("ini_lexer", "CustomIniLexer", ("amini", ), (), ()) __all__ = ("CustomIniLexer", )