summaryrefslogtreecommitdiff
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.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libs/languageserverprotocol/servercapabilities.h b/src/libs/languageserverprotocol/servercapabilities.h
index 4c8011378f..7365449b0f 100644
--- a/src/libs/languageserverprotocol/servercapabilities.h
+++ b/src/libs/languageserverprotocol/servercapabilities.h
@@ -223,6 +223,17 @@ public:
void clearId() { remove(idKey); }
};
+ class LANGUAGESERVERPROTOCOL_EXPORT SemanticHighlightingServerCapabilities : public JsonObject
+ {
+ public:
+ using JsonObject::JsonObject;
+
+ Utils::optional<QList<QList<QString>>> scopes() const;
+ void setScopes(const QList<QList<QString>> &scopes);
+
+ bool isValid(QStringList *) const override;
+ };
+
// Defines how text documents are synced. Is either a detailed structure defining each
// notification or for backwards compatibility the TextDocumentSyncKind number.
using TextDocumentSync = Utils::variant<TextDocumentSyncOptions, int>;
@@ -423,6 +434,12 @@ public:
void setExperimental(const JsonObject &experimental) { insert(experimentalKey, experimental); }
void clearExperimental() { remove(experimentalKey); }
+ Utils::optional<SemanticHighlightingServerCapabilities> semanticHighlighting() const
+ { return optionalValue<SemanticHighlightingServerCapabilities>(semanticHighlightingKey); }
+ void setSemanticHighlighting(const SemanticHighlightingServerCapabilities &semanticHighlighting)
+ { insert(semanticHighlightingKey, semanticHighlighting); }
+ void clearSemanticHighlighting() { remove(semanticHighlightingKey); }
+
bool isValid(QStringList *error) const override;
};