LSP: Use 8-bit keys in Json wrapper

Sufficient, smaller, faster.

Change-Id: I0d740785109538e04fc674c11d578ded8d2815fb
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
hjk
2023-08-11 17:30:01 +02:00
parent 1818236b2b
commit e2a370f280
17 changed files with 288 additions and 288 deletions

View File

@@ -628,7 +628,7 @@ public:
void clearWorkDoneProgress() { remove(workDoneProgressKey); }
private:
constexpr static const char16_t workDoneProgressKey[] = u"workDoneProgress";
constexpr static const char workDoneProgressKey[] = "workDoneProgress";
};
class LANGUAGESERVERPROTOCOL_EXPORT ClientCapabilities : public JsonObject

View File

@@ -5,220 +5,220 @@
namespace LanguageServerProtocol {
constexpr char16_t actionsKey[] = u"actions";
constexpr char16_t activeParameterKey[] = u"activeParameter";
constexpr char16_t activeParameterSupportKey[] = u"activeParameterSupport";
constexpr char16_t activeSignatureKey[] = u"activeSignature";
constexpr char16_t addedKey[] = u"added";
constexpr char16_t additionalTextEditsKey[] = u"additionalTextEdits";
constexpr char16_t alphaKey[] = u"alpha";
constexpr char16_t appliedKey[] = u"applied";
constexpr char16_t applyEditKey[] = u"applyEdit";
constexpr char16_t argumentsKey[] = u"arguments";
constexpr char16_t blueKey[] = u"blue";
constexpr char16_t callHierarchyKey[] = u"callHierarchy";
constexpr char16_t callHierarchyProviderKey[] = u"callHierarchyProvider";
constexpr char16_t cancellableKey[] = u"cancellable";
constexpr char16_t capabilitiesKey[] = u"capabilities";
constexpr char16_t chKey[] = u"ch";
constexpr char16_t changeKey[] = u"change";
constexpr char16_t changeNotificationsKey[] = u"changeNotifications";
constexpr char16_t changesKey[] = u"changes";
constexpr char16_t characterKey[] = u"character";
constexpr char16_t childrenKey[] = u"children";
constexpr char16_t clientInfoKey[] = u"clientInfo";
constexpr char16_t codeActionKey[] = u"codeAction";
constexpr char16_t codeActionKindKey[] = u"codeActionKind";
constexpr char16_t codeActionKindsKey[] = u"codeActionKinds";
constexpr char16_t codeActionLiteralSupportKey[] = u"codeActionLiteralSupport";
constexpr char16_t codeActionProviderKey[] = u"codeActionProvider";
constexpr char16_t codeKey[] = u"code";
constexpr char16_t codeLensKey[] = u"codeLens";
constexpr char16_t codeLensProviderKey[] = u"codeLensProvider";
constexpr char16_t colorInfoKey[] = u"colorInfo";
constexpr char16_t colorKey[] = u"color";
constexpr char16_t colorProviderKey[] = u"colorProvider";
constexpr char16_t commandKey[] = u"command";
constexpr char16_t commandsKey[] = u"commands";
constexpr char16_t commitCharacterSupportKey[] = u"commitCharacterSupport";
constexpr char16_t commitCharactersKey[] = u"commitCharacters";
constexpr char16_t completionItemKey[] = u"completionItem";
constexpr char16_t completionItemKindKey[] = u"completionItemKind";
constexpr char16_t completionKey[] = u"completion";
constexpr char16_t completionProviderKey[] = u"completionProvider";
constexpr char16_t configurationKey[] = u"configuration";
constexpr char16_t containerNameKey[] = u"containerName";
constexpr char16_t contentChangesKey[] = u"contentChanges";
constexpr char16_t contentFormatKey[] = u"contentFormat";
constexpr char16_t contentKey[] = u"value";
constexpr char16_t contentsKey[] = u"contents";
constexpr char16_t contextKey[] = u"context";
constexpr char16_t contextSupportKey[] = u"contextSupport";
constexpr char16_t dataKey[] = u"data";
constexpr char16_t definitionKey[] = u"definition";
constexpr char16_t definitionProviderKey[] = u"definitionProvider";
constexpr char16_t deleteCountKey[] = u"deleteCount";
constexpr char16_t deltaKey[] = u"delta";
constexpr char16_t deprecatedKey[] = u"deprecated";
constexpr char16_t detailKey[] = u"detail";
constexpr char16_t diagnosticsKey[] = u"diagnostics";
constexpr char16_t didChangeConfigurationKey[] = u"didChangeConfiguration";
constexpr char16_t didChangeWatchedFilesKey[] = u"didChangeWatchedFiles";
constexpr char16_t didSaveKey[] = u"didSave";
constexpr char16_t documentChangesKey[] = u"documentChanges";
constexpr char16_t documentFormattingProviderKey[] = u"documentFormattingProvider";
constexpr char16_t documentHighlightKey[] = u"documentHighlight";
constexpr char16_t documentHighlightProviderKey[] = u"documentHighlightProvider";
constexpr char16_t documentLinkKey[] = u"documentLink";
constexpr char16_t documentLinkProviderKey[] = u"documentLinkProvider";
constexpr char16_t documentRangeFormattingProviderKey[] = u"documentRangeFormattingProvider";
constexpr char16_t documentSelectorKey[] = u"documentSelector";
constexpr char16_t documentSymbolKey[] = u"documentSymbol";
constexpr char16_t documentSymbolProviderKey[] = u"documentSymbolProvider";
constexpr char16_t documentationFormatKey[] = u"documentationFormat";
constexpr char16_t documentationKey[] = u"documentation";
constexpr char16_t dynamicRegistrationKey[] = u"dynamicRegistration";
constexpr char16_t editKey[] = u"edit";
constexpr char16_t editsKey[] = u"edits";
constexpr char16_t endKey[] = u"end";
constexpr char16_t errorKey[] = u"error";
constexpr char16_t eventKey[] = u"event";
constexpr char16_t executeCommandKey[] = u"executeCommand";
constexpr char16_t executeCommandProviderKey[] = u"executeCommandProvider";
constexpr char16_t experimentalKey[] = u"experimental";
constexpr char16_t filterTextKey[] = u"filterText";
constexpr char16_t firstTriggerCharacterKey[] = u"firstTriggerCharacter";
constexpr char16_t formatsKey[] = u"formats";
constexpr char16_t formattingKey[] = u"formatting";
constexpr char16_t fromKey[] = u"from";
constexpr char16_t fromRangesKey[] = u"fromRanges";
constexpr char16_t fullKey[] = u"full";
constexpr char16_t greenKey[] = u"green";
constexpr char16_t hierarchicalDocumentSymbolSupportKey[] = u"hierarchicalDocumentSymbolSupport";
constexpr char16_t hoverKey[] = u"hover";
constexpr char16_t hoverProviderKey[] = u"hoverProvider";
constexpr char16_t idKey[] = u"id";
constexpr char16_t implementationKey[] = u"implementation";
constexpr char16_t implementationProviderKey[] = u"implementationProvider";
constexpr char16_t includeDeclarationKey[] = u"includeDeclaration";
constexpr char16_t includeTextKey[] = u"includeText";
constexpr char16_t initializationOptionsKey[] = u"initializationOptions";
constexpr char16_t insertFinalNewlineKey[] = u"insertFinalNewline";
constexpr char16_t insertSpaceKey[] = u"insertSpace";
constexpr char16_t insertTextFormatKey[] = u"insertTextFormat";
constexpr char16_t insertTextKey[] = u"insertText";
constexpr char16_t isIncompleteKey[] = u"isIncomplete";
constexpr char16_t itemKey[] = u"item";
constexpr char16_t itemsKey[] = u"items";
constexpr char16_t jsonRpcVersionKey[] = u"jsonrpc";
constexpr char16_t kindKey[] = u"kind";
constexpr char16_t labelKey[] = u"label";
constexpr char16_t languageIdKey[] = u"languageId";
constexpr char16_t languageKey[] = u"language";
constexpr char16_t legendKey[] = u"legend";
constexpr char16_t limitKey[] = u"limit";
constexpr char16_t lineKey[] = u"line";
constexpr char16_t linesKey[] = u"lines";
constexpr char16_t locationKey[] = u"location";
constexpr char16_t messageKey[] = u"message";
constexpr char16_t methodKey[] = u"method";
constexpr char16_t moreTriggerCharacterKey[] = u"moreTriggerCharacter";
constexpr char16_t multiLineTokenSupportKey[] = u"multiLineTokenSupport";
constexpr char16_t nameKey[] = u"name";
constexpr char16_t newNameKey[] = u"newName";
constexpr char16_t newTextKey[] = u"newText";
constexpr char16_t onTypeFormattingKey[] = u"onTypeFormatting";
constexpr char16_t onlyKey[] = u"only";
constexpr char16_t openCloseKey[] = u"openClose";
constexpr char16_t optionsKey[] = u"options";
constexpr char16_t overlappingTokenSupportKey[] = u"overlappingTokenSupport";
constexpr char16_t parametersKey[] = u"parameters";
constexpr char16_t paramsKey[] = u"params";
constexpr char16_t patternKey[] = u"pattern";
constexpr char16_t percentageKey[] = u"percentage";
constexpr char16_t placeHolderKey[] = u"placeHolder";
constexpr char16_t positionKey[] = u"position";
constexpr char16_t prepareProviderKey[] = u"prepareProvider";
constexpr char16_t prepareSupportKey[] = u"prepareSupport";
constexpr char16_t previousResultIdKey[] = u"previousResultId";
constexpr char16_t processIdKey[] = u"processId";
constexpr char16_t queryKey[] = u"query";
constexpr char16_t rangeFormattingKey[] = u"rangeFormatting";
constexpr char16_t rangeKey[] = u"range";
constexpr char16_t rangeLengthKey[] = u"rangeLength";
constexpr char16_t reasonKey[] = u"reason";
constexpr char16_t redKey[] = u"red";
constexpr char16_t referencesKey[] = u"references";
constexpr char16_t referencesProviderKey[] = u"referencesProvider";
constexpr char16_t refreshSupportKey[] = u"refreshSupport";
constexpr char16_t registerOptionsKey[] = u"registerOptions";
constexpr char16_t registrationsKey[] = u"registrations";
constexpr char16_t removedKey[] = u"removed";
constexpr char16_t renameKey[] = u"rename";
constexpr char16_t renameProviderKey[] = u"renameProvider";
constexpr char16_t requestsKey[] = u"requests";
constexpr char16_t resolveProviderKey[] = u"resolveProvider";
constexpr char16_t resultIdKey[] = u"resultId";
constexpr char16_t resultKey[] = u"result";
constexpr char16_t retryKey[] = u"retry";
constexpr char16_t rootPathKey[] = u"rootPath";
constexpr char16_t rootUriKey[] = u"rootUri";
constexpr char16_t saveKey[] = u"save";
constexpr char16_t schemeKey[] = u"scheme";
constexpr char16_t scopeUriKey[] = u"scopeUri";
constexpr char16_t sectionKey[] = u"section";
constexpr char16_t selectionRangeKey[] = u"selectionRange";
constexpr char16_t semanticTokensKey[] = u"semanticTokens";
constexpr char16_t semanticTokensProviderKey[] = u"semanticTokensProvider";
constexpr char16_t serverInfoKey[] = u"serverInfo";
constexpr char16_t settingsKey[] = u"settings";
constexpr char16_t severityKey[] = u"severity";
constexpr char16_t signatureHelpKey[] = u"signatureHelp";
constexpr char16_t signatureHelpProviderKey[] = u"signatureHelpProvider";
constexpr char16_t signatureInformationKey[] = u"signatureInformation";
constexpr char16_t signaturesKey[] = u"signatures";
constexpr char16_t snippetSupportKey[] = u"snippetSupport";
constexpr char16_t sortTextKey[] = u"sortText";
constexpr char16_t sourceKey[] = u"source";
constexpr char16_t startKey[] = u"start";
constexpr char16_t supportedKey[] = u"supported";
constexpr char16_t symbolKey[] = u"symbol";
constexpr char16_t symbolKindKey[] = u"symbolKind";
constexpr char16_t syncKindKey[] = u"syncKind";
constexpr char16_t synchronizationKey[] = u"synchronization";
constexpr char16_t tabSizeKey[] = u"tabSize";
constexpr char16_t tagsKey[] = u"tags";
constexpr char16_t targetKey[] = u"target";
constexpr char16_t textDocumentKey[] = u"textDocument";
constexpr char16_t textDocumentSyncKey[] = u"textDocumentSync";
constexpr char16_t textEditKey[] = u"textEdit";
constexpr char16_t textKey[] = u"text";
constexpr char16_t titleKey[] = u"title";
constexpr char16_t tokenKey[] = u"token";
constexpr char16_t toKey[] = u"to";
constexpr char16_t tokenModifiersKey[] = u"tokenModifiers";
constexpr char16_t tokenTypesKey[] = u"tokenTypes";
constexpr char16_t traceKey[] = u"trace";
constexpr char16_t triggerCharacterKey[] = u"triggerCharacter";
constexpr char16_t triggerCharactersKey[] = u"triggerCharacters";
constexpr char16_t triggerKindKey[] = u"triggerKind";
constexpr char16_t trimFinalNewlinesKey[] = u"trimFinalNewlines";
constexpr char16_t trimTrailingWhitespaceKey[] = u"trimTrailingWhitespace";
constexpr char16_t typeDefinitionKey[] = u"typeDefinition";
constexpr char16_t typeDefinitionProviderKey[] = u"typeDefinitionProvider";
constexpr char16_t typeKey[] = u"type";
constexpr char16_t unregistrationsKey[] = u"unregistrations";
constexpr char16_t uriKey[] = u"uri";
constexpr char16_t valueKey[] = u"value";
constexpr char16_t valueSetKey[] = u"valueSet";
constexpr char16_t versionKey[] = u"version";
constexpr char16_t willSaveKey[] = u"willSave";
constexpr char16_t willSaveWaitUntilKey[] = u"willSaveWaitUntil";
constexpr char16_t windowKey[] = u"window";
constexpr char16_t workDoneProgressKey[] = u"workDoneProgress";
constexpr char16_t workspaceEditKey[] = u"workspaceEdit";
constexpr char16_t workspaceFoldersKey[] = u"workspaceFolders";
constexpr char16_t workspaceKey[] = u"workspace";
constexpr char16_t workspaceSymbolProviderKey[] = u"workspaceSymbolProvider";
constexpr char actionsKey[] = "actions";
constexpr char activeParameterKey[] = "activeParameter";
constexpr char activeParameterSupportKey[] = "activeParameterSupport";
constexpr char activeSignatureKey[] = "activeSignature";
constexpr char addedKey[] = "added";
constexpr char additionalTextEditsKey[] = "additionalTextEdits";
constexpr char alphaKey[] = "alpha";
constexpr char appliedKey[] = "applied";
constexpr char applyEditKey[] = "applyEdit";
constexpr char argumentsKey[] = "arguments";
constexpr char blueKey[] = "blue";
constexpr char callHierarchyKey[] = "callHierarchy";
constexpr char callHierarchyProviderKey[] = "callHierarchyProvider";
constexpr char cancellableKey[] = "cancellable";
constexpr char capabilitiesKey[] = "capabilities";
constexpr char chKey[] = "ch";
constexpr char changeKey[] = "change";
constexpr char changeNotificationsKey[] = "changeNotifications";
constexpr char changesKey[] = "changes";
constexpr char characterKey[] = "character";
constexpr char childrenKey[] = "children";
constexpr char clientInfoKey[] = "clientInfo";
constexpr char codeActionKey[] = "codeAction";
constexpr char codeActionKindKey[] = "codeActionKind";
constexpr char codeActionKindsKey[] = "codeActionKinds";
constexpr char codeActionLiteralSupportKey[] = "codeActionLiteralSupport";
constexpr char codeActionProviderKey[] = "codeActionProvider";
constexpr char codeKey[] = "code";
constexpr char codeLensKey[] = "codeLens";
constexpr char codeLensProviderKey[] = "codeLensProvider";
constexpr char colorInfoKey[] = "colorInfo";
constexpr char colorKey[] = "color";
constexpr char colorProviderKey[] = "colorProvider";
constexpr char commandKey[] = "command";
constexpr char commandsKey[] = "commands";
constexpr char commitCharacterSupportKey[] = "commitCharacterSupport";
constexpr char commitCharactersKey[] = "commitCharacters";
constexpr char completionItemKey[] = "completionItem";
constexpr char completionItemKindKey[] = "completionItemKind";
constexpr char completionKey[] = "completion";
constexpr char completionProviderKey[] = "completionProvider";
constexpr char configurationKey[] = "configuration";
constexpr char containerNameKey[] = "containerName";
constexpr char contentChangesKey[] = "contentChanges";
constexpr char contentFormatKey[] = "contentFormat";
constexpr char contentKey[] = "value";
constexpr char contentsKey[] = "contents";
constexpr char contextKey[] = "context";
constexpr char contextSupportKey[] = "contextSupport";
constexpr char dataKey[] = "data";
constexpr char definitionKey[] = "definition";
constexpr char definitionProviderKey[] = "definitionProvider";
constexpr char deleteCountKey[] = "deleteCount";
constexpr char deltaKey[] = "delta";
constexpr char deprecatedKey[] = "deprecated";
constexpr char detailKey[] = "detail";
constexpr char diagnosticsKey[] = "diagnostics";
constexpr char didChangeConfigurationKey[] = "didChangeConfiguration";
constexpr char didChangeWatchedFilesKey[] = "didChangeWatchedFiles";
constexpr char didSaveKey[] = "didSave";
constexpr char documentChangesKey[] = "documentChanges";
constexpr char documentFormattingProviderKey[] = "documentFormattingProvider";
constexpr char documentHighlightKey[] = "documentHighlight";
constexpr char documentHighlightProviderKey[] = "documentHighlightProvider";
constexpr char documentLinkKey[] = "documentLink";
constexpr char documentLinkProviderKey[] = "documentLinkProvider";
constexpr char documentRangeFormattingProviderKey[] = "documentRangeFormattingProvider";
constexpr char documentSelectorKey[] = "documentSelector";
constexpr char documentSymbolKey[] = "documentSymbol";
constexpr char documentSymbolProviderKey[] = "documentSymbolProvider";
constexpr char documentationFormatKey[] = "documentationFormat";
constexpr char documentationKey[] = "documentation";
constexpr char dynamicRegistrationKey[] = "dynamicRegistration";
constexpr char editKey[] = "edit";
constexpr char editsKey[] = "edits";
constexpr char endKey[] = "end";
constexpr char errorKey[] = "error";
constexpr char eventKey[] = "event";
constexpr char executeCommandKey[] = "executeCommand";
constexpr char executeCommandProviderKey[] = "executeCommandProvider";
constexpr char experimentalKey[] = "experimental";
constexpr char filterTextKey[] = "filterText";
constexpr char firstTriggerCharacterKey[] = "firstTriggerCharacter";
constexpr char formatsKey[] = "formats";
constexpr char formattingKey[] = "formatting";
constexpr char fromKey[] = "from";
constexpr char fromRangesKey[] = "fromRanges";
constexpr char fullKey[] = "full";
constexpr char greenKey[] = "green";
constexpr char hierarchicalDocumentSymbolSupportKey[] = "hierarchicalDocumentSymbolSupport";
constexpr char hoverKey[] = "hover";
constexpr char hoverProviderKey[] = "hoverProvider";
constexpr char idKey[] = "id";
constexpr char implementationKey[] = "implementation";
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";
constexpr char isIncompleteKey[] = "isIncomplete";
constexpr char itemKey[] = "item";
constexpr char itemsKey[] = "items";
constexpr char jsonRpcVersionKey[] = "jsonrpc";
constexpr char kindKey[] = "kind";
constexpr char labelKey[] = "label";
constexpr char languageIdKey[] = "languageId";
constexpr char languageKey[] = "language";
constexpr char legendKey[] = "legend";
constexpr char limitKey[] = "limit";
constexpr char lineKey[] = "line";
constexpr char linesKey[] = "lines";
constexpr char locationKey[] = "location";
constexpr char messageKey[] = "message";
constexpr char methodKey[] = "method";
constexpr char moreTriggerCharacterKey[] = "moreTriggerCharacter";
constexpr char multiLineTokenSupportKey[] = "multiLineTokenSupport";
constexpr char nameKey[] = "name";
constexpr char newNameKey[] = "newName";
constexpr char newTextKey[] = "newText";
constexpr char onTypeFormattingKey[] = "onTypeFormatting";
constexpr char onlyKey[] = "only";
constexpr char openCloseKey[] = "openClose";
constexpr char optionsKey[] = "options";
constexpr char overlappingTokenSupportKey[] = "overlappingTokenSupport";
constexpr char parametersKey[] = "parameters";
constexpr char paramsKey[] = "params";
constexpr char patternKey[] = "pattern";
constexpr char percentageKey[] = "percentage";
constexpr char placeHolderKey[] = "placeHolder";
constexpr char positionKey[] = "position";
constexpr char prepareProviderKey[] = "prepareProvider";
constexpr char prepareSupportKey[] = "prepareSupport";
constexpr char previousResultIdKey[] = "previousResultId";
constexpr char processIdKey[] = "processId";
constexpr char queryKey[] = "query";
constexpr char rangeFormattingKey[] = "rangeFormatting";
constexpr char rangeKey[] = "range";
constexpr char rangeLengthKey[] = "rangeLength";
constexpr char reasonKey[] = "reason";
constexpr char redKey[] = "red";
constexpr char referencesKey[] = "references";
constexpr char referencesProviderKey[] = "referencesProvider";
constexpr char refreshSupportKey[] = "refreshSupport";
constexpr char registerOptionsKey[] = "registerOptions";
constexpr char registrationsKey[] = "registrations";
constexpr char removedKey[] = "removed";
constexpr char renameKey[] = "rename";
constexpr char renameProviderKey[] = "renameProvider";
constexpr char requestsKey[] = "requests";
constexpr char resolveProviderKey[] = "resolveProvider";
constexpr char resultIdKey[] = "resultId";
constexpr char resultKey[] = "result";
constexpr char retryKey[] = "retry";
constexpr char rootPathKey[] = "rootPath";
constexpr char rootUriKey[] = "rootUri";
constexpr char saveKey[] = "save";
constexpr char schemeKey[] = "scheme";
constexpr char scopeUriKey[] = "scopeUri";
constexpr char sectionKey[] = "section";
constexpr char selectionRangeKey[] = "selectionRange";
constexpr char semanticTokensKey[] = "semanticTokens";
constexpr char semanticTokensProviderKey[] = "semanticTokensProvider";
constexpr char serverInfoKey[] = "serverInfo";
constexpr char settingsKey[] = "settings";
constexpr char severityKey[] = "severity";
constexpr char signatureHelpKey[] = "signatureHelp";
constexpr char signatureHelpProviderKey[] = "signatureHelpProvider";
constexpr char signatureInformationKey[] = "signatureInformation";
constexpr char signaturesKey[] = "signatures";
constexpr char snippetSupportKey[] = "snippetSupport";
constexpr char sortTextKey[] = "sortText";
constexpr char sourceKey[] = "source";
constexpr char startKey[] = "start";
constexpr char supportedKey[] = "supported";
constexpr char symbolKey[] = "symbol";
constexpr char symbolKindKey[] = "symbolKind";
constexpr char syncKindKey[] = "syncKind";
constexpr char synchronizationKey[] = "synchronization";
constexpr char tabSizeKey[] = "tabSize";
constexpr char tagsKey[] = "tags";
constexpr char targetKey[] = "target";
constexpr char textDocumentKey[] = "textDocument";
constexpr char textDocumentSyncKey[] = "textDocumentSync";
constexpr char textEditKey[] = "textEdit";
constexpr char textKey[] = "text";
constexpr char titleKey[] = "title";
constexpr char tokenKey[] = "token";
constexpr char toKey[] = "to";
constexpr char tokenModifiersKey[] = "tokenModifiers";
constexpr char tokenTypesKey[] = "tokenTypes";
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";
constexpr char unregistrationsKey[] = "unregistrations";
constexpr char uriKey[] = "uri";
constexpr char valueKey[] = "value";
constexpr char valueSetKey[] = "valueSet";
constexpr char versionKey[] = "version";
constexpr char willSaveKey[] = "willSave";
constexpr char willSaveWaitUntilKey[] = "willSaveWaitUntil";
constexpr char windowKey[] = "window";
constexpr char workDoneProgressKey[] = "workDoneProgress";
constexpr char workspaceEditKey[] = "workspaceEdit";
constexpr char workspaceFoldersKey[] = "workspaceFolders";
constexpr char workspaceKey[] = "workspace";
constexpr char workspaceSymbolProviderKey[] = "workspaceSymbolProvider";
} // namespace LanguageServerProtocol

View File

@@ -15,14 +15,14 @@ JsonObject &JsonObject::operator=(JsonObject &&other)
return *this;
}
QJsonObject::iterator JsonObject::insert(const QStringView key, const JsonObject &object)
QJsonObject::iterator JsonObject::insert(const std::string_view key, const JsonObject &object)
{
return m_jsonObject.insert(key, object.m_jsonObject);
return m_jsonObject.insert(QLatin1StringView(key), object.m_jsonObject);
}
QJsonObject::iterator JsonObject::insert(const QStringView key, const QJsonValue &value)
QJsonObject::iterator JsonObject::insert(const std::string_view key, const QJsonValue &value)
{
return m_jsonObject.insert(key, value);
return m_jsonObject.insert(QLatin1StringView(key), value);
}
} // namespace LanguageServerProtocol

View File

@@ -43,97 +43,98 @@ public:
const_iterator end() const { return m_jsonObject.end(); }
protected:
iterator insert(const QStringView key, const JsonObject &value);
iterator insert(const QStringView key, const QJsonValue &value);
iterator insert(const std::string_view key, const JsonObject &value);
iterator insert(const std::string_view key, const QJsonValue &value);
template <typename T, typename V>
iterator insertVariant(const QStringView key, const V &variant);
iterator insertVariant(const std::string_view key, const V &variant);
template <typename T1, typename T2, typename... Args, typename V>
iterator insertVariant(const QStringView key, const V &variant);
iterator insertVariant(const std::string_view key, const V &variant);
// QJSonObject redirections
QJsonValue value(const QStringView key) const { return m_jsonObject.value(key); }
bool contains(const QStringView key) const { return m_jsonObject.contains(key); }
iterator find(const QStringView key) { return m_jsonObject.find(key); }
const_iterator find(const QStringView key) const { return m_jsonObject.find(key); }
void remove(const QStringView key) { m_jsonObject.remove(key); }
QJsonValue value(const std::string_view key) const { return m_jsonObject.value(QLatin1StringView(key)); }
bool contains(const std::string_view key) const { return m_jsonObject.contains(QLatin1StringView(key)); }
iterator find(const std::string_view key) { return m_jsonObject.find(QLatin1StringView(key)); }
const_iterator find(const std::string_view key) const { return m_jsonObject.find(QLatin1StringView(key)); }
void remove(const std::string_view key) { m_jsonObject.remove(QLatin1StringView(key)); }
QStringList keys() const { return m_jsonObject.keys(); }
// convenience value access
template<typename T>
T typedValue(const QStringView key) const;
T typedValue(const std::string_view key) const;
template<typename T>
std::optional<T> optionalValue(const QStringView key) const;
std::optional<T> optionalValue(const std::string_view key) const;
template<typename T>
LanguageClientValue<T> clientValue(const QStringView key) const;
LanguageClientValue<T> clientValue(const std::string_view key) const;
template<typename T>
std::optional<LanguageClientValue<T>> optionalClientValue(const QStringView key) const;
std::optional<LanguageClientValue<T>> optionalClientValue(const std::string_view key) const;
template<typename T>
QList<T> array(const QStringView key) const;
QList<T> array(const std::string_view key) const;
template<typename T>
std::optional<QList<T>> optionalArray(const QStringView key) const;
std::optional<QList<T>> optionalArray(const std::string_view key) const;
template<typename T>
LanguageClientArray<T> clientArray(const QStringView key) const;
LanguageClientArray<T> clientArray(const std::string_view key) const;
template<typename T>
std::optional<LanguageClientArray<T>> optionalClientArray(const QStringView key) const;
std::optional<LanguageClientArray<T>> optionalClientArray(const std::string_view key) const;
template<typename T>
void insertArray(const QStringView key, const QList<T> &array);
void insertArray(const std::string_view key, const QList<T> &array);
template<typename>
void insertArray(const QStringView key, const QList<JsonObject> &array);
void insertArray(const std::string_view key, const QList<JsonObject> &array);
private:
QJsonObject m_jsonObject;
};
template<typename T, typename V>
JsonObject::iterator JsonObject::insertVariant(const QStringView key, const V &variant)
JsonObject::iterator JsonObject::insertVariant(const std::string_view key, const V &variant)
{
return std::holds_alternative<T>(variant) ? insert(key, std::get<T>(variant)) : end();
}
template<typename T1, typename T2, typename... Args, typename V>
JsonObject::iterator JsonObject::insertVariant(const QStringView key, const V &variant)
JsonObject::iterator JsonObject::insertVariant(const std::string_view key, const V &variant)
{
auto result = insertVariant<T1>(key, variant);
return result != end() ? result : insertVariant<T2, Args...>(key, variant);
}
template<typename T>
T JsonObject::typedValue(const QStringView key) const
T JsonObject::typedValue(const std::string_view key) const
{
return fromJsonValue<T>(value(key));
}
template<typename T>
std::optional<T> JsonObject::optionalValue(const QStringView key) const
std::optional<T> JsonObject::optionalValue(const std::string_view key) const
{
const QJsonValue &val = value(key);
return val.isUndefined() ? std::nullopt : std::make_optional(fromJsonValue<T>(val));
}
template<typename T>
LanguageClientValue<T> JsonObject::clientValue(const QStringView key) const
LanguageClientValue<T> JsonObject::clientValue(const std::string_view key) const
{
return LanguageClientValue<T>(value(key));
}
template<typename T>
std::optional<LanguageClientValue<T>> JsonObject::optionalClientValue(const QStringView key) const
std::optional<LanguageClientValue<T>> JsonObject::optionalClientValue(const std::string_view key) const
{
return contains(key) ? std::make_optional(clientValue<T>(key)) : std::nullopt;
}
template<typename T>
QList<T> JsonObject::array(const QStringView key) const
QList<T> JsonObject::array(const std::string_view key) const
{
if (const std::optional<QList<T>> &array = optionalArray<T>(key))
return *array;
qCDebug(conversionLog) << QString("Expected array under %1 in:").arg(key) << *this;
qCDebug(conversionLog) << QString("Expected array under %1 in:")
.arg(QLatin1String(key)) << *this;
return {};
}
template<typename T>
std::optional<QList<T>> JsonObject::optionalArray(const QStringView key) const
std::optional<QList<T>> JsonObject::optionalArray(const std::string_view key) const
{
const QJsonValue &jsonValue = value(key);
if (jsonValue.isUndefined())
@@ -142,13 +143,13 @@ std::optional<QList<T>> JsonObject::optionalArray(const QStringView key) const
}
template<typename T>
LanguageClientArray<T> JsonObject::clientArray(const QStringView key) const
LanguageClientArray<T> JsonObject::clientArray(const std::string_view key) const
{
return LanguageClientArray<T>(value(key));
}
template<typename T>
std::optional<LanguageClientArray<T>> JsonObject::optionalClientArray(const QStringView key) const
std::optional<LanguageClientArray<T>> JsonObject::optionalClientArray(const std::string_view key) const
{
const QJsonValue &val = value(key);
return !val.isUndefined() ? std::make_optional(LanguageClientArray<T>(value(key)))
@@ -156,7 +157,7 @@ std::optional<LanguageClientArray<T>> JsonObject::optionalClientArray(const QStr
}
template<typename T>
void JsonObject::insertArray(const QStringView key, const QList<T> &array)
void JsonObject::insertArray(const std::string_view key, const QList<T> &array)
{
QJsonArray jsonArray;
for (const T &item : array)
@@ -165,7 +166,7 @@ void JsonObject::insertArray(const QStringView key, const QList<T> &array)
}
template<typename >
void JsonObject::insertArray(const QStringView key, const QList<JsonObject> &array)
void JsonObject::insertArray(const std::string_view key, const QList<JsonObject> &array)
{
QJsonArray jsonArray;
for (const JsonObject &item : array)

View File

@@ -125,7 +125,7 @@ QHash<QString, DocumentFormattingProperty> FormattingOptions::properties() const
for (const QString &key : keys()) {
if (key == tabSizeKey || key == insertSpaceKey)
continue;
QJsonValue property = value(key);
QJsonValue property = value(key.toStdString());
if (property.isBool())
ret[key] = property.toBool();
if (property.isDouble())
@@ -136,7 +136,7 @@ QHash<QString, DocumentFormattingProperty> FormattingOptions::properties() const
return ret;
}
void FormattingOptions::setProperty(const QString &key, const DocumentFormattingProperty &property)
void FormattingOptions::setProperty(const std::string_view key, const DocumentFormattingProperty &property)
{
using namespace std;
if (auto val = get_if<double>(&property))

View File

@@ -678,8 +678,8 @@ public:
void clearTrimFinalNewlines() { remove(trimFinalNewlinesKey); }
QHash<QString, DocumentFormattingProperty> properties() const;
void setProperty(const QString &key, const DocumentFormattingProperty &property);
void removeProperty(const QString &key) { remove(key); }
void setProperty(const std::string_view key, const DocumentFormattingProperty &property);
void removeProperty(const std::string_view &key) { remove(key); }
bool isValid() const override { return contains(insertSpaceKey) && contains(tabSizeKey); }
};

View File

@@ -166,7 +166,7 @@ public:
QString query() const { return typedValue<QString>(queryKey); }
void setQuery(const QString &query) { insert(queryKey, query); }
void setLimit(int limit) { insert(u"limit", limit); } // clangd extension
void setLimit(int limit) { insert("limit", limit); } // clangd extension
bool isValid() const override { return contains(queryKey); }
};

View File

@@ -18,8 +18,8 @@ using namespace Utils;
namespace ClangCodeModel::Internal {
static constexpr char16_t roleKey[] = u"role";
static constexpr char16_t arcanaKey[] = u"arcana";
static constexpr char roleKey[] = "role";
static constexpr char arcanaKey[] = "arcana";
QString ClangdAstNode::role() const { return typedValue<QString>(roleKey); }
QString ClangdAstNode::kind() const { return typedValue<QString>(kindKey); }

View File

@@ -99,7 +99,7 @@ class SymbolDetails : public JsonObject
public:
using JsonObject::JsonObject;
static constexpr char16_t usrKey[] = u"usr";
static constexpr char usrKey[] = "usr";
// the unqualified name of the symbol
QString name() const { return typedValue<QString>(nameKey); }
@@ -226,15 +226,15 @@ class DiagnosticsCapabilities : public JsonObject
{
public:
using JsonObject::JsonObject;
void enableCategorySupport() { insert(u"categorySupport", true); }
void enableCodeActionsInline() {insert(u"codeActionsInline", true);}
void enableCategorySupport() { insert("categorySupport", true); }
void enableCodeActionsInline() {insert("codeActionsInline", true);}
};
class InactiveRegionsCapabilities : public JsonObject
{
public:
using JsonObject::JsonObject;
void enableInactiveRegionsSupport() { insert(u"inactiveRegions", true); }
void enableInactiveRegionsSupport() { insert("inactiveRegions", true); }
};
class ClangdTextDocumentClientCapabilities : public TextDocumentClientCapabilities
@@ -243,9 +243,9 @@ public:
using TextDocumentClientCapabilities::TextDocumentClientCapabilities;
void setPublishDiagnostics(const DiagnosticsCapabilities &caps)
{ insert(u"publishDiagnostics", caps); }
{ insert("publishDiagnostics", caps); }
void setInactiveRegionsCapabilities(const InactiveRegionsCapabilities &caps)
{ insert(u"inactiveRegionsCapabilities", caps); }
{ insert("inactiveRegionsCapabilities", caps); }
};
static qint64 getRevision(const TextDocument *doc)
@@ -1572,7 +1572,7 @@ void ClangdClient::Private::handleSemanticTokens(TextDocument *doc,
std::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
{
auto actions = optionalArray<LanguageServerProtocol::CodeAction>(u"codeActions");
auto actions = optionalArray<LanguageServerProtocol::CodeAction>("codeActions");
if (!actions)
return actions;
static const QStringList badCodeActions{
@@ -1589,7 +1589,7 @@ std::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
QString ClangdDiagnostic::category() const
{
return typedValue<QString>(u"category");
return typedValue<QString>("category");
}
MessageId ClangdClient::Private::getAndHandleAst(const TextDocOrFile &doc,

View File

@@ -635,7 +635,7 @@ IAssistProposal *ClangdFunctionHintProcessor::perform()
ClangdCompletionCapabilities::ClangdCompletionCapabilities(const JsonObject &object)
: TextDocumentClientCapabilities::CompletionCapabilities(object)
{
insert(u"editsNearCursor", true); // For dot-to-arrow correction.
insert("editsNearCursor", true); // For dot-to-arrow correction.
if (std::optional<CompletionItemCapbilities> completionItemCaps = completionItem()) {
completionItemCaps->setSnippetSupport(false);
setCompletionItem(*completionItemCaps);

View File

@@ -27,10 +27,10 @@ public:
using JsonObject::JsonObject;
// number of bytes used, including child components
qint64 total() const { return qint64(typedValue<double>(totalKey())); }
qint64 total() const { return qint64(typedValue<double>(totalKey)); }
// number of bytes used, excluding child components
qint64 self() const { return qint64(typedValue<double>(selfKey())); }
qint64 self() const { return qint64(typedValue<double>(selfKey)); }
// named child components
using NamedComponent = std::pair<MemoryTree, QString>;
@@ -39,16 +39,15 @@ public:
QList<NamedComponent> components;
const auto obj = operator const QJsonObject &();
for (auto it = obj.begin(); it != obj.end(); ++it) {
if (it.key() == totalKey() || it.key() == selfKey())
if (it.key() == QLatin1String(totalKey) || it.key() == QLatin1String(selfKey))
continue;
components.push_back({MemoryTree(it.value()), it.key()});
}
return components;
}
private:
static QString totalKey() { return QLatin1String("_total"); }
static QString selfKey() { return QLatin1String("_self"); }
static constexpr char totalKey[] = "_total";
static constexpr char selfKey[] = "_self";
};

View File

@@ -967,8 +967,8 @@ class InactiveRegionsParams : public JsonObject
public:
using JsonObject::JsonObject;
DocumentUri uri() const { return TextDocumentIdentifier(value(u"textDocument")).uri(); }
QList<Range> inactiveRegions() const { return array<Range>(u"regions"); }
DocumentUri uri() const { return TextDocumentIdentifier(value("textDocument")).uri(); }
QList<Range> inactiveRegions() const { return array<Range>("regions"); }
};
class InactiveRegionsNotification : public Notification<InactiveRegionsParams>

View File

@@ -239,7 +239,7 @@ public:
void enableCodecoverageSupport()
{
JsonObject coverageSupport(QJsonObject{{"codeCoverageSupport", true}});
insert(u"publishDiagnostics", coverageSupport);
insert("publishDiagnostics", coverageSupport);
}
};

View File

@@ -10,8 +10,8 @@ namespace Copilot {
class CheckStatusParams : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t optionsKey[] = u"options";
static constexpr char16_t localChecksOnlyKey[] = u"options";
static constexpr char optionsKey[] = "options";
static constexpr char localChecksOnlyKey[] = "options";
public:
using JsonObject::JsonObject;
@@ -30,8 +30,8 @@ public:
class CheckStatusResponse : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t userKey[] = u"user";
static constexpr char16_t statusKey[] = u"status";
static constexpr char userKey[] = "user";
static constexpr char statusKey[] = "status";
public:
using JsonObject::JsonObject;

View File

@@ -11,8 +11,8 @@ namespace Copilot {
class Completion : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t displayTextKey[] = u"displayText";
static constexpr char16_t uuidKey[] = u"uuid";
static constexpr char displayTextKey[] = "displayText";
static constexpr char uuidKey[] = "uuid";
public:
using JsonObject::JsonObject;
@@ -41,7 +41,7 @@ public:
class GetCompletionParams : public LanguageServerProtocol::JsonObject
{
public:
static constexpr char16_t docKey[] = u"doc";
static constexpr char docKey[] = "doc";
GetCompletionParams(const LanguageServerProtocol::TextDocumentIdentifier &document,
int version,
@@ -95,7 +95,7 @@ public:
class GetCompletionResponse : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t completionKey[] = u"completions";
static constexpr char completionKey[] = "completions";
public:
using JsonObject::JsonObject;

View File

@@ -12,7 +12,7 @@ namespace Copilot {
class SignInConfirmParams : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t userCodeKey[] = u"userCode";
static constexpr char userCodeKey[] = "userCode";
public:
using JsonObject::JsonObject;

View File

@@ -17,8 +17,8 @@ using SignInInitiateParams = LanguageServerProtocol::JsonObject;
class SignInInitiateResponse : public LanguageServerProtocol::JsonObject
{
static constexpr char16_t verificationUriKey[] = u"verificationUri";
static constexpr char16_t userCodeKey[] = u"userCode";
static constexpr char verificationUriKey[] = "verificationUri";
static constexpr char userCodeKey[] = "userCode";
public:
using JsonObject::JsonObject;