diff --git a/bouquin/code_highlighter.py b/bouquin/code_highlighter.py index b60d8a5..e462574 100644 --- a/bouquin/code_highlighter.py +++ b/bouquin/code_highlighter.py @@ -287,12 +287,6 @@ class CodeHighlighter: # HTML comments patterns.append((r"", "comment")) - # Strings (double quotes) - patterns.append((r'"[^"\\]*(\\.[^"\\]*)*"', "string")) - - # Strings (single quotes) - patterns.append((r"'[^'\\]*(\\.[^'\\]*)*'", "string")) - # Numbers patterns.append((r"\b\d+\.?\d*\b", "number")) @@ -300,6 +294,14 @@ class CodeHighlighter: for keyword in keywords: patterns.append((r"\b" + keyword + r"\b", "keyword")) + # Do strings last so they override any of the above (e.g reserved keywords in strings) + + # Strings (double quotes) + patterns.append((r'"[^"\\]*(\\.[^"\\]*)*"', "string")) + + # Strings (single quotes) + patterns.append((r"'[^'\\]*(\\.[^'\\]*)*'", "string")) + return patterns @staticmethod