From 45fa8894bd08bcef86adaaa2f9fe9ca86ff1a3e4 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 26 Jan 2021 13:45:18 +0100 Subject: [PATCH] LanguageServerProtocol: add new format options see https://microsoft.github.io/language-server-protocol/specifications/ specification-3-15/#version_3_15_0 Change-Id: I6279ad9d8d4db706daab56efef45a13a3f8b06ae Reviewed-by: Christian Stenger --- src/libs/languageserverprotocol/jsonkeys.h | 3 +++ .../languageserverprotocol/languagefeatures.h | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) 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); }