diff options
Diffstat (limited to 'src/plugins/python/pythonscanner.cpp')
-rw-r--r-- | src/plugins/python/pythonscanner.cpp | 13 |
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; |