mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-04-15 05:32:21 +00:00
R - Replace QRegExp by QRegularExpression
This commit is contained in:
@@ -26,10 +26,10 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
HighlightingRule rule;
|
||||
|
||||
assignmentFormat.setForeground(QColor(255,204,000));
|
||||
rule.pattern = QRegExp("<{1,2}[-]");
|
||||
rule.pattern = QRegularExpression("<{1,2}[-]");
|
||||
rule.format = assignmentFormat;
|
||||
highlightingRules.append(rule);
|
||||
rule.pattern = QRegExp("[-]>{1,2}");
|
||||
rule.pattern = QRegularExpression("[-]>{1,2}");
|
||||
rule.format = assignmentFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
@@ -37,14 +37,14 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
// function: anything followed by (
|
||||
functionFormat.setForeground(Qt::cyan);
|
||||
//functionFormat.setFontItalic(true);
|
||||
rule.pattern = QRegExp("\\b[A-Za-z0-9_\\.]+(?=[ ]*\\()");
|
||||
rule.pattern = QRegularExpression("\\b[A-Za-z0-9_\\.]+(?=[ ]*\\()");
|
||||
rule.format = functionFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
// argument: anything followed by =, but not at the start(???)
|
||||
// unfortunately look behind assertions are not supported
|
||||
argumentFormat.setFontItalic(true);
|
||||
rule.pattern = QRegExp("[A-Za-z0-9_\\.]+(?=[ ]*=[^=])");
|
||||
rule.pattern = QRegularExpression("[A-Za-z0-9_\\.]+(?=[ ]*=[^=])");
|
||||
rule.format = argumentFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
@@ -53,7 +53,7 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
QStringList numberPatterns;
|
||||
numberPatterns << "\\b[0-9]+[\\.]?[0-9]*\\b" << "\\b[\\.][0-9]+\\b";
|
||||
foreach (QString pattern, numberPatterns) {
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.pattern = QRegularExpression(pattern);
|
||||
rule.format = numberFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
QStringList constantPatterns;
|
||||
constantPatterns << "\\bTRUE\\b" << "\\bFALSE\\b" << "\\bNA\\b" << "\\bNULL\\b" << "\\bInf\\b" << "\\bNaN\\b";
|
||||
foreach (QString pattern, constantPatterns) {
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.pattern = QRegularExpression(pattern);
|
||||
rule.format = constantFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
@@ -79,7 +79,7 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
<< "\\bfunction\\b" << "\\breturn\\b" << "\\bmessage\\b"
|
||||
<< "\\bwarning\\b" << "\\bstop\\b";
|
||||
foreach (QString pattern, keywordPatterns) {
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.pattern = QRegularExpression(pattern);
|
||||
rule.format = keywordFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
QStringList commonFunctionPatterns;
|
||||
commonFunctionPatterns << "\\blibrary\\b" << "\\bsource\\b" << "\\brequire\\b";
|
||||
foreach (QString pattern, commonFunctionPatterns) {
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.pattern = QRegularExpression(pattern);
|
||||
rule.format = commonFunctionFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
@@ -105,30 +105,30 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
operatorPatterns << "[\\&\\@\\|\\:\\~!<>=]" << "==" << "!=";
|
||||
|
||||
foreach (QString pattern, operatorPatterns) {
|
||||
rule.pattern = QRegExp(pattern);
|
||||
rule.pattern = QRegularExpression(pattern);
|
||||
rule.format = operatorFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
|
||||
// namespace: anything followed by ::
|
||||
//namespaceFormat.setForeground(Qt::magenta);
|
||||
//rule.pattern = QRegExp("\\b[A-Za-z0-9_\\.]+(?=::)");
|
||||
//rule.pattern = QRegularExpression("\\b[A-Za-z0-9_\\.]+(?=::)");
|
||||
//rule.format = namespaceFormat;
|
||||
//highlightingRules.append(rule);
|
||||
|
||||
// quotes: only activated after quotes are closed. Does not
|
||||
// span lines.
|
||||
quotationFormat.setForeground(Qt::red);
|
||||
rule.pattern = QRegExp("\"[^\"]*\"");
|
||||
rule.pattern = QRegularExpression("\"[^\"]*\"");
|
||||
rule.format = quotationFormat;
|
||||
highlightingRules.append(rule);
|
||||
rule.pattern = QRegExp("'[^']*\'");
|
||||
rule.pattern = QRegularExpression("'[^']*\'");
|
||||
rule.format = quotationFormat;
|
||||
highlightingRules.append(rule);
|
||||
|
||||
// comments (should override everything else)
|
||||
commentFormat.setForeground(QColor(100,149,237));
|
||||
rule.pattern = QRegExp("#[^\n]*");
|
||||
rule.pattern = QRegularExpression("#[^\n]*");
|
||||
rule.format = commentFormat;
|
||||
highlightingRules.append(rule);
|
||||
}
|
||||
@@ -137,13 +137,14 @@ RSyntax::RSyntax(QTextDocument *parent) : QSyntaxHighlighter(parent)
|
||||
void RSyntax::highlightBlock(const QString &text)
|
||||
{
|
||||
foreach (HighlightingRule rule, highlightingRules) {
|
||||
QRegExp expression(rule.pattern);
|
||||
int index = text.indexOf(expression);
|
||||
QRegularExpression expression(rule.pattern);
|
||||
QRegularExpressionMatch match;
|
||||
int index = text.indexOf(expression, 0, &match);
|
||||
// NB: this is index in block, not full document
|
||||
while (index >= 0) {
|
||||
int length = expression.matchedLength();
|
||||
int length = match.capturedLength();
|
||||
setFormat(index, length, rule.format);
|
||||
index = text.indexOf(expression, index + length);
|
||||
index = text.indexOf(expression, index + length, &match);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include <QHash>
|
||||
#include <QTextCharFormat>
|
||||
#include <QRegularExpression>
|
||||
|
||||
class QTextDocument;
|
||||
|
||||
@@ -38,7 +39,7 @@ class RSyntax : public QSyntaxHighlighter
|
||||
|
||||
private:
|
||||
struct HighlightingRule {
|
||||
QRegExp pattern;
|
||||
QRegularExpression pattern;
|
||||
QTextCharFormat format;
|
||||
};
|
||||
QVector<HighlightingRule> highlightingRules;
|
||||
|
||||
Reference in New Issue
Block a user