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:
Christian Kandeler
2022-05-02 12:29:57 +02:00
parent 80eac74106
commit 818dc8b0cc
25 changed files with 252 additions and 337 deletions

View File

@@ -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);
}