Merge pull request #2 from un-pogaz/template_highlighter

Sligh improvement to syntax key word mode and small regex fix
This commit is contained in:
Charles Haley 2022-10-11 09:08:22 +01:00 committed by GitHub
commit 7929687138
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -89,7 +89,7 @@ class TemplateHighlighter(QSyntaxHighlighter):
r"|\$+#?[a-zA-Z]\w*", r"|\$+#?[a-zA-Z]\w*",
"identifier") "identifier")
a(r"^\bprogram\b:", "keyword") a(r"^program:", "keymode")
a( a(
"|".join([r"\b%s\b" % keyword for keyword in self.KEYWORDS_GPM]), "|".join([r"\b%s\b" % keyword for keyword in self.KEYWORDS_GPM]),
"keyword") "keyword")
@ -102,7 +102,7 @@ class TemplateHighlighter(QSyntaxHighlighter):
a(r"""(?<!:)'[^']*'|"[^"]*\"""", "string") a(r"""(?<!:)'[^']*'|"[^"]*\"""", "string")
else: else:
a(r"^\bpython\b:", "keyword") a(r"^python:", "keymode")
a( a(
"|".join([r"\b%s\b" % keyword for keyword in self.KEYWORDS_PYTHON]), "|".join([r"\b%s\b" % keyword for keyword in self.KEYWORDS_PYTHON]),
@ -111,14 +111,14 @@ class TemplateHighlighter(QSyntaxHighlighter):
"|".join([r"\b%s\b" % builtin for builtin in self.BUILTINS_PYTHON]), "|".join([r"\b%s\b" % builtin for builtin in self.BUILTINS_PYTHON]),
"builtin") "builtin")
a( a(
"|".join([r"\b%s\b" % constant "|".join([r"\b%s\b" % constant for constant in self.CONSTANTS_PYTHON]),
for constant in self.CONSTANTS_PYTHON]), "constant") "constant")
a(r"\bPyQt6\b|\bqt.core\b|\bQt?[A-Z][a-z]\w+\b", "pyqt") a(r"\bPyQt6\b|\bqt.core\b|\bQt?[A-Z][a-z]\w+\b", "pyqt")
a(r"@\w+(\.\w+)?\b", "decorator") a(r"@\w+(\.\w+)?\b", "decorator")
a(r"""(?:'[^']*?'|"[^"]*?")""", "string") a(r"""('|").*?\1""", "string")
stringRe = r"""((:?"|'){3}).*?\1""" stringRe = r"""((?:"|'){3}).*?\1"""
a(stringRe, "string") a(stringRe, "string")
self.stringRe = re.compile(stringRe) self.stringRe = re.compile(stringRe)
self.tripleSingleRe = re.compile(r"""'''(?!")""") self.tripleSingleRe = re.compile(r"""'''(?!")""")
@ -216,14 +216,11 @@ class TemplateHighlighter(QSyntaxHighlighter):
pp = self.find_paren(bn, i) pp = self.find_paren(bn, i)
if pp and pp.highlight: if pp and pp.highlight:
self.setFormat(i, length, self.Formats[format_]) self.setFormat(i, length, self.Formats[format_])
elif format_ == 'keyword': elif format_ == 'keymode':
if bn > 0 and i == 0: if bn > 0 and i == 0:
if text[i:i+length] == ('python:' if self.for_python else 'program:'): continue
continue self.setFormat(i, length, self.Formats['keyword'])
print('bn', bn, format_, text[i:i+length])
self.setFormat(i, length, self.Formats[format_])
else: else:
print('bn', bn, format_, text[i:i+length])
self.setFormat(i, length, self.Formats[format_]) self.setFormat(i, length, self.Formats[format_])
self.setCurrentBlockState(NORMAL) self.setCurrentBlockState(NORMAL)