Showing the changes to interface/src/ScriptHighlighting.cpp (1 of 15 files). Show all
Unified · Split
| @@ -10,6 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | // |
| 11 | 11 | |
| 12 | 12 | #include "ScriptHighlighting.h" |
| 13 | +#include <QTextDocument> | |
| 13 | 14 | |
| 14 | 15 | ScriptHighlighting::ScriptHighlighting(QTextDocument* parent) : |
| 15 | 16 | QSyntaxHighlighter(parent) |
| @@ -19,13 +20,16 @@ ScriptHighlighting::ScriptHighlighting(QTextDocument* parent) : · 3 unmodified lines | ||
| 19 | 20 | multiLineCommentBegin = QRegExp("/\\*"); |
| 20 | 21 | multiLineCommentEnd = QRegExp("\\*/"); |
| 21 | 22 | numberRegex = QRegExp("[0-9]+(\\.[0-9]+){0,1}"); |
| 23 | + singleLineComment = QRegExp("//[^\n]*"); | |
| 24 | + truefalseRegex = QRegExp("\\b(true|false)\\b"); | |
| 22 | 25 | } |
| 23 | 26 | |
| 24 | 27 | void ScriptHighlighting::highlightBlock(const QString &text) { |
| 25 | 28 | this->highlightKeywords(text); |
| 26 | − this->formatComments(text); | |
| 27 | − this->formatQoutedText(text); | |
| 28 | 29 | this->formatNumbers(text); |
| 30 | + this->formatTrueFalse(text); | |
| 31 | + this->formatQoutedText(text); | |
| 32 | + this->formatComments(text); | |
| 29 | 33 | } |
| 30 | 34 | |
| 31 | 35 | void ScriptHighlighting::highlightKeywords(const QString &text) { |
| @@ -50,6 +54,13 @@ void ScriptHighlighting::formatComments(const QString &text) { · 18 unmodified lines | ||
| 50 | 54 | start = text.indexOf(multiLineCommentBegin, start + length); |
| 51 | 55 | if (end == -1) setCurrentBlockState(BlockStateInMultiComment); |
| 52 | 56 | } |
| 57 | + | |
| 58 | + int index = singleLineComment.indexIn(text); | |
| 59 | + while (index >= 0) { | |
| 60 | + int length = singleLineComment.matchedLength(); | |
| 61 | + setFormat(index, length, Qt::lightGray); | |
| 62 | + index = singleLineComment.indexIn(text, index + length); | |
| 63 | + } | |
| 53 | 64 | } |
| 54 | 65 | |
| 55 | 66 | void ScriptHighlighting::formatQoutedText(const QString &text){ |
| @@ -69,3 +80,14 @@ void ScriptHighlighting::formatNumbers(const QString &text){ · 13 unmodified lines | ||
| 69 | 80 | index = numberRegex.indexIn(text, index + length); |
| 70 | 81 | } |
| 71 | 82 | } |
| 83 | + | |
| 84 | +void ScriptHighlighting::formatTrueFalse(const QString text){ | |
| 85 | + int index = truefalseRegex.indexIn(text); | |
| 86 | + while (index >= 0) { | |
| 87 | + int length = truefalseRegex.matchedLength(); | |
| 88 | + QFont* font = new QFont(this->document()->defaultFont()); | |
| 89 | + font->setBold(true); | |
| 90 | + setFormat(index, length, *font); | |
| 91 | + index = truefalseRegex.indexIn(text, index + length); | |
| 92 | + } | |
| 93 | +} | |