diff --git a/src/libs/languageserverprotocol/jsonkeys.h b/src/libs/languageserverprotocol/jsonkeys.h index 0cdfaf1d34a..c45ded8c34b 100644 --- a/src/libs/languageserverprotocol/jsonkeys.h +++ b/src/libs/languageserverprotocol/jsonkeys.h @@ -119,6 +119,7 @@ constexpr char implementationProviderKey[] = "implementationProvider"; constexpr char includeDeclarationKey[] = "includeDeclaration"; constexpr char includeTextKey[] = "includeText"; constexpr char initializationOptionsKey[] = "initializationOptions"; +constexpr char insertFinalNewlineKey[] = "insertFinalNewline"; constexpr char insertSpaceKey[] = "insertSpace"; constexpr char insertTextFormatKey[] = "insertTextFormat"; constexpr char insertTextKey[] = "insertText"; @@ -202,6 +203,8 @@ constexpr char traceKey[] = "trace"; constexpr char triggerCharacterKey[] = "triggerCharacter"; constexpr char triggerCharactersKey[] = "triggerCharacters"; constexpr char triggerKindKey[] = "triggerKind"; +constexpr char trimFinalNewlinesKey[] = "trimFinalNewlines"; +constexpr char trimTrailingWhitespaceKey[] = "trimTrailingWhitespace"; constexpr char typeDefinitionKey[] = "typeDefinition"; constexpr char typeDefinitionProviderKey[] = "typeDefinitionProvider"; constexpr char typeKey[] = "type"; diff --git a/src/libs/languageserverprotocol/languagefeatures.h b/src/libs/languageserverprotocol/languagefeatures.h index 2fe88cf70ba..5b1b9da3c2c 100644 --- a/src/libs/languageserverprotocol/languagefeatures.h +++ b/src/libs/languageserverprotocol/languagefeatures.h @@ -685,6 +685,24 @@ public: bool insertSpace() const { return typedValue(insertSpaceKey); } void setInsertSpace(bool insertSpace) { insert(insertSpaceKey, insertSpace); } + Utils::optional trimTrailingWhitespace() const + { return optionalValue(trimTrailingWhitespaceKey); } + void setTrimTrailingWhitespace(bool trimTrailingWhitespace) + { insert(trimTrailingWhitespaceKey, trimTrailingWhitespace); } + void clearTrimTrailingWhitespace() { remove(trimTrailingWhitespaceKey); } + + Utils::optional insertFinalNewline() const + { return optionalValue(insertFinalNewlineKey); } + void setInsertFinalNewline(bool insertFinalNewline) + { insert(insertFinalNewlineKey, insertFinalNewline); } + void clearInsertFinalNewline() { remove(insertFinalNewlineKey); } + + Utils::optional trimFinalNewlines() const + { return optionalValue(trimFinalNewlinesKey); } + void setTrimFinalNewlines(bool trimFinalNewlines) + { insert(trimFinalNewlinesKey, trimFinalNewlines); } + void clearTrimFinalNewlines() { remove(trimFinalNewlinesKey); } + QHash properties() const; void setProperty(const QString &key, const DocumentFormattingProperty &property); void removeProperty(const QString &key) { remove(key); }