CodeCompletions CodeCompleter::complete(uint line, uint column) { neededCorrection_ = CompletionCorrection::NoCorrection; ClangCodeCompleteResults results = complete(line, column, translationUnit.cxUnsavedFiles(), translationUnit.unsavedFilesCount()); if (results.hasNoResultsForDotCompletion() && hasDotAt(line, column - 1)) results = completeWithArrowInsteadOfDot(line, column); return toCodeCompletions(results); }
CodeCompletions CodeCompleter::complete(uint line, uint column, int funcNameStartLine, int funcNameStartColumn) { neededCorrection_ = CompletionCorrection::NoCorrection; // Check if we have a smart pointer completion and get proper constructor signatures in results. // Results are empty when it's not a smart pointer or this completion failed. ClangCodeCompleteResults results = completeSmartPointerCreation(line, column, funcNameStartLine, funcNameStartColumn); if (results.isNull() || results.isEmpty()) results = completeHelper(line, column); filterUnknownContextResults(results, unsavedFile(), line, column); tryDotArrowCorrectionIfNoResults(results, line, column); return toCodeCompletions(results); }