aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/languageserverprotocol/servercapabilities.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/languageserverprotocol/servercapabilities.h')
-rw-r--r--src/libs/languageserverprotocol/servercapabilities.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/libs/languageserverprotocol/servercapabilities.h b/src/libs/languageserverprotocol/servercapabilities.h
index 71d3e4a4965..0cbc7facf87 100644
--- a/src/libs/languageserverprotocol/servercapabilities.h
+++ b/src/libs/languageserverprotocol/servercapabilities.h
@@ -346,9 +346,23 @@ public:
{ insert(documentRangeFormattingProviderKey, documentRangeFormattingProvider); }
void clearDocumentRangeFormattingProvider() { remove(documentRangeFormattingProviderKey); }
+ class RenameOptions : public JsonObject
+ {
+ public:
+ using JsonObject::JsonObject;
+
+ // Renames should be checked and tested before being executed.
+ Utils::optional<bool> prepareProvider() const { return optionalValue<bool>(prepareProviderKey); }
+ void setPrepareProvider(bool prepareProvider) { insert(prepareProviderKey, prepareProvider); }
+ void clearPrepareProvider() { remove(prepareProviderKey); }
+
+ bool isValid(QStringList * error) const override
+ { return checkOptional<bool>(error, prepareProviderKey); }
+ };
+
// The server provides rename support.
- Utils::optional<bool> renameProvider() const { return optionalValue<bool>(renameProviderKey); }
- void setRenameProvider(bool renameProvider) { insert(renameProviderKey, renameProvider); }
+ Utils::optional<Utils::variant<RenameOptions, bool>> renameProvider() const;
+ void setRenameProvider(Utils::variant<RenameOptions,bool> renameProvider);
void clearRenameProvider() { remove(renameProviderKey); }
// The server provides document link support.