forked from qt-creator/qt-creator
Remove clangsupport dependency from plugins
Change-Id: Ifd4215a590d32cd04fab720d0d8d5e746e81c6e8 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -34,14 +34,11 @@
|
||||
namespace ClangCodeModel {
|
||||
namespace Internal {
|
||||
|
||||
using FileToFixits = QMap<QString, QVector<ClangBackEnd::FixItContainer>>;
|
||||
using FileToFixits = QMap<QString, QList<ClangFixIt>>;
|
||||
using RefactoringFilePtr = QSharedPointer<TextEditor::RefactoringFile>;
|
||||
|
||||
ClangFixItOperation::ClangFixItOperation(
|
||||
const Utf8String &fixItText,
|
||||
const QVector<ClangBackEnd::FixItContainer> &fixItContainers)
|
||||
: fixItText(fixItText)
|
||||
, fixItContainers(fixItContainers)
|
||||
ClangFixItOperation::ClangFixItOperation(const QString &fixItText, const QList<ClangFixIt> &fixIts)
|
||||
: fixItText(fixItText), fixIts(fixIts)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -52,16 +49,16 @@ int ClangFixItOperation::priority() const
|
||||
|
||||
QString ClangFixItOperation::description() const
|
||||
{
|
||||
return QStringLiteral("Apply Fix: ") + fixItText.toString();
|
||||
return QStringLiteral("Apply Fix: ") + fixItText;
|
||||
}
|
||||
|
||||
static FileToFixits fixitsPerFile(const QVector<ClangBackEnd::FixItContainer> &fixItContainers)
|
||||
static FileToFixits fixitsPerFile(const QList<ClangFixIt> &fixIts)
|
||||
{
|
||||
FileToFixits mapping;
|
||||
|
||||
for (const auto &fixItContainer : fixItContainers) {
|
||||
const QString rangeStartFilePath = fixItContainer.range.start.filePath.toString();
|
||||
const QString rangeEndFilePath = fixItContainer.range.end.filePath.toString();
|
||||
for (const auto &fixItContainer : fixIts) {
|
||||
const QString rangeStartFilePath = fixItContainer.range.start.targetFilePath.toString();
|
||||
const QString rangeEndFilePath = fixItContainer.range.end.targetFilePath.toString();
|
||||
QTC_CHECK(rangeStartFilePath == rangeEndFilePath);
|
||||
mapping[rangeStartFilePath].append(fixItContainer);
|
||||
}
|
||||
@@ -72,11 +69,11 @@ static FileToFixits fixitsPerFile(const QVector<ClangBackEnd::FixItContainer> &f
|
||||
void ClangFixItOperation::perform()
|
||||
{
|
||||
const TextEditor::RefactoringChanges refactoringChanges;
|
||||
const FileToFixits fileToFixIts = fixitsPerFile(fixItContainers);
|
||||
const FileToFixits fileToFixIts = fixitsPerFile(fixIts);
|
||||
|
||||
for (auto i = fileToFixIts.cbegin(), end = fileToFixIts.cend(); i != end; ++i) {
|
||||
const QString filePath = i.key();
|
||||
const QVector<ClangBackEnd::FixItContainer> fixits = i.value();
|
||||
const QList<ClangFixIt> fixits = i.value();
|
||||
|
||||
RefactoringFilePtr refactoringFile = refactoringChanges.file(
|
||||
Utils::FilePath::fromString(filePath));
|
||||
@@ -91,11 +88,10 @@ QString ClangFixItOperation::firstRefactoringFileContent_forTestOnly() const
|
||||
return refactoringFiles.first()->document()->toPlainText();
|
||||
}
|
||||
|
||||
void ClangFixItOperation::applyFixitsToFile(
|
||||
TextEditor::RefactoringFile &refactoringFile,
|
||||
const QVector<ClangBackEnd::FixItContainer> fixItContainers)
|
||||
void ClangFixItOperation::applyFixitsToFile(TextEditor::RefactoringFile &refactoringFile,
|
||||
const QList<ClangFixIt> fixIts)
|
||||
{
|
||||
const Utils::ChangeSet changeSet = toChangeSet(refactoringFile, fixItContainers);
|
||||
const Utils::ChangeSet changeSet = toChangeSet(refactoringFile, fixIts);
|
||||
|
||||
refactoringFile.setChangeSet(changeSet);
|
||||
refactoringFile.apply();
|
||||
@@ -103,16 +99,16 @@ void ClangFixItOperation::applyFixitsToFile(
|
||||
|
||||
Utils::ChangeSet ClangFixItOperation::toChangeSet(
|
||||
TextEditor::RefactoringFile &refactoringFile,
|
||||
const QVector<ClangBackEnd::FixItContainer> fixItContainers) const
|
||||
const QList<ClangFixIt> fixIts) const
|
||||
{
|
||||
Utils::ChangeSet changeSet;
|
||||
|
||||
for (const auto &fixItContainer : fixItContainers) {
|
||||
for (const auto &fixItContainer : fixIts) {
|
||||
const auto &range = fixItContainer.range;
|
||||
const auto &start = range.start;
|
||||
const auto &end = range.end;
|
||||
changeSet.replace(refactoringFile.position(start.line, start.column),
|
||||
refactoringFile.position(end.line, end.column),
|
||||
changeSet.replace(refactoringFile.position(start.targetLine, start.targetColumn + 1),
|
||||
refactoringFile.position(end.targetLine, end.targetColumn + 1),
|
||||
fixItContainer.text);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user