History

Style

Thijs Wenker committed 12 years ago

Commit c1ed38f1 parent 0e28ff26 files · +147 −131Browse files

Showing the changes to interface/src/ScriptHighlighting.cpp (1 of 6 files). Show all

Unified · Split

interface/src/ScriptHighlighting.cpp+35−33
@@ -15,16 +15,16 @@ · 14 unmodified lines
15ScriptHighlighting::ScriptHighlighting(QTextDocument* parent) :15ScriptHighlighting::ScriptHighlighting(QTextDocument* parent) :
16 QSyntaxHighlighter(parent)16 QSyntaxHighlighter(parent)
17{17{
18 keywordRegex = QRegExp("\\b(break|case|catch|continue|debugger|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|this|throw|try|typeof|var|void|while|with)\\b");18 _keywordRegex = QRegExp("\\b(break|case|catch|continue|debugger|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|this|throw|try|typeof|var|void|while|with)\\b");
19 qoutedTextRegex = QRegExp("\".*\"");19 _qoutedTextRegex = QRegExp("\".*\"");
20 multiLineCommentBegin = QRegExp("/\\*");20 _multiLineCommentBegin = QRegExp("/\\*");
21 multiLineCommentEnd = QRegExp("\\*/");21 _multiLineCommentEnd = QRegExp("\\*/");
22 numberRegex = QRegExp("[0-9]+(\\.[0-9]+){0,1}");22 _numberRegex = QRegExp("[0-9]+(\\.[0-9]+){0,1}");
23 singleLineComment = QRegExp("//[^\n]*");23 _singleLineComment = QRegExp("//[^\n]*");
24 truefalseRegex = QRegExp("\\b(true|false)\\b");24 _truefalseRegex = QRegExp("\\b(true|false)\\b");
25}25}
26 26
27void ScriptHighlighting::highlightBlock(const QString &text) {27void ScriptHighlighting::highlightBlock(const QString& text) {
28 this->highlightKeywords(text);28 this->highlightKeywords(text);
29 this->formatNumbers(text);29 this->formatNumbers(text);
30 this->formatTrueFalse(text);30 this->formatTrueFalse(text);
@@ -32,62 +32,64 @@ void ScriptHighlighting::highlightBlock(const QString &text) { · 1 unmodified line
32 this->formatComments(text); 32 this->formatComments(text);
33}33}
34 34
35void ScriptHighlighting::highlightKeywords(const QString &text) {35void ScriptHighlighting::highlightKeywords(const QString& text) {
36 int index = keywordRegex.indexIn(text);36 int index = _keywordRegex.indexIn(text);
37 while (index >= 0) {37 while (index >= 0) {
38 int length = keywordRegex.matchedLength();38 int length = _keywordRegex.matchedLength();
39 setFormat(index, length, Qt::blue);39 setFormat(index, length, Qt::blue);
40 index = keywordRegex.indexIn(text, index + length);40 index = _keywordRegex.indexIn(text, index + length);
41 }41 }
42}42}
43 43
44void ScriptHighlighting::formatComments(const QString &text) {44void ScriptHighlighting::formatComments(const QString& text) {
45 45
46 setCurrentBlockState(BlockStateClean);46 setCurrentBlockState(BlockStateClean);
47 47
48 int start = (previousBlockState() != BlockStateInMultiComment) ? text.indexOf(multiLineCommentBegin) : 0;48 int start = (previousBlockState() != BlockStateInMultiComment) ? text.indexOf(_multiLineCommentBegin) : 0;
49 49
50 while (start > -1) {50 while (start > -1) {
51 int end = text.indexOf(multiLineCommentEnd, start);51 int end = text.indexOf(_multiLineCommentEnd, start);
52 int length = (end == -1 ? text.length() : (end + multiLineCommentEnd.matchedLength())) - start;52 int length = (end == -1 ? text.length() : (end + _multiLineCommentEnd.matchedLength())) - start;
53 setFormat(start, length, Qt::lightGray);53 setFormat(start, length, Qt::lightGray);
54 start = text.indexOf(multiLineCommentBegin, start + length);54 start = text.indexOf(_multiLineCommentBegin, start + length);
55 if (end == -1) setCurrentBlockState(BlockStateInMultiComment);55 if (end == -1) {
56 setCurrentBlockState(BlockStateInMultiComment);
57 }
56 }58 }
57 59
58 int index = singleLineComment.indexIn(text);60 int index = _singleLineComment.indexIn(text);
59 while (index >= 0) {61 while (index >= 0) {
60 int length = singleLineComment.matchedLength();62 int length = _singleLineComment.matchedLength();
61 setFormat(index, length, Qt::lightGray);63 setFormat(index, length, Qt::lightGray);
62 index = singleLineComment.indexIn(text, index + length);64 index = _singleLineComment.indexIn(text, index + length);
63 }65 }
64}66}
65 67
66void ScriptHighlighting::formatQoutedText(const QString &text){68void ScriptHighlighting::formatQoutedText(const QString& text){
67 int index = qoutedTextRegex.indexIn(text);69 int index = _qoutedTextRegex.indexIn(text);
68 while (index >= 0) {70 while (index >= 0) {
69 int length = qoutedTextRegex.matchedLength();71 int length = _qoutedTextRegex.matchedLength();
70 setFormat(index, length, Qt::red);72 setFormat(index, length, Qt::red);
71 index = qoutedTextRegex.indexIn(text, index + length);73 index = _qoutedTextRegex.indexIn(text, index + length);
72 }74 }
73}75}
74 76
75void ScriptHighlighting::formatNumbers(const QString &text){77void ScriptHighlighting::formatNumbers(const QString& text){
76 int index = numberRegex.indexIn(text);78 int index = _numberRegex.indexIn(text);
77 while (index >= 0) {79 while (index >= 0) {
78 int length = numberRegex.matchedLength();80 int length = _numberRegex.matchedLength();
79 setFormat(index, length, Qt::green);81 setFormat(index, length, Qt::green);
80 index = numberRegex.indexIn(text, index + length);82 index = _numberRegex.indexIn(text, index + length);
81 }83 }
82}84}
83 85
84void ScriptHighlighting::formatTrueFalse(const QString text){86void ScriptHighlighting::formatTrueFalse(const QString& text){
85 int index = truefalseRegex.indexIn(text);87 int index = _truefalseRegex.indexIn(text);
86 while (index >= 0) {88 while (index >= 0) {
87 int length = truefalseRegex.matchedLength();89 int length = _truefalseRegex.matchedLength();
88 QFont* font = new QFont(this->document()->defaultFont());90 QFont* font = new QFont(this->document()->defaultFont());
89 font->setBold(true);91 font->setBold(true);
90 setFormat(index, length, *font);92 setFormat(index, length, *font);
91 index = truefalseRegex.indexIn(text, index + length);93 index = _truefalseRegex.indexIn(text, index + length);
92 }94 }
93}95}