forked from qt-creator/qt-creator
Enable completion in C++ ctor-initializers. For example,
struct foo { int m_zoo; foo(): m_ // cursor is here.
This commit is contained in:
@@ -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,12 +791,15 @@ int CppCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
|
||||
if (m_completionOperator == T_COMMA) {
|
||||
tc.setPosition(endOfExpression);
|
||||
const int start = expressionUnderCursor.startOfFunctionCall(tc);
|
||||
if (start != -1) {
|
||||
if (start == -1) {
|
||||
m_completionOperator = T_EOF_SYMBOL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
endOfExpression = start;
|
||||
m_startPosition = start + 1;
|
||||
m_completionOperator = T_LPAREN;
|
||||
}
|
||||
}
|
||||
|
||||
QString expression;
|
||||
tc.setPosition(endOfExpression);
|
||||
|
Reference in New Issue
Block a user