Clang: Introduce UnsavedFile wrapper

This simplifies UnsavedFiles and makes TemporaryModifiedUnsavedFiles
useless.

Change-Id: I1896f971215ed22ce7aa7bf21b16381862b7469d
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2016-01-28 18:31:05 +01:00
parent 7db379167f
commit da27ea4d42
14 changed files with 380 additions and 329 deletions

View File

@@ -31,7 +31,7 @@
#include "codecompletefailedexception.h"
#include "codecompletionsextractor.h"
#include "sourcelocation.h"
#include "temporarymodifiedunsavedfiles.h"
#include "unsavedfile.h"
#include "clangtranslationunit.h"
#include "sourcerange.h"
@@ -97,22 +97,18 @@ ClangCodeCompleteResults CodeCompleter::complete(uint line,
ClangCodeCompleteResults CodeCompleter::completeWithArrowInsteadOfDot(uint line, uint column)
{
TemporaryModifiedUnsavedFiles modifiedUnsavedFiles(translationUnit.cxUnsavedFilesVector());
const SourceLocation location = translationUnit.sourceLocationAtWithoutReparsing(line,
column - 1);
const bool replaced = modifiedUnsavedFiles.replaceInFile(filePath(),
location.offset(),
1,
Utf8StringLiteral("->"));
ClangCodeCompleteResults results;
const SourceLocation location = translationUnit.sourceLocationAtWithoutReparsing(line, column - 1);
const bool replaced = translationUnit.unsavedFile().replaceAt(location.offset(),
1,
Utf8StringLiteral("->"));
if (replaced) {
results = complete(line,
column + 1,
modifiedUnsavedFiles.cxUnsavedFiles(),
modifiedUnsavedFiles.count());
translationUnit.cxUnsavedFiles(),
translationUnit.unsavedFilesCount());
if (results.hasResults())
neededCorrection_ = CompletionCorrection::DotToArrowCorrection;