LSP: rename Create/Rename/DeleteFile classes

Since they clash with default windows functions and cause issues with
PCH build.

Change-Id: Ice0339c7dad14b40e172c885ffb71d923469614a
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
David Schulz
2023-10-09 13:50:32 +02:00
parent 8af6d16b6c
commit 6adaa850e8
4 changed files with 35 additions and 35 deletions

View File

@@ -419,16 +419,16 @@ DocumentChange::DocumentChange(const QJsonValue &value)
{
const QString kind = value["kind"].toString();
if (kind == "create")
emplace<CreateFile>(value);
emplace<CreateFileOperation>(value);
else if (kind == "rename")
emplace<RenameFile>(value);
emplace<RenameFileOperation>(value);
else if (kind == "delete")
emplace<DeleteFile>(value);
emplace<DeleteFileOperation>(value);
else
emplace<TextDocumentEdit>(value);
}
using DocumentChangeBase = std::variant<TextDocumentEdit, CreateFile, RenameFile, DeleteFile>;
using DocumentChangeBase = std::variant<TextDocumentEdit, CreateFileOperation, RenameFileOperation, DeleteFileOperation>;
bool DocumentChange::isValid() const
{
@@ -440,49 +440,49 @@ DocumentChange::operator const QJsonValue () const
return std::visit([](const auto &v) { return QJsonValue(v); }, DocumentChangeBase(*this));
}
CreateFile::CreateFile()
CreateFileOperation::CreateFileOperation()
{
insert(kindKey, "create");
}
QString CreateFile::message(const DocumentUri::PathMapper &mapToHostPath) const
QString CreateFileOperation::message(const DocumentUri::PathMapper &mapToHostPath) const
{
return Tr::tr("Create %1").arg(uri().toFilePath(mapToHostPath).toUserOutput());
}
bool LanguageServerProtocol::CreateFile::isValid() const
bool LanguageServerProtocol::CreateFileOperation::isValid() const
{
return contains(uriKey) && value(kindKey) == "create";
}
RenameFile::RenameFile()
RenameFileOperation::RenameFileOperation()
{
insert(kindKey, "rename");
}
QString RenameFile::message(const DocumentUri::PathMapper &mapToHostPath) const
QString RenameFileOperation::message(const DocumentUri::PathMapper &mapToHostPath) const
{
return Tr::tr("Rename %1 to %2")
.arg(oldUri().toFilePath(mapToHostPath).toUserOutput(),
newUri().toFilePath(mapToHostPath).toUserOutput());
}
bool RenameFile::isValid() const
bool RenameFileOperation::isValid() const
{
return contains(oldUriKey) && contains(newUriKey) && value(kindKey) == "rename";
}
DeleteFile::DeleteFile()
DeleteFileOperation::DeleteFileOperation()
{
insert(kindKey, "delete");
}
QString DeleteFile::message(const DocumentUri::PathMapper &mapToHostPath) const
QString DeleteFileOperation::message(const DocumentUri::PathMapper &mapToHostPath) const
{
return Tr::tr("Delete %1").arg(uri().toFilePath(mapToHostPath).toUserOutput());
}
bool DeleteFile::isValid() const
bool DeleteFileOperation::isValid() const
{
return contains(uriKey) && value(kindKey) == "delete";
}

View File

@@ -299,11 +299,11 @@ public:
void clearIgnoreIfExists() { remove(ignoreIfExistsKey); }
};
class LANGUAGESERVERPROTOCOL_EXPORT CreateFile : public JsonObject
class LANGUAGESERVERPROTOCOL_EXPORT CreateFileOperation : public JsonObject
{
public:
using JsonObject::JsonObject;
CreateFile();
CreateFileOperation();
DocumentUri uri() const { return DocumentUri::fromProtocol(typedValue<QString>(uriKey)); }
void setUri(const DocumentUri &uri) { insert(uriKey, uri); }
@@ -318,11 +318,11 @@ public:
bool isValid() const override;
};
class LANGUAGESERVERPROTOCOL_EXPORT RenameFile : public JsonObject
class LANGUAGESERVERPROTOCOL_EXPORT RenameFileOperation : public JsonObject
{
public:
using JsonObject::JsonObject;
RenameFile();
RenameFileOperation();
DocumentUri oldUri() const { return DocumentUri::fromProtocol(typedValue<QString>(oldUriKey)); }
void setOldUri(const DocumentUri &oldUri) { insert(oldUriKey, oldUri); }
@@ -354,11 +354,11 @@ public:
void clearIgnoreIfNotExists() { remove(ignoreIfNotExistsKey); }
};
class LANGUAGESERVERPROTOCOL_EXPORT DeleteFile : public JsonObject
class LANGUAGESERVERPROTOCOL_EXPORT DeleteFileOperation : public JsonObject
{
public:
using JsonObject::JsonObject;
DeleteFile();
DeleteFileOperation();
DocumentUri uri() const { return DocumentUri::fromProtocol(typedValue<QString>(uriKey)); }
void setUri(const DocumentUri &uri) { insert(uriKey, uri); }
@@ -374,7 +374,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT DocumentChange
: public std::variant<TextDocumentEdit, CreateFile, RenameFile, DeleteFile>
: public std::variant<TextDocumentEdit, CreateFileOperation, RenameFileOperation, DeleteFileOperation>
{
public:
using variant::variant;

View File

@@ -556,18 +556,18 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits,
} else {
Utils::SearchResultItem item;
if (std::holds_alternative<LanguageServerProtocol::CreateFile>(documentChange)) {
auto op = std::get<LanguageServerProtocol::CreateFile>(documentChange);
if (std::holds_alternative<CreateFileOperation>(documentChange)) {
auto op = std::get<CreateFileOperation>(documentChange);
item.setLineText(op.message(pathMapper));
item.setFilePath(op.uri().toFilePath(pathMapper));
item.setUserData(QVariant(op));
} else if (std::holds_alternative<RenameFile>(documentChange)) {
auto op = std::get<RenameFile>(documentChange);
} else if (std::holds_alternative<RenameFileOperation>(documentChange)) {
auto op = std::get<RenameFileOperation>(documentChange);
item.setLineText(op.message(pathMapper));
item.setFilePath(op.oldUri().toFilePath(pathMapper));
item.setUserData(QVariant(op));
} else if (std::holds_alternative<LanguageServerProtocol::DeleteFile>(documentChange)) {
auto op = std::get<LanguageServerProtocol::DeleteFile>(documentChange);
} else if (std::holds_alternative<DeleteFileOperation>(documentChange)) {
auto op = std::get<DeleteFileOperation>(documentChange);
item.setLineText(op.message(pathMapper));
item.setFilePath(op.uri().toFilePath(pathMapper));
item.setUserData(QVariant(op));
@@ -693,11 +693,11 @@ void SymbolSupport::applyRename(const Utils::SearchResultItems &checkedItems,
const QJsonObject jsonObject = item.userData().toJsonObject();
if (const TextEdit edit(jsonObject); edit.isValid())
editsForDocuments[filePath] << edit;
else if (const LanguageServerProtocol::CreateFile createFile(jsonObject); createFile.isValid())
else if (const CreateFileOperation createFile(jsonObject); createFile.isValid())
changes << createFile;
else if (const RenameFile renameFile(jsonObject); renameFile.isValid())
else if (const RenameFileOperation renameFile(jsonObject); renameFile.isValid())
changes << renameFile;
else if (const LanguageServerProtocol::DeleteFile deleteFile(jsonObject); deleteFile.isValid())
else if (const DeleteFileOperation deleteFile(jsonObject); deleteFile.isValid())
changes << deleteFile;
}

View File

@@ -351,8 +351,8 @@ bool applyDocumentChange(const Client *client, const DocumentChange &change)
if (std::holds_alternative<TextDocumentEdit>(change)) {
return applyTextDocumentEdit(client, std::get<TextDocumentEdit>(change));
} else if (std::holds_alternative<LanguageServerProtocol::CreateFile>(change)) {
const auto createOperation = std::get<LanguageServerProtocol::CreateFile>(change);
} else if (std::holds_alternative<CreateFileOperation>(change)) {
const auto createOperation = std::get<CreateFileOperation>(change);
const FilePath filePath = createOperation.uri().toFilePath(client->hostPathMapper());
if (filePath.exists()) {
if (const std::optional<CreateFileOptions> options = createOperation.options()) {
@@ -365,8 +365,8 @@ bool applyDocumentChange(const Client *client, const DocumentChange &change)
}
}
return filePath.ensureExistingFile();
} else if (std::holds_alternative<RenameFile>(change)) {
const RenameFile renameOperation = std::get<RenameFile>(change);
} else if (std::holds_alternative<RenameFileOperation>(change)) {
const RenameFileOperation renameOperation = std::get<RenameFileOperation>(change);
const FilePath oldPath = renameOperation.oldUri().toFilePath(client->hostPathMapper());
if (!oldPath.exists())
return false;
@@ -384,8 +384,8 @@ bool applyDocumentChange(const Client *client, const DocumentChange &change)
}
}
return oldPath.renameFile(newPath);
} else if (std::holds_alternative<LanguageServerProtocol::DeleteFile>(change)) {
const auto deleteOperation = std::get<LanguageServerProtocol::DeleteFile>(change);
} else if (std::holds_alternative<DeleteFileOperation>(change)) {
const auto deleteOperation = std::get<DeleteFileOperation>(change);
const FilePath filePath = deleteOperation.uri().toFilePath(client->hostPathMapper());
if (const std::optional<DeleteFileOptions> options = deleteOperation.options()) {
if (!filePath.exists())