From 808b878658d40c7cbb4c8f4f1968755553a52966 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Wed, 26 Nov 2025 13:25:44 +1100 Subject: [PATCH] Fix code blocks so reserved keywords inside strings don't get painted as reserved --- bouquin/code_highlighter.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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