forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.0'
Conflicts: qtcreator.pri qtcreator.qbs Change-Id: I0cbc9d335073e3234f472aa43f462eef9a9178aa
This commit is contained in:
@@ -101,6 +101,7 @@ ClangCompletionContextAnalyzer::analyzeFunctionCall(int endOfOperator) const
|
||||
|
||||
ExpressionUnderCursor euc(m_languageFeatures);
|
||||
index = euc.startOfFunctionCall(textCursor);
|
||||
index = ActivationSequenceContextProcessor::skipPrecedingWhitespace(m_interface, index);
|
||||
const int functionNameStart = ActivationSequenceContextProcessor::findStartOfName(m_interface,
|
||||
index);
|
||||
|
||||
@@ -159,9 +160,14 @@ void ClangCompletionContextAnalyzer::handleFunctionCall(int afterOperatorPositio
|
||||
setActionAndClangPosition(PassThroughToLibClang, afterOperatorPosition);
|
||||
} else {
|
||||
const FunctionInfo functionInfo = analyzeFunctionCall(afterOperatorPosition);
|
||||
m_functionName = functionInfo.functionName;
|
||||
setActionAndClangPosition(PassThroughToLibClangAfterLeftParen,
|
||||
functionInfo.functionNamePosition);
|
||||
if (functionInfo.isValid()) {
|
||||
m_functionName = functionInfo.functionName;
|
||||
setActionAndClangPosition(PassThroughToLibClangAfterLeftParen,
|
||||
functionInfo.functionNamePosition);
|
||||
} else {
|
||||
m_positionForProposal = afterOperatorPosition;
|
||||
setActionAndClangPosition(PassThroughToLibClang, afterOperatorPosition);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,12 @@ public:
|
||||
private:
|
||||
ClangCompletionContextAnalyzer();
|
||||
|
||||
struct FunctionInfo { int functionNamePosition; QString functionName; };
|
||||
struct FunctionInfo {
|
||||
bool isValid() const { return functionNamePosition != -1 && !functionName.isEmpty(); }
|
||||
|
||||
int functionNamePosition = -1;
|
||||
QString functionName;
|
||||
};
|
||||
FunctionInfo analyzeFunctionCall(int endOfExpression) const;
|
||||
|
||||
void setActionAndClangPosition(CompletionAction action, int position);
|
||||
|
||||
Reference in New Issue
Block a user