summaryrefslogtreecommitdiff
path: root/src/plugins/python/pythonscanner.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2020-07-03 14:14:05 +0200
committerChristian Stenger <christian.stenger@qt.io>2020-07-07 05:11:11 +0000
commitc7bc8a98ac300aeff854bdbbae260cf9fc440a73 (patch)
tree80389d0eb8cdbdeb84f7e8dad480cf370fb9519f /src/plugins/python/pythonscanner.cpp
parentf5d9091f56246710a48746ea96a68951b3332812 (diff)
downloadqt-creator-c7bc8a98ac300aeff854bdbbae260cf9fc440a73.tar.gz
Python: Fix highlighting of parentheses
This enables the PythonEditor to handle (un)matching parentheses correctly. Change-Id: I31516a5fee922de6b3cfc2254b209739bc42c540 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/python/pythonscanner.cpp')
-rw-r--r--src/plugins/python/pythonscanner.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/python/pythonscanner.cpp b/src/plugins/python/pythonscanner.cpp
index abb6251e15..79c4fa3082 100644
--- a/src/plugins/python/pythonscanner.cpp
+++ b/src/plugins/python/pythonscanner.cpp
@@ -98,6 +98,11 @@ FormatToken Scanner::onDefaultState()
return readComment();
}
+ if (first == '(' || first == '[' || first == '{')
+ return readBrace(true);
+ if (first == ')' || first == ']' || first == '}')
+ return readBrace(false);
+
if (first.isSpace())
return readWhiteSpace();
@@ -363,7 +368,7 @@ FormatToken Scanner::readWhiteSpace()
*/
FormatToken Scanner::readOperator()
{
- static const QString EXCLUDED_CHARS = "\'\"_#";
+ static const QString EXCLUDED_CHARS = "\'\"_#([{}])";
QChar ch = peek();
while (ch.isPunct() && !EXCLUDED_CHARS.contains(ch)) {
move();
@@ -372,6 +377,12 @@ FormatToken Scanner::readOperator()
return FormatToken(Format_Operator, anchor(), length());
}
+FormatToken Scanner::readBrace(bool isOpening)
+{
+ Format format = isOpening ? Format_LParen : Format_RParen;
+ return FormatToken(format, anchor(), length());
+}
+
void Scanner::clearState()
{
m_state = 0;