def __init__(self, document, colors=None): QtGui.QSyntaxHighlighter.__init__(self, document) if colors: self.colors = colors else: self.colors = design.getColors() # Multi line comments self.tri_single = (QtCore.QRegExp("'''"), 1, self.getStyle(self.colors['docstring'])) self.tri_double = (QtCore.QRegExp('"""'), 2, self.getStyle(self.colors['docstring'])) rules = [] # defaults # rules += [(r".*", 0, self.getStyle(self.colors['default'], False))] # Keywords rules += [('\\b%s\\b' % w, 0, self.getStyle(self.colors['keywords'], True)) for w in keywords.syntax['keywords']] # Methods rules += [("\\b[A-Za-z0-9_]+(?=\\()", 0, self.getStyle(self.colors['methods'], False))] # Operators rules += [(r'[~!@$%^&*()-+=]', 0, self.getStyle(self.colors['operator']))] # for o in pythonSyntax.syntax['operators']] #Braces rules += [(r'%s' % b, 0, self.getStyle(self.colors['brace'])) for b in keywords.syntax['braces']] # Definition rules += [("\\b%s\\b" % b, 0, self.getStyle(self.colors['definition'], True)) for b in keywords.syntax['definition']] # Extra rules += [("\\b%s\\b" % b, 0, self.getStyle(self.colors['extra'])) for b in keywords.syntax['extras']] # Comment # rules += [(r'#([.*]+|[^#]*)', 0, self.getStyle(design.comment))] # Digits rules += [(r"\b[\d]+\b", 0, self.getStyle(self.colors['digits']))] # ("(?:^|[^A-Za-z])([\d|\.]*\d+)", 0, self.getStyle(design.digits)), # Double-quoted string rules += [(r'[ru]?"[^"\\]*(\\.[^"\\]*)*"', 0, self.getStyle(self.colors['string']))] # Single-quoted string rules += [(r"[ru]?'[^'\\]*(\\.[^'\\]*)*'", 0, self.getStyle(self.colors['string']))] # Build a QRegExp for each pattern self.rules = [(QtCore.QRegExp(pat), index, fmt) for (pat, index, fmt) in rules]
def __init__(self, document, colors=None): QSyntaxHighlighter.__init__(self, document) if colors: self.colors = colors else: self.colors = design.getColors() # Multi line comments self.tri_single = (QRegExp("'''"), 1, self.getStyle(self.colors['docstring'])) self.tri_double = (QRegExp('"""'), 2, self.getStyle(self.colors['docstring'])) rules = [] # defaults # rules += [(r".*", 0, self.getStyle(self.colors['default'], False))] # Keywords rules += [('\\b%s\\b' % w, 0, self.getStyle(self.colors['keywords'], True)) for w in keywords.syntax['keywords']] # Methods rules += [("\\b[A-Za-z0-9_]+(?=\\()", 0, self.getStyle(self.colors['methods'], False))] # Operators rules += [(r'[~!@$%^&*()-+=]', 0, self.getStyle(self.colors['operator']))] # for o in pythonSyntax.syntax['operators']] #Braces rules += [(r'%s' % b, 0, self.getStyle(self.colors['brace'])) for b in keywords.syntax['braces']] # Definition rules += [("\\b%s\\b" % b, 0, self.getStyle(self.colors['definition'], True)) for b in keywords.syntax['definition']] # Extra rules += [("\\b%s\\b" % b, 0, self.getStyle(self.colors['extra'])) for b in keywords.syntax['extras']] # Comment # rules += [(r'#([.*]+|[^#]*)', 0, self.getStyle(design.comment))] # Digits rules += [(r"\b[\d]+\b", 0, self.getStyle(self.colors['digits']))] # ("(?:^|[^A-Za-z])([\d|\.]*\d+)", 0, self.getStyle(design.digits)), # Double-quoted string rules += [(r'[ru]?"[^"\\]*(\\.[^"\\]*)*"', 0, self.getStyle(self.colors['string']))] # Single-quoted string rules += [(r"[ru]?'[^'\\]*(\\.[^'\\]*)*'", 0, self.getStyle(self.colors['string']))] # Build a QRegExp for each pattern self.rules = [(QRegExp(pat), index, fmt) for (pat, index, fmt) in rules]
def __init__(self, document, colors=None, extraSyntax=None, skip_lines=False): QSyntaxHighlighter.__init__(self, document) self.skip = skip_lines if colors: self.colors = colors else: self.colors = design.getColors() # Multi line comments self.multi_line = (QRegExp("/\*"),QRegExp("\*/"), 1, self.getStyle(self.colors['code']['comment'])) rules = [] # Operators ops = '('+ '|'.join(keywords.syntax['operators']) + ')' rules += [(ops, 0, self.getStyle(self.colors['code']['operator']))] # Defined # rules += [(r"#(ifndef|define)\s+(\w+)", 2, self.getStyle(self.colors['code']['includes']))] # rules += [(r"(#\w+\s|!?defined)\s?([\w\(\)]+)", 2, self.getStyle(self.colors['code']['includes']))] # rules += [(r'''(#if\s+|#)!?\w+\s(.+)\s''', 2, self.getStyle(self.colors['code']['includes']))] # Braces rules += [(r'[\{\}\(\)\[\]]', 0, self.getStyle(self.colors['code']['brace']))] # Digits rules += [(r"\b[\d]+\w?\b", 0, self.getStyle(self.colors['code']['digits']))] # variable rules += [(r"\B\$[\w\d]+", 0, self.getStyle(self.colors['code']['variable'], True))] # Includes rules += [(r"#include\s+(<.*>)", 1, self.getStyle(self.colors['code']['includes']))] # Directive rules += [('#?\\b!?%s\\b' % w, 0, self.getStyle(self.colors['code']['directive'], True)) for w in keywords.syntax['directive']+keywords.syntax['ifdirective']] # rules += [(r'(#if\s+|#)!?\w+' , 0, self.getStyle(self.colors['code']['directive'], True))] # Pragma rules += [('#pragma\s+(%s)' % w, 0, self.getStyle(self.colors['code']['directive'], True)) for w in keywords.syntax['pragma']] # rules += [(r'(#if\s+|#)!?\w+' , 0, self.getStyle(self.colors['code']['directive'], True))] # Methods rules += [("\\b[A-Za-z0-9_]+\s*(?=\\()", 0, self.getStyle(self.colors['code']['methods'], True))] # types rules += [("\\b%s\\b" % b, 0, self.getStyle(self.colors['code']['type'])) for b in keywords.syntax['types']] # Keywords rules += [(r'(^|[^#])\b(%s)\b' % w, 2, self.getStyle(self.colors['code']['keywords'], True)) for w in keywords.syntax['keywords']] # attributes rules += [(r"(v4|v|s|i|f|u|p|2|3|4)?(\[\])?@[\w.]+", 0, self.getStyle(self.colors['code']['attribute']))] # Double-quoted string rules += [(r'[ru]?"[^"\\]*(\\.[^"\\]*)*"', 0, self.getStyle(self.colors['code']['string']))] # Single-quoted string rules += [(r"[ru]?'[^'\\]*(\\.[^'\\]*)*'", 0, self.getStyle(self.colors['code']['string']))] # Comment rules += [(r'//([.*]+|[^//]*)', 0, self.getStyle(self.colors['code']['comment']))] #whitespace rules += [(r'\s', 0, self.getStyle(self.colors['code']['whitespace']))] # extra if extraSyntax: rules += extraSyntax # Build a QRegExp for each pattern self.rules = [(QRegExp(pat), index, fmt) for (pat, index, fmt) in rules]