summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcodecompletion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r--src/plugins/cpptools/cppcodecompletion.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index aa071b7359..5e8df20ac0 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -640,6 +640,14 @@ static int startOfOperator(TextEditor::ITextEditable *editor,
}
}
+ if (k == T_COMMA) {
+ ExpressionUnderCursor expressionUnderCursor;
+ if (expressionUnderCursor.startOfFunctionCall(tc) == -1) {
+ k = T_EOF_SYMBOL;
+ start = pos;
+ }
+ }
+
static CPlusPlus::TokenUnderCursor tokenUnderCursor;
const SimpleToken tk = tokenUnderCursor(tc);
@@ -783,11 +791,14 @@ int CppCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
if (m_completionOperator == T_COMMA) {
tc.setPosition(endOfExpression);
const int start = expressionUnderCursor.startOfFunctionCall(tc);
- if (start != -1) {
- endOfExpression = start;
- m_startPosition = start + 1;
- m_completionOperator = T_LPAREN;
+ if (start == -1) {
+ m_completionOperator = T_EOF_SYMBOL;
+ return -1;
}
+
+ endOfExpression = start;
+ m_startPosition = start + 1;
+ m_completionOperator = T_LPAREN;
}
QString expression;