diff options
Diffstat (limited to 'src/libs/languageserverprotocol/servercapabilities.h')
-rw-r--r-- | src/libs/languageserverprotocol/servercapabilities.h | 18 |
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. |