forked from qt-creator/qt-creator
Clang: Fix fix-its positions calculation
Code completion does not save the unsaved file contents in translation unit therefore we need to access unsaved file directly to calculate the proper UTF-16 column. Change-Id: I0f217b0d36e0ff94ebc483ed6bef94b55efd311a Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -48,14 +48,14 @@ namespace ClangBackEnd {
|
||||
|
||||
namespace {
|
||||
|
||||
CodeCompletions toCodeCompletions(const TranslationUnit &translationUnit,
|
||||
CodeCompletions toCodeCompletions(const UnsavedFile &unsavedFile,
|
||||
const ClangCodeCompleteResults &results,
|
||||
bool onlyFunctionOverloads)
|
||||
{
|
||||
if (results.isNull())
|
||||
return CodeCompletions();
|
||||
|
||||
CodeCompletionsExtractor extractor(translationUnit.cxTranslationUnit(), results.data());
|
||||
CodeCompletionsExtractor extractor(unsavedFile, results.data());
|
||||
CodeCompletions codeCompletions = extractor.extractAll(onlyFunctionOverloads);
|
||||
|
||||
return codeCompletions;
|
||||
@@ -118,7 +118,9 @@ CodeCompletions CodeCompleter::complete(uint line, uint column,
|
||||
|
||||
filterUnknownContextResults(clangCompletions, unsavedFile(), line, column);
|
||||
|
||||
return toCodeCompletions(translationUnit, clangCompletions, funcNameStartLine >= 0);
|
||||
return toCodeCompletions(unsavedFiles.unsavedFile(translationUnit.filePath()),
|
||||
clangCompletions,
|
||||
funcNameStartLine >= 0);
|
||||
}
|
||||
|
||||
// For given "make_unique<T>" / "make_shared<T>" / "QSharedPointer<T>::create" return "new T("
|
||||
|
||||
@@ -31,19 +31,20 @@
|
||||
#include "codecompletionchunkconverter.h"
|
||||
#include "sourcelocation.h"
|
||||
#include "sourcerange.h"
|
||||
#include "unsavedfile.h"
|
||||
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
CodeCompletionsExtractor::CodeCompletionsExtractor(CXTranslationUnit cxTranslationUnit,
|
||||
CodeCompletionsExtractor::CodeCompletionsExtractor(const UnsavedFile &unsavedFile,
|
||||
CXCodeCompleteResults *cxCodeCompleteResults)
|
||||
: cxTranslationUnit(cxTranslationUnit)
|
||||
: unsavedFile(unsavedFile)
|
||||
, cxCodeCompleteResults(cxCodeCompleteResults)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool CodeCompletionsExtractor::next()
|
||||
@@ -342,6 +343,27 @@ void CodeCompletionsExtractor::extractCompletionChunks()
|
||||
currentCodeCompletion_.chunks = CodeCompletionChunkConverter::extract(currentCxCodeCompleteResult.CompletionString);
|
||||
}
|
||||
|
||||
SourceRangeContainer toRangeContainer(const UnsavedFile &file, CXSourceRange cxSourceRange)
|
||||
{
|
||||
const CXSourceLocation start = clang_getRangeStart(cxSourceRange);
|
||||
const CXSourceLocation end = clang_getRangeEnd(cxSourceRange);
|
||||
|
||||
uint startLine = 0;
|
||||
uint startColumn = 0;
|
||||
uint endLine = 0;
|
||||
uint endColumn = 0;
|
||||
clang_getFileLocation(start, nullptr, &startLine, &startColumn, nullptr);
|
||||
clang_getFileLocation(end, nullptr, &endLine, &endColumn, nullptr);
|
||||
QTC_ASSERT(startLine == endLine, return SourceRangeContainer(););
|
||||
|
||||
const Utf8String lineText = file.lineRange(startLine, endLine);
|
||||
startColumn = QString(lineText.mid(0, startColumn - 1)).size() + 1;
|
||||
endColumn = QString(lineText.mid(0, endColumn - 1)).size() + 1;
|
||||
|
||||
return SourceRangeContainer(SourceLocationContainer(file.filePath(), startLine, startColumn),
|
||||
SourceLocationContainer(file.filePath(), endLine, endColumn));
|
||||
}
|
||||
|
||||
void CodeCompletionsExtractor::extractRequiredFixIts()
|
||||
{
|
||||
#ifdef IS_COMPLETION_FIXITS_BACKPORTED
|
||||
@@ -358,7 +380,7 @@ void CodeCompletionsExtractor::extractRequiredFixIts()
|
||||
i,
|
||||
&range);
|
||||
currentCodeCompletion_.requiredFixIts.push_back(
|
||||
FixItContainer(Utf8String(fixIt), SourceRange(cxTranslationUnit, range)));
|
||||
FixItContainer(Utf8String(fixIt), toRangeContainer(unsavedFile, range)));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -35,10 +35,12 @@
|
||||
|
||||
namespace ClangBackEnd {
|
||||
|
||||
class UnsavedFile;
|
||||
|
||||
class CodeCompletionsExtractor
|
||||
{
|
||||
public:
|
||||
CodeCompletionsExtractor(CXTranslationUnit cxTranslationUnit,
|
||||
CodeCompletionsExtractor(const UnsavedFile &unsavedFile,
|
||||
CXCodeCompleteResults *cxCodeCompleteResults);
|
||||
|
||||
CodeCompletionsExtractor(CodeCompletionsExtractor&) = delete;
|
||||
@@ -79,7 +81,7 @@ private:
|
||||
|
||||
private:
|
||||
CodeCompletion currentCodeCompletion_;
|
||||
CXTranslationUnit cxTranslationUnit;
|
||||
const UnsavedFile &unsavedFile;
|
||||
CXCompletionResult currentCxCodeCompleteResult;
|
||||
CXCodeCompleteResults *cxCodeCompleteResults;
|
||||
uint cxCodeCompleteResultIndex = 0;
|
||||
|
||||
@@ -166,7 +166,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Function)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Function"),
|
||||
@@ -179,7 +179,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, TemplateFunction)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateFunction"),
|
||||
@@ -192,7 +192,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Variable)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 4));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Var"),
|
||||
@@ -205,7 +205,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, NonTypeTemplateParameter)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 25, 19));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NonTypeTemplateParameter"),
|
||||
@@ -219,7 +219,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, VariableReference)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 12));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Var"),
|
||||
@@ -232,7 +232,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Parameter)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 4));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Parameter"),
|
||||
@@ -245,7 +245,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Field)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Field"),
|
||||
@@ -258,7 +258,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Class)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Class"),
|
||||
@@ -271,7 +271,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Struct)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Struct"),
|
||||
@@ -284,7 +284,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Union)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Union"),
|
||||
@@ -297,7 +297,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Typedef)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TypeDef"),
|
||||
@@ -310,7 +310,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, UsingAsTypeAlias)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("UsingClass"),
|
||||
@@ -323,7 +323,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, TemplateTypeParameter)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateTypeParameter"),
|
||||
@@ -336,7 +336,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, TemplateClass)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateClass"),
|
||||
@@ -349,7 +349,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, TemplateTemplateParameter)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateTemplateParameter"),
|
||||
@@ -362,7 +362,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, ClassTemplatePartialSpecialization)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("ClassTemplatePartialSpecialization"),
|
||||
@@ -375,7 +375,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Namespace)
|
||||
ClangCodeCompleteResults completeResults(getResults(namespaceDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
namespaceDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(namespaceDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Namespace"),
|
||||
@@ -388,7 +388,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, NamespaceAlias)
|
||||
ClangCodeCompleteResults completeResults(getResults(namespaceDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
namespaceDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(namespaceDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NamespaceAlias"),
|
||||
@@ -401,7 +401,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Enumeration)
|
||||
ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
enumerationDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(enumerationDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Enumeration"),
|
||||
@@ -414,7 +414,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Enumerator)
|
||||
ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
enumerationDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(enumerationDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Enumerator"),
|
||||
@@ -427,7 +427,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Constructor)
|
||||
ClangCodeCompleteResults completeResults(getResults(constructorDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
constructorDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(constructorDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Constructor"),
|
||||
@@ -440,7 +440,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Destructor)
|
||||
ClangCodeCompleteResults completeResults(getResults(constructorDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
constructorDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(constructorDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("~Constructor"),
|
||||
@@ -453,7 +453,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Method)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method"),
|
||||
@@ -467,7 +467,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, MethodWithParameters)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("MethodWithParameters"),
|
||||
@@ -481,7 +481,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Slot)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Slot"),
|
||||
@@ -494,7 +494,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, Signal)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Signal"),
|
||||
@@ -507,7 +507,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, MacroDefinition)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 35));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("MacroDefinition"),
|
||||
@@ -520,7 +520,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, FunctionMacro)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("FunctionMacro"),
|
||||
@@ -533,7 +533,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, IntKeyword)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("int"),
|
||||
@@ -546,7 +546,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, SwitchKeyword)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("switch"),
|
||||
@@ -559,7 +559,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, ClassKeyword)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("class"),
|
||||
@@ -572,7 +572,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, DeprecatedFunction)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("DeprecatedFunction"),
|
||||
@@ -585,7 +585,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, NotAccessibleFunction)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NotAccessibleFunction"),
|
||||
@@ -598,7 +598,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, NotAvailableFunction)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NotAvailableFunction"),
|
||||
@@ -617,7 +617,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, UnsavedFile)
|
||||
ClangCodeCompleteResults completeResults(getResults(document, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
document.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(document.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method2"),
|
||||
@@ -639,7 +639,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, ChangeUnsavedFile)
|
||||
completeResults = getResults(document, 20);
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
document.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(document.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method3"),
|
||||
@@ -656,7 +656,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, ArgumentDefinition)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 35));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("ArgumentDefinitionVariable"),
|
||||
@@ -672,7 +672,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, NoArgumentDefinition)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 35));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, Not(HasCompletion(Utf8StringLiteral("ArgumentDefinitionVariable"),
|
||||
@@ -685,7 +685,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksFunction)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Function"),
|
||||
@@ -700,7 +700,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksFunctionWithOptionalChu
|
||||
ClangCodeCompleteResults completeResults(getResults(functionDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("FunctionWithOptional"),
|
||||
@@ -720,7 +720,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksField)
|
||||
ClangCodeCompleteResults completeResults(getResults(variableDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
variableDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(variableDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Field"),
|
||||
@@ -733,7 +733,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksEnumerator)
|
||||
ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
enumerationDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(enumerationDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumerator"),
|
||||
@@ -746,7 +746,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksEnumeration)
|
||||
ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
enumerationDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(enumerationDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumeration"),
|
||||
@@ -758,7 +758,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksClass)
|
||||
ClangCodeCompleteResults completeResults(getResults(classDocument, 20));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
classDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(classDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Class"),
|
||||
@@ -771,7 +771,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, BriefComment)
|
||||
/*needsReparse=*/ true));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
briefCommentDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(briefCommentDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasBriefComment(Utf8StringLiteral("BriefComment"), Utf8StringLiteral("A brief comment")));
|
||||
@@ -782,7 +782,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, OverloadCandidate)
|
||||
ClangCodeCompleteResults completeResults(getResults(functionOverloadDocument, 8, 13));
|
||||
|
||||
::CodeCompletionsExtractor extractor(
|
||||
functionOverloadDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(functionOverloadDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
ASSERT_THAT(extractor, HasCompletionChunks(Utf8String(),
|
||||
@@ -798,7 +798,7 @@ TEST_F(CodeCompletionsExtractorSlowTest, ExtractAll)
|
||||
{
|
||||
ClangCodeCompleteResults completeResults(getResults(constructorDocument, 25));
|
||||
::CodeCompletionsExtractor extractor(
|
||||
constructorDocument.translationUnit().cxTranslationUnit(),
|
||||
unsavedFiles.unsavedFile(constructorDocument.filePath()),
|
||||
completeResults.data());
|
||||
|
||||
auto codeCompletions = extractor.extractAll(false);
|
||||
|
||||
Reference in New Issue
Block a user