forked from qt-creator/qt-creator
Clang: Workaround dot detection for arrow correction
...by explicitly checking for the dot in the source. Task-number: QTCREATORBUG-15654 Change-Id: I4172e88a7fbb3015ef391daf13ded1f0002aab9c Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
@@ -68,7 +68,7 @@ CodeCompletions CodeCompleter::complete(uint line, uint column)
|
||||
translationUnit.cxUnsavedFiles(),
|
||||
translationUnit.unsavedFilesCount());
|
||||
|
||||
if (results.hasNoResultsForDotCompletion())
|
||||
if (results.hasNoResultsForDotCompletion() && hasDotAt(line, column - 1))
|
||||
results = completeWithArrowInsteadOfDot(line, column);
|
||||
|
||||
return toCodeCompletions(results);
|
||||
@@ -95,6 +95,14 @@ ClangCodeCompleteResults CodeCompleter::complete(uint line,
|
||||
options);
|
||||
}
|
||||
|
||||
bool CodeCompleter::hasDotAt(uint line, uint column) const
|
||||
{
|
||||
const UnsavedFile &unsavedFile = translationUnit.unsavedFile();
|
||||
const SourceLocation location = translationUnit.sourceLocationAtWithoutReparsing(line, column);
|
||||
|
||||
return unsavedFile.hasCharacterAt(location.offset(), '.');
|
||||
}
|
||||
|
||||
ClangCodeCompleteResults CodeCompleter::completeWithArrowInsteadOfDot(uint line, uint column)
|
||||
{
|
||||
ClangCodeCompleteResults results;
|
||||
|
||||
Reference in New Issue
Block a user