Exemplo n.º 1
0
    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]
Exemplo n.º 3
0
    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]
    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]