@@ -19,42 +19,39 @@ Syntax::Syntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
1919 << " \\ bvoid\\ b" << " \\ bvolatile\\ b" << " \\ bforeach\\ b" ;
2020 foreach (const QString &pattern, keywordPatterns)
2121 {
22- rule.pattern = QRegularExpression (pattern);
23- rule.format = keywordFormat;
24- syntaxRules.append (rule);
22+ addPattern (pattern, keywordFormat);
2523 }
2624
2725 // Single line comment format expression
2826 singleLineCommentFormat.setForeground (Qt::darkGray);
29- rule.pattern = QRegularExpression (QStringLiteral (" //[^\n ]*" ));
30- rule.format = singleLineCommentFormat;
31- syntaxRules.append (rule);
27+ addPattern (" //[^\n ]*" , singleLineCommentFormat);
3228
3329 // Double quotation mark for string
3430 quotationMark.setForeground (Qt::darkGreen);
35- rule.pattern = QRegularExpression (QStringLiteral (" \" .*\" " ));
36- rule.format = quotationMark;
37- syntaxRules.append (rule);
31+ addPattern (" \" .*\" " , quotationMark);
3832
3933 // Function format expression
4034 functionFormat.setFontItalic (true );
4135 functionFormat.setForeground (Qt::darkYellow);
42- rule.pattern = QRegularExpression (QStringLiteral (" \\ b[a-zA-Z_][a-zA-Z0-9_]*(?=\\ s*\\ ()" ));
43- rule.format = functionFormat;
44- syntaxRules.append (rule);
36+ addPattern (" \\ b[a-zA-Z_][a-zA-Z0-9_]*(?=\\ s*\\ ()" , functionFormat);
4537
4638 // Color pattern for parenthesis
4739 QColor parenthesisColor (" #6495ED" );
4840 parenthesisFormat.setForeground (parenthesisColor);
49- rule.pattern = QRegularExpression (QStringLiteral (" [()]" ));
50- rule.format = parenthesisFormat;
51- syntaxRules.append (rule);
41+ addPattern (" [()]" , parenthesisFormat);
5242
5343 // Regex for single character format 'a', '\n', etc
5444 charFormat.setForeground (Qt::darkCyan);
55- rule.pattern = QRegularExpression (QStringLiteral (" '(\\\\ .|[^'])'" ));
56- rule.format = charFormat;
57- syntaxRules.append (rule);
45+ addPattern (" '(\\\\ .|[^'])'" , charFormat);
46+ }
47+
48+ // Add syntax highlighting patterns
49+ void Syntax::addPattern (const QString &pattern, const QTextCharFormat &format)
50+ {
51+ SyntaxRule rule;
52+ rule.pattern = QRegularExpression (pattern);
53+ rule.format = format;
54+ syntaxRules.append (rule);
5855}
5956
6057void Syntax::highlightBlock (const QString &text)
0 commit comments