aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/languageserverprotocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/languageserverprotocol')
-rw-r--r--src/libs/languageserverprotocol/clientcapabilities.cpp22
-rw-r--r--src/libs/languageserverprotocol/clientcapabilities.h136
-rw-r--r--src/libs/languageserverprotocol/completion.cpp14
-rw-r--r--src/libs/languageserverprotocol/completion.h34
-rw-r--r--src/libs/languageserverprotocol/diagnostics.h2
-rw-r--r--src/libs/languageserverprotocol/initializemessages.cpp24
-rw-r--r--src/libs/languageserverprotocol/initializemessages.h16
-rw-r--r--src/libs/languageserverprotocol/jsonobject.h28
-rw-r--r--src/libs/languageserverprotocol/jsonrpcmessages.h38
-rw-r--r--src/libs/languageserverprotocol/languagefeatures.cpp22
-rw-r--r--src/libs/languageserverprotocol/languagefeatures.h42
-rw-r--r--src/libs/languageserverprotocol/lsptypes.cpp26
-rw-r--r--src/libs/languageserverprotocol/lsptypes.h30
-rw-r--r--src/libs/languageserverprotocol/lsputils.h2
-rw-r--r--src/libs/languageserverprotocol/messages.h2
-rw-r--r--src/libs/languageserverprotocol/progresssupport.h8
-rw-r--r--src/libs/languageserverprotocol/semantictokens.h4
-rw-r--r--src/libs/languageserverprotocol/servercapabilities.cpp121
-rw-r--r--src/libs/languageserverprotocol/servercapabilities.h86
-rw-r--r--src/libs/languageserverprotocol/textsynchronization.h8
-rw-r--r--src/libs/languageserverprotocol/workspace.h8
21 files changed, 344 insertions, 329 deletions
diff --git a/src/libs/languageserverprotocol/clientcapabilities.cpp b/src/libs/languageserverprotocol/clientcapabilities.cpp
index f92103cf35..b7c5c606bd 100644
--- a/src/libs/languageserverprotocol/clientcapabilities.cpp
+++ b/src/libs/languageserverprotocol/clientcapabilities.cpp
@@ -5,14 +5,13 @@
namespace LanguageServerProtocol {
-Utils::optional<QList<SymbolKind> > SymbolCapabilities::SymbolKindCapabilities::valueSet() const
+std::optional<QList<SymbolKind>> SymbolCapabilities::SymbolKindCapabilities::valueSet() const
{
- if (Utils::optional<QList<int>> array = optionalArray<int>(valueSetKey)) {
- return Utils::make_optional(Utils::transform(*array, [] (int value) {
- return static_cast<SymbolKind>(value);
- }));
+ if (std::optional<QList<int>> array = optionalArray<int>(valueSetKey)) {
+ return std::make_optional(
+ Utils::transform(*array, [](int value) { return static_cast<SymbolKind>(value); }));
}
- return Utils::nullopt;
+ return std::nullopt;
}
void SymbolCapabilities::SymbolKindCapabilities::setValueSet(const QList<SymbolKind> &valueSet)
@@ -25,7 +24,7 @@ WorkspaceClientCapabilities::WorkspaceClientCapabilities()
setWorkspaceFolders(true);
}
-Utils::optional<std::variant<bool, QJsonObject>> SemanticTokensClientCapabilities::Requests::range()
+std::optional<std::variant<bool, QJsonObject>> SemanticTokensClientCapabilities::Requests::range()
const
{
using RetType = std::variant<bool, QJsonObject>;
@@ -34,7 +33,7 @@ Utils::optional<std::variant<bool, QJsonObject>> SemanticTokensClientCapabilitie
return RetType(rangeOptions.toBool());
if (rangeOptions.isObject())
return RetType(rangeOptions.toObject());
- return Utils::nullopt;
+ return std::nullopt;
}
void SemanticTokensClientCapabilities::Requests::setRange(
@@ -43,7 +42,7 @@ void SemanticTokensClientCapabilities::Requests::setRange(
insertVariant<bool, QJsonObject>(rangeKey, range);
}
-Utils::optional<std::variant<bool, FullSemanticTokenOptions>>
+std::optional<std::variant<bool, FullSemanticTokenOptions>>
SemanticTokensClientCapabilities::Requests::full() const
{
using RetType = std::variant<bool, FullSemanticTokenOptions>;
@@ -52,7 +51,7 @@ SemanticTokensClientCapabilities::Requests::full() const
return RetType(fullOptions.toBool());
if (fullOptions.isObject())
return RetType(FullSemanticTokenOptions(fullOptions.toObject()));
- return Utils::nullopt;
+ return std::nullopt;
}
void SemanticTokensClientCapabilities::Requests::setFull(
@@ -61,8 +60,7 @@ void SemanticTokensClientCapabilities::Requests::setFull(
insertVariant<bool, FullSemanticTokenOptions>(fullKey, full);
}
-Utils::optional<SemanticTokensClientCapabilities> TextDocumentClientCapabilities::semanticTokens()
- const
+std::optional<SemanticTokensClientCapabilities> TextDocumentClientCapabilities::semanticTokens() const
{
return optionalValue<SemanticTokensClientCapabilities>(semanticTokensKey);
}
diff --git a/src/libs/languageserverprotocol/clientcapabilities.h b/src/libs/languageserverprotocol/clientcapabilities.h
index 4bbfaf723d..409081a230 100644
--- a/src/libs/languageserverprotocol/clientcapabilities.h
+++ b/src/libs/languageserverprotocol/clientcapabilities.h
@@ -14,7 +14,10 @@ class LANGUAGESERVERPROTOCOL_EXPORT DynamicRegistrationCapabilities : public Jso
public:
using JsonObject::JsonObject;
- Utils::optional<bool> dynamicRegistration() const { return optionalValue<bool>(dynamicRegistrationKey); }
+ std::optional<bool> dynamicRegistration() const
+ {
+ return optionalValue<bool>(dynamicRegistrationKey);
+ }
void setDynamicRegistration(bool dynamicRegistration) { insert(dynamicRegistrationKey, dynamicRegistration); }
void clearDynamicRegistration() { remove(dynamicRegistrationKey); }
};
@@ -28,7 +31,7 @@ public:
* The client will send the `textDocument/semanticTokens/full/delta`
* request if the server provides a corresponding handler.
*/
- Utils::optional<bool> delta() const { return optionalValue<bool>(deltaKey); }
+ std::optional<bool> delta() const { return optionalValue<bool>(deltaKey); }
void setDelta(bool delta) { insert(deltaKey, delta); }
void clearDelta() { remove(deltaKey); }
};
@@ -56,7 +59,7 @@ public:
* The client will send the `textDocument/semanticTokens/range` request
* if the server provides a corresponding handler.
*/
- Utils::optional<std::variant<bool, QJsonObject>> range() const;
+ std::optional<std::variant<bool, QJsonObject>> range() const;
void setRange(const std::variant<bool, QJsonObject> &range);
void clearRange() { remove(rangeKey); }
@@ -64,7 +67,7 @@ public:
* The client will send the `textDocument/semanticTokens/full` request
* if the server provides a corresponding handler.
*/
- Utils::optional<std::variant<bool, FullSemanticTokenOptions>> full() const;
+ std::optional<std::variant<bool, FullSemanticTokenOptions>> full() const;
void setFull(const std::variant<bool, FullSemanticTokenOptions> &full);
void clearFull() { remove(fullKey); }
};
@@ -85,12 +88,18 @@ public:
void setFormats(const QList<QString> &value) { insertArray(formatsKey, value); }
/// Whether the client supports tokens that can overlap each other.
- Utils::optional<bool> overlappingTokenSupport() const { return optionalValue<bool>(overlappingTokenSupportKey); }
+ std::optional<bool> overlappingTokenSupport() const
+ {
+ return optionalValue<bool>(overlappingTokenSupportKey);
+ }
void setOverlappingTokenSupport(bool overlappingTokenSupport) { insert(overlappingTokenSupportKey, overlappingTokenSupport); }
void clearOverlappingTokenSupport() { remove(overlappingTokenSupportKey); }
/// Whether the client supports tokens that can span multiple lines.
- Utils::optional<bool> multiLineTokenSupport() const { return optionalValue<bool>(multiLineTokenSupportKey); }
+ std::optional<bool> multiLineTokenSupport() const
+ {
+ return optionalValue<bool>(multiLineTokenSupportKey);
+ }
void setMultiLineTokenSupport(bool multiLineTokenSupport) { insert(multiLineTokenSupportKey, multiLineTokenSupport); }
void clearMultiLineTokenSupport() { remove(multiLineTokenSupportKey); }
@@ -117,18 +126,18 @@ public:
* the symbol kinds from `File` to `Array` as defined in
* the initial version of the protocol.
*/
- Utils::optional<QList<SymbolKind>> valueSet() const;
+ std::optional<QList<SymbolKind>> valueSet() const;
void setValueSet(const QList<SymbolKind> &valueSet);
void clearValueSet() { remove(valueSetKey); }
};
// Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
- Utils::optional<SymbolKindCapabilities> symbolKind() const
+ std::optional<SymbolKindCapabilities> symbolKind() const
{ return optionalValue<SymbolKindCapabilities>(symbolKindKey); }
void setSymbolKind(const SymbolKindCapabilities &symbolKind) { insert(symbolKindKey, symbolKind); }
void clearSymbolKind() { remove(symbolKindKey); }
- Utils::optional<bool> hierarchicalDocumentSymbolSupport() const
+ std::optional<bool> hierarchicalDocumentSymbolSupport() const
{ return optionalValue<bool>(hierarchicalDocumentSymbolSupportKey); }
void setHierarchicalDocumentSymbolSupport(bool hierarchicalDocumentSymbolSupport)
{ insert(hierarchicalDocumentSymbolSupportKey, hierarchicalDocumentSymbolSupport); }
@@ -146,7 +155,7 @@ public:
using DynamicRegistrationCapabilities::DynamicRegistrationCapabilities;
// The client supports sending will save notifications.
- Utils::optional<bool> willSave() const { return optionalValue<bool>(willSaveKey); }
+ std::optional<bool> willSave() const { return optionalValue<bool>(willSaveKey); }
void setWillSave(bool willSave) { insert(willSaveKey, willSave); }
void clearWillSave() { remove(willSaveKey); }
@@ -155,19 +164,19 @@ public:
* waits for a response providing text edits which will
* be applied to the document before it is saved.
*/
- Utils::optional<bool> willSaveWaitUntil() const
+ std::optional<bool> willSaveWaitUntil() const
{ return optionalValue<bool>(willSaveWaitUntilKey); }
void setWillSaveWaitUntil(bool willSaveWaitUntil)
{ insert(willSaveWaitUntilKey, willSaveWaitUntil); }
void clearWillSaveWaitUntil() { remove(willSaveWaitUntilKey); }
// The client supports did save notifications.
- Utils::optional<bool> didSave() const { return optionalValue<bool>(didSaveKey); }
+ std::optional<bool> didSave() const { return optionalValue<bool>(didSaveKey); }
void setDidSave(bool didSave) { insert(didSaveKey, didSave); }
void clearDidSave() { remove(didSaveKey); }
};
- Utils::optional<SynchronizationCapabilities> synchronization() const
+ std::optional<SynchronizationCapabilities> synchronization() const
{ return optionalValue<SynchronizationCapabilities>(synchronizationKey); }
void setSynchronization(const SynchronizationCapabilities &synchronization)
{ insert(synchronizationKey, synchronization); }
@@ -191,14 +200,14 @@ public:
* the end of the snippet. Placeholders with equal identifiers are linked,
* that is typing in one will update others too.
*/
- Utils::optional<bool> snippetSupport() const
+ std::optional<bool> snippetSupport() const
{ return optionalValue<bool>(snippetSupportKey); }
void setSnippetSupport(bool snippetSupport)
{ insert(snippetSupportKey, snippetSupport); }
void clearSnippetSupport() { remove(snippetSupportKey); }
// Client supports commit characters on a completion item.
- Utils::optional<bool> commitCharacterSupport() const
+ std::optional<bool> commitCharacterSupport() const
{ return optionalValue<bool>(commitCharacterSupportKey); }
void setCommitCharacterSupport(bool commitCharacterSupport)
{ insert(commitCharacterSupportKey, commitCharacterSupport); }
@@ -208,13 +217,13 @@ public:
* Client supports the follow content formats for the documentation
* property. The order describes the preferred format of the client.
*/
- Utils::optional<QList<MarkupKind>> documentationFormat() const;
+ std::optional<QList<MarkupKind>> documentationFormat() const;
void setDocumentationFormat(const QList<MarkupKind> &documentationFormat);
void clearDocumentationFormat() { remove(documentationFormatKey); }
};
// The client supports the following `CompletionItem` specific capabilities.
- Utils::optional<CompletionItemCapbilities> completionItem() const
+ std::optional<CompletionItemCapbilities> completionItem() const
{ return optionalValue<CompletionItemCapbilities>(completionItemKey); }
void setCompletionItem(const CompletionItemCapbilities &completionItem)
{ insert(completionItemKey, completionItem); }
@@ -235,12 +244,12 @@ public:
* the completion items kinds from `Text` to `Reference` as defined in
* the initial version of the protocol.
*/
- Utils::optional<QList<CompletionItemKind::Kind>> valueSet() const;
+ std::optional<QList<CompletionItemKind::Kind>> valueSet() const;
void setValueSet(const QList<CompletionItemKind::Kind> &valueSet);
void clearValueSet() { remove(valueSetKey); }
};
- Utils::optional<CompletionItemKindCapabilities> completionItemKind() const
+ std::optional<CompletionItemKindCapabilities> completionItemKind() const
{ return optionalValue<CompletionItemKindCapabilities>(completionItemKindKey); }
void setCompletionItemKind(const CompletionItemKindCapabilities &completionItemKind)
{ insert(completionItemKindKey, completionItemKind); }
@@ -250,13 +259,16 @@ public:
* The client supports to send additional context information for a
* `textDocument/completion` request.
*/
- Utils::optional<bool> contextSupport() const { return optionalValue<bool>(contextSupportKey); }
+ std::optional<bool> contextSupport() const
+ {
+ return optionalValue<bool>(contextSupportKey);
+ }
void setContextSupport(bool contextSupport) { insert(contextSupportKey, contextSupport); }
void clearContextSupport() { remove(contextSupportKey); }
};
// Capabilities specific to the `textDocument/completion`
- Utils::optional<CompletionCapabilities> completion() const
+ std::optional<CompletionCapabilities> completion() const
{ return optionalValue<CompletionCapabilities>(completionKey); }
void setCompletion(const CompletionCapabilities &completion)
{ insert(completionKey, completion); }
@@ -270,12 +282,15 @@ public:
* Client supports the follow content formats for the content
* property. The order describes the preferred format of the client.
*/
- Utils::optional<QList<MarkupKind>> contentFormat() const;
+ std::optional<QList<MarkupKind>> contentFormat() const;
void setContentFormat(const QList<MarkupKind> &contentFormat);
void clearContentFormat() { remove(contentFormatKey); }
};
- Utils::optional<HoverCapabilities> hover() const { return optionalValue<HoverCapabilities>(hoverKey); }
+ std::optional<HoverCapabilities> hover() const
+ {
+ return optionalValue<HoverCapabilities>(hoverKey);
+ }
void setHover(const HoverCapabilities &hover) { insert(hoverKey, hover); }
void clearHover() { remove(hoverKey); }
@@ -292,11 +307,11 @@ public:
* Client supports the follow content formats for the documentation
* property. The order describes the preferred format of the client.
*/
- Utils::optional<QList<MarkupKind>> documentationFormat() const;
+ std::optional<QList<MarkupKind>> documentationFormat() const;
void setDocumentationFormat(const QList<MarkupKind> &documentationFormat);
void clearDocumentationFormat() { remove(documentationFormatKey); }
- Utils::optional<bool> activeParameterSupport() const
+ std::optional<bool> activeParameterSupport() const
{ return optionalValue<bool>(activeParameterSupportKey); }
void setActiveParameterSupport(bool activeParameterSupport)
{ insert(activeParameterSupportKey, activeParameterSupport); }
@@ -304,7 +319,7 @@ public:
};
// The client supports the following `SignatureInformation` specific properties.
- Utils::optional<SignatureInformationCapabilities> signatureInformation() const
+ std::optional<SignatureInformationCapabilities> signatureInformation() const
{ return optionalValue<SignatureInformationCapabilities>(signatureInformationKey); }
void setSignatureInformation(const SignatureInformationCapabilities &signatureInformation)
{ insert(signatureInformationKey, signatureInformation); }
@@ -312,56 +327,56 @@ public:
};
// Capabilities specific to the `textDocument/signatureHelp`
- Utils::optional<SignatureHelpCapabilities> signatureHelp() const
+ std::optional<SignatureHelpCapabilities> signatureHelp() const
{ return optionalValue<SignatureHelpCapabilities>(signatureHelpKey); }
void setSignatureHelp(const SignatureHelpCapabilities &signatureHelp)
{ insert(signatureHelpKey, signatureHelp); }
void clearSignatureHelp() { remove(signatureHelpKey); }
// Whether references supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> references() const
+ std::optional<DynamicRegistrationCapabilities> references() const
{ return optionalValue<DynamicRegistrationCapabilities>(referencesKey); }
void setReferences(const DynamicRegistrationCapabilities &references)
{ insert(referencesKey, references); }
void clearReferences() { remove(referencesKey); }
// Whether document highlight supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> documentHighlight() const
+ std::optional<DynamicRegistrationCapabilities> documentHighlight() const
{ return optionalValue<DynamicRegistrationCapabilities>(documentHighlightKey); }
void setDocumentHighlight(const DynamicRegistrationCapabilities &documentHighlight)
{ insert(documentHighlightKey, documentHighlight); }
void clearDocumentHighlight() { remove(documentHighlightKey); }
// Capabilities specific to the `textDocument/documentSymbol`
- Utils::optional<SymbolCapabilities> documentSymbol() const
+ std::optional<SymbolCapabilities> documentSymbol() const
{ return optionalValue<SymbolCapabilities>(documentSymbolKey); }
void setDocumentSymbol(const SymbolCapabilities &documentSymbol)
{ insert(documentSymbolKey, documentSymbol); }
void clearDocumentSymbol() { remove(documentSymbolKey); }
// Whether formatting supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> formatting() const
+ std::optional<DynamicRegistrationCapabilities> formatting() const
{ return optionalValue<DynamicRegistrationCapabilities>(formattingKey); }
void setFormatting(const DynamicRegistrationCapabilities &formatting)
{ insert(formattingKey, formatting); }
void clearFormatting() { remove(formattingKey); }
// Whether range formatting supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> rangeFormatting() const
+ std::optional<DynamicRegistrationCapabilities> rangeFormatting() const
{ return optionalValue<DynamicRegistrationCapabilities>(rangeFormattingKey); }
void setRangeFormatting(const DynamicRegistrationCapabilities &rangeFormatting)
{ insert(rangeFormattingKey, rangeFormatting); }
void clearRangeFormatting() { remove(rangeFormattingKey); }
// Whether on type formatting supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> onTypeFormatting() const
+ std::optional<DynamicRegistrationCapabilities> onTypeFormatting() const
{ return optionalValue<DynamicRegistrationCapabilities>(onTypeFormattingKey); }
void setOnTypeFormatting(const DynamicRegistrationCapabilities &onTypeFormatting)
{ insert(onTypeFormattingKey, onTypeFormatting); }
void clearOnTypeFormatting() { remove(onTypeFormattingKey); }
// Whether definition supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> definition() const
+ std::optional<DynamicRegistrationCapabilities> definition() const
{ return optionalValue<DynamicRegistrationCapabilities>(definitionKey); }
void setDefinition(const DynamicRegistrationCapabilities &definition)
{ insert(definitionKey, definition); }
@@ -372,7 +387,7 @@ public:
* the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
* return value for the corresponding server capability as well.
*/
- Utils::optional<DynamicRegistrationCapabilities> typeDefinition() const
+ std::optional<DynamicRegistrationCapabilities> typeDefinition() const
{ return optionalValue<DynamicRegistrationCapabilities>(typeDefinitionKey); }
void setTypeDefinition(const DynamicRegistrationCapabilities &typeDefinition)
{ insert(typeDefinitionKey, typeDefinition); }
@@ -383,7 +398,7 @@ public:
* the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
* return value for the corresponding server capability as well.
*/
- Utils::optional<DynamicRegistrationCapabilities> implementation() const
+ std::optional<DynamicRegistrationCapabilities> implementation() const
{ return optionalValue<DynamicRegistrationCapabilities>(implementationKey); }
void setImplementation(const DynamicRegistrationCapabilities &implementation)
{ insert(implementationKey, implementation); }
@@ -421,7 +436,7 @@ public:
bool isValid() const override { return contains(codeActionKindKey); }
};
- Utils::optional<CodeActionLiteralSupport> codeActionLiteralSupport() const
+ std::optional<CodeActionLiteralSupport> codeActionLiteralSupport() const
{ return optionalValue<CodeActionLiteralSupport>(codeActionLiteralSupportKey); }
void setCodeActionLiteralSupport(const CodeActionLiteralSupport &codeActionLiteralSupport)
{ insert(codeActionLiteralSupportKey, codeActionLiteralSupport); }
@@ -429,21 +444,21 @@ public:
};
// Whether code action supports dynamic registration.
- Utils::optional<CodeActionCapabilities> codeAction() const
+ std::optional<CodeActionCapabilities> codeAction() const
{ return optionalValue<CodeActionCapabilities>(codeActionKey); }
void setCodeAction(const CodeActionCapabilities &codeAction)
{ insert(codeActionKey, codeAction); }
void clearCodeAction() { remove(codeActionKey); }
// Whether code lens supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> codeLens() const
+ std::optional<DynamicRegistrationCapabilities> codeLens() const
{ return optionalValue<DynamicRegistrationCapabilities>(codeLensKey); }
void setCodeLens(const DynamicRegistrationCapabilities &codeLens)
{ insert(codeLensKey, codeLens); }
void clearCodeLens() { remove(codeLensKey); }
// Whether document link supports dynamic registration.
- Utils::optional<DynamicRegistrationCapabilities> documentLink() const
+ std::optional<DynamicRegistrationCapabilities> documentLink() const
{ return optionalValue<DynamicRegistrationCapabilities>(documentLinkKey); }
void setDocumentLink(const DynamicRegistrationCapabilities &documentLink)
{ insert(documentLinkKey, documentLink); }
@@ -454,7 +469,7 @@ public:
* the client supports the new `(ColorProviderOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions)`
* return value for the corresponding server capability as well.
*/
- Utils::optional<DynamicRegistrationCapabilities> colorProvider() const
+ std::optional<DynamicRegistrationCapabilities> colorProvider() const
{ return optionalValue<DynamicRegistrationCapabilities>(colorProviderKey); }
void setColorProvider(const DynamicRegistrationCapabilities &colorProvider)
{ insert(colorProviderKey, colorProvider); }
@@ -471,19 +486,22 @@ public:
* @since version 3.12.0
*/
- Utils::optional<bool> prepareSupport() const { return optionalValue<bool>(prepareSupportKey); }
+ std::optional<bool> prepareSupport() const
+ {
+ return optionalValue<bool>(prepareSupportKey);
+ }
void setPrepareSupport(bool prepareSupport) { insert(prepareSupportKey, prepareSupport); }
void clearPrepareSupport() { remove(prepareSupportKey); }
};
// Whether rename supports dynamic registration.
- Utils::optional<RenameClientCapabilities> rename() const
+ std::optional<RenameClientCapabilities> rename() const
{ return optionalValue<RenameClientCapabilities>(renameKey); }
void setRename(const RenameClientCapabilities &rename)
{ insert(renameKey, rename); }
void clearRename() { remove(renameKey); }
- Utils::optional<SemanticTokensClientCapabilities> semanticTokens() const;
+ std::optional<SemanticTokensClientCapabilities> semanticTokens() const;
void setSemanticTokens(const SemanticTokensClientCapabilities &semanticTokens);
void clearSemanticTokens() { remove(semanticTokensKey); }
};
@@ -501,7 +519,7 @@ public:
* and is useful for situation where a server for example detect a project
* wide change that requires such a calculation.
*/
- Utils::optional<bool> refreshSupport() const { return optionalValue<bool>(refreshSupportKey); }
+ std::optional<bool> refreshSupport() const { return optionalValue<bool>(refreshSupportKey); }
void setRefreshSupport(bool refreshSupport) { insert(refreshSupportKey, refreshSupport); }
void clearRefreshSupport() { remove(refreshSupportKey); }
};
@@ -516,7 +534,7 @@ public:
* The client supports applying batch edits to the workspace by supporting the request
* 'workspace/applyEdit'
*/
- Utils::optional<bool> applyEdit() const { return optionalValue<bool>(applyEditKey); }
+ std::optional<bool> applyEdit() const { return optionalValue<bool>(applyEditKey); }
void setApplyEdit(bool applyEdit) { insert(applyEditKey, applyEdit); }
void clearApplyEdit() { remove(applyEditKey); }
@@ -526,7 +544,7 @@ public:
using JsonObject::JsonObject;
// The client supports versioned document changes in `WorkspaceEdit`s
- Utils::optional<bool> documentChanges() const
+ std::optional<bool> documentChanges() const
{ return optionalValue<bool>(documentChangesKey); }
void setDocumentChanges(bool documentChanges)
{ insert(documentChangesKey, documentChanges); }
@@ -534,52 +552,52 @@ public:
};
// Capabilities specific to `WorkspaceEdit`s
- Utils::optional<WorkspaceEditCapabilities> workspaceEdit() const
+ std::optional<WorkspaceEditCapabilities> workspaceEdit() const
{ return optionalValue<WorkspaceEditCapabilities>(workspaceEditKey); }
void setWorkspaceEdit(const WorkspaceEditCapabilities &workspaceEdit)
{ insert(workspaceEditKey, workspaceEdit); }
void clearWorkspaceEdit() { remove(workspaceEditKey); }
// Capabilities specific to the `workspace/didChangeConfiguration` notification.
- Utils::optional<DynamicRegistrationCapabilities> didChangeConfiguration() const
+ std::optional<DynamicRegistrationCapabilities> didChangeConfiguration() const
{ return optionalValue<DynamicRegistrationCapabilities>(didChangeConfigurationKey); }
void setDidChangeConfiguration(const DynamicRegistrationCapabilities &didChangeConfiguration)
{ insert(didChangeConfigurationKey, didChangeConfiguration); }
void clearDidChangeConfiguration() { remove(didChangeConfigurationKey); }
// Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
- Utils::optional<DynamicRegistrationCapabilities> didChangeWatchedFiles() const
+ std::optional<DynamicRegistrationCapabilities> didChangeWatchedFiles() const
{ return optionalValue<DynamicRegistrationCapabilities>(didChangeWatchedFilesKey); }
void setDidChangeWatchedFiles(const DynamicRegistrationCapabilities &didChangeWatchedFiles)
{ insert(didChangeWatchedFilesKey, didChangeWatchedFiles); }
void clearDidChangeWatchedFiles() { remove(didChangeWatchedFilesKey); }
// Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
- Utils::optional<SymbolCapabilities> symbol() const
+ std::optional<SymbolCapabilities> symbol() const
{ return optionalValue<SymbolCapabilities>(symbolKey); }
void setSymbol(const SymbolCapabilities &symbol) { insert(symbolKey, symbol); }
void clearSymbol() { remove(symbolKey); }
// Capabilities specific to the `workspace/executeCommand` request.
- Utils::optional<DynamicRegistrationCapabilities> executeCommand() const
+ std::optional<DynamicRegistrationCapabilities> executeCommand() const
{ return optionalValue<DynamicRegistrationCapabilities>(executeCommandKey); }
void setExecuteCommand(const DynamicRegistrationCapabilities &executeCommand)
{ insert(executeCommandKey, executeCommand); }
void clearExecuteCommand() { remove(executeCommandKey); }
// The client has support for workspace folders. Since 3.6.0
- Utils::optional<bool> workspaceFolders() const
+ std::optional<bool> workspaceFolders() const
{ return optionalValue<bool>(workspaceFoldersKey); }
void setWorkspaceFolders(bool workspaceFolders)
{ insert(workspaceFoldersKey, workspaceFolders); }
void clearWorkspaceFolders() { remove(workspaceFoldersKey); }
// The client supports `workspace/configuration` requests. Since 3.6.0
- Utils::optional<bool> configuration() const { return optionalValue<bool>(configurationKey); }
+ std::optional<bool> configuration() const { return optionalValue<bool>(configurationKey); }
void setConfiguration(bool configuration) { insert(configurationKey, configuration); }
void clearConfiguration() { remove(configurationKey); }
- Utils::optional<SemanticTokensWorkspaceClientCapabilities> semanticTokens() const
+ std::optional<SemanticTokensWorkspaceClientCapabilities> semanticTokens() const
{ return optionalValue<SemanticTokensWorkspaceClientCapabilities>(semanticTokensKey); }
void setSemanticTokens(const SemanticTokensWorkspaceClientCapabilities &semanticTokens)
{ insert(semanticTokensKey, semanticTokens); }
@@ -597,7 +615,7 @@ public:
* in the request specific server capabilities.
*
*/
- Utils::optional<bool> workDoneProgress() const
+ std::optional<bool> workDoneProgress() const
{ return optionalValue<bool>(workDoneProgressKey); }
void setWorkDoneProgress(bool workDoneProgress)
{ insert(workDoneProgressKey, workDoneProgress); }
@@ -613,21 +631,21 @@ public:
using JsonObject::JsonObject;
// Workspace specific client capabilities.
- Utils::optional<WorkspaceClientCapabilities> workspace() const
+ std::optional<WorkspaceClientCapabilities> workspace() const
{ return optionalValue<WorkspaceClientCapabilities>(workspaceKey); }
void setWorkspace(const WorkspaceClientCapabilities &workspace)
{ insert(workspaceKey, workspace); }
void clearWorkspace() { remove(workspaceKey); }
// Text document specific client capabilities.
- Utils::optional<TextDocumentClientCapabilities> textDocument() const
+ std::optional<TextDocumentClientCapabilities> textDocument() const
{ return optionalValue<TextDocumentClientCapabilities>(textDocumentKey); }
void setTextDocument(const TextDocumentClientCapabilities &textDocument)
{ insert(textDocumentKey, textDocument); }
void clearTextDocument() { remove(textDocumentKey); }
// Window specific client capabilities.
- Utils::optional<WindowClientClientCapabilities> window() const
+ std::optional<WindowClientClientCapabilities> window() const
{ return optionalValue<WindowClientClientCapabilities>(windowKey); }
void setWindow(const WindowClientClientCapabilities &window)
{ insert(windowKey, window); }
diff --git a/src/libs/languageserverprotocol/completion.cpp b/src/libs/languageserverprotocol/completion.cpp
index 99e204ccd7..543abb9cfc 100644
--- a/src/libs/languageserverprotocol/completion.cpp
+++ b/src/libs/languageserverprotocol/completion.cpp
@@ -12,22 +12,22 @@ CompletionRequest::CompletionRequest(const CompletionParams &params)
: Request(methodName, params)
{ }
-Utils::optional<MarkupOrString> CompletionItem::documentation() const
+std::optional<MarkupOrString> CompletionItem::documentation() const
{
QJsonValue documentation = value(documentationKey);
if (documentation.isUndefined())
- return Utils::nullopt;
+ return std::nullopt;
return MarkupOrString(documentation);
}
-Utils::optional<CompletionItem::InsertTextFormat> CompletionItem::insertTextFormat() const
+std::optional<CompletionItem::InsertTextFormat> CompletionItem::insertTextFormat() const
{
- if (Utils::optional<int> value = optionalValue<int>(insertTextFormatKey))
- return Utils::make_optional(CompletionItem::InsertTextFormat(*value));
- return Utils::nullopt;
+ if (std::optional<int> value = optionalValue<int>(insertTextFormatKey))
+ return std::make_optional(CompletionItem::InsertTextFormat(*value));
+ return std::nullopt;
}
-Utils::optional<QList<CompletionItem::CompletionItemTag>> CompletionItem::tags() const
+std::optional<QList<CompletionItem::CompletionItemTag>> CompletionItem::tags() const
{
if (const auto value = optionalValue<QJsonArray>(tagsKey)) {
QList<CompletionItemTag> tags;
diff --git a/src/libs/languageserverprotocol/completion.h b/src/libs/languageserverprotocol/completion.h
index 6e623acaca..9537df5538 100644
--- a/src/libs/languageserverprotocol/completion.h
+++ b/src/libs/languageserverprotocol/completion.h
@@ -43,7 +43,7 @@ public:
* The trigger character (a single character) that has trigger code complete.
* Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
*/
- Utils::optional<QString> triggerCharacter() const
+ std::optional<QString> triggerCharacter() const
{ return optionalValue<QString>(triggerCharacterKey); }
void setTriggerCharacter(const QString &triggerCharacter)
{ insert(triggerCharacterKey, triggerCharacter); }
@@ -56,7 +56,7 @@ public:
* The completion context. This is only available it the client specifies
* to send this using `ClientCapabilities.textDocument.completion.contextSupport === true`
*/
- Utils::optional<CompletionContext> context() const
+ std::optional<CompletionContext> context() const
{ return optionalValue<CompletionContext>(contextKey); }
void setContext(const CompletionContext &context)
{ insert(contextKey, context); }
@@ -79,30 +79,30 @@ public:
void setLabel(const QString &label) { insert(labelKey, label); }
/// The kind of this completion item. Based of the kind an icon is chosen by the editor.
- Utils::optional<int> kind() const { return optionalValue<int>(kindKey); }
+ std::optional<int> kind() const { return optionalValue<int>(kindKey); }
void setKind(int kind) { insert(kindKey, kind); }
void clearKind() { remove(kindKey); }
/// A human-readable string with additional information about this item, like type information.
- Utils::optional<QString> detail() const { return optionalValue<QString>(detailKey); }
+ std::optional<QString> detail() const { return optionalValue<QString>(detailKey); }
void setDetail(const QString &detail) { insert(detailKey, detail); }
void clearDetail() { remove(detailKey); }
/// A human-readable string that represents a doc-comment.
- Utils::optional<MarkupOrString> documentation() const;
+ std::optional<MarkupOrString> documentation() const;
void setDocumentation(const MarkupOrString &documentation)
{ insert(documentationKey, documentation.toJson()); }
void cleatDocumentation() { remove(documentationKey); }
/// A string that should be used when comparing this item
/// with other items. When `falsy` the label is used.
- Utils::optional<QString> sortText() const { return optionalValue<QString>(sortTextKey); }
+ std::optional<QString> sortText() const { return optionalValue<QString>(sortTextKey); }
void setSortText(const QString &sortText) { insert(sortTextKey, sortText); }
void clearSortText() { remove(sortTextKey); }
/// A string that should be used when filtering a set of
/// completion items. When `falsy` the label is used.
- Utils::optional<QString> filterText() const { return optionalValue<QString>(filterTextKey); }
+ std::optional<QString> filterText() const { return optionalValue<QString>(filterTextKey); }
void setFilterText(const QString &filterText) { insert(filterTextKey, filterText); }
void clearFilterText() { remove(filterTextKey); }
@@ -119,7 +119,7 @@ public:
*
* @deprecated Use textEdit instead.
*/
- Utils::optional<QString> insertText() const { return optionalValue<QString>(insertTextKey); }
+ std::optional<QString> insertText() const { return optionalValue<QString>(insertTextKey); }
void setInsertText(const QString &insertText) { insert(insertTextKey, insertText); }
void clearInsertText() { remove(insertTextKey); }
@@ -140,7 +140,7 @@ public:
/// The format of the insert text. The format applies to both the `insertText` property
/// and the `newText` property of a provided `textEdit`.
- Utils::optional<InsertTextFormat> insertTextFormat() const;
+ std::optional<InsertTextFormat> insertTextFormat() const;
void setInsertTextFormat(const InsertTextFormat &insertTextFormat)
{ insert(insertTextFormatKey, insertTextFormat); }
void clearInsertTextFormat() { remove(insertTextFormatKey); }
@@ -152,7 +152,7 @@ public:
* *Note:* The range of the edit must be a single line range and it must contain the position at which completion
* has been requested.
*/
- Utils::optional<TextEdit> textEdit() const { return optionalValue<TextEdit>(textEditKey); }
+ std::optional<TextEdit> textEdit() const { return optionalValue<TextEdit>(textEditKey); }
void setTextEdit(const TextEdit &textEdit) { insert(textEditKey, textEdit); }
void clearTextEdit() { remove(textEditKey); }
@@ -161,7 +161,7 @@ public:
* selecting this completion. Edits must not overlap with the main edit
* nor with themselves.
*/
- Utils::optional<QList<TextEdit>> additionalTextEdits() const
+ std::optional<QList<TextEdit>> additionalTextEdits() const
{ return optionalArray<TextEdit>(additionalTextEditsKey); }
void setAdditionalTextEdits(const QList<TextEdit> &additionalTextEdits)
{ insertArray(additionalTextEditsKey, additionalTextEdits); }
@@ -172,7 +172,7 @@ public:
* then type that character. *Note* that all commit characters should have `length=1` and that superfluous
* characters will be ignored.
*/
- Utils::optional<QList<QString>> commitCharacters() const
+ std::optional<QList<QString>> commitCharacters() const
{ return optionalArray<QString>(commitCharactersKey); }
void setCommitCharacters(const QList<QString> &commitCharacters)
{ insertArray(commitCharactersKey, commitCharacters); }
@@ -183,7 +183,7 @@ public:
* additional modifications to the current document should be described with the
* additionalTextEdits-property.
*/
- Utils::optional<Command> command() const { return optionalValue<Command>(commandKey); }
+ std::optional<Command> command() const { return optionalValue<Command>(commandKey); }
void setCommand(const Command &command) { insert(commandKey, command); }
void clearCommand() { remove(commandKey); }
@@ -191,7 +191,7 @@ public:
* An data entry field that is preserved on a completion item between
* a completion and a completion resolve request.
*/
- Utils::optional<QJsonValue> data() const { return optionalValue<QJsonValue>(dataKey); }
+ std::optional<QJsonValue> data() const { return optionalValue<QJsonValue>(dataKey); }
void setData(const QJsonValue &data) { insert(dataKey, data); }
void clearData() { remove(dataKey); }
@@ -208,13 +208,13 @@ public:
* Tags for this completion item.
* @since 3.15.0
*/
- Utils::optional<QList<CompletionItemTag>> tags() const;
+ std::optional<QList<CompletionItemTag>> tags() const;
/**
* Indicates if this item is deprecated.
* @deprecated Use `tags` instead if supported.
*/
- Utils::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
+ std::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
bool isValid() const override { return contains(labelKey); }
};
@@ -232,7 +232,7 @@ public:
void setIsIncomplete(bool isIncomplete) { insert(isIncompleteKey, isIncomplete); }
/// The completion items.
- Utils::optional<QList<CompletionItem>> items() const { return array<CompletionItem>(itemsKey); }
+ std::optional<QList<CompletionItem>> items() const { return array<CompletionItem>(itemsKey); }
void setItems(const QList<CompletionItem> &items) { insertArray(itemsKey, items); }
void clearItems() { remove(itemsKey); }
diff --git a/src/libs/languageserverprotocol/diagnostics.h b/src/libs/languageserverprotocol/diagnostics.h
index 181172e875..f13cdac786 100644
--- a/src/libs/languageserverprotocol/diagnostics.h
+++ b/src/libs/languageserverprotocol/diagnostics.h
@@ -20,7 +20,7 @@ public:
void setDiagnostics(const QList<Diagnostic> &diagnostics)
{ insertArray(diagnosticsKey, diagnostics); }
- Utils::optional<int> version() const { return optionalValue<int>(versionKey); }
+ std::optional<int> version() const { return optionalValue<int>(versionKey); }
void setVersion(int version) { insert(versionKey, version); }
void clearVersion() { remove(versionKey); }
diff --git a/src/libs/languageserverprotocol/initializemessages.cpp b/src/libs/languageserverprotocol/initializemessages.cpp
index 288d7efc5d..4b6df50cfd 100644
--- a/src/libs/languageserverprotocol/initializemessages.cpp
+++ b/src/libs/languageserverprotocol/initializemessages.cpp
@@ -32,7 +32,7 @@ QString Trace::toString() const
}
#undef RETURN_CASE
-Utils::optional<QList<MarkupKind>>
+std::optional<QList<MarkupKind>>
TextDocumentClientCapabilities::CompletionCapabilities::CompletionItemCapbilities::
documentationFormat() const
{
@@ -59,16 +59,16 @@ TextDocumentClientCapabilities::CompletionCapabilities::CompletionItemKindCapabi
CompletionItemKind::TypeParameter});
}
-Utils::optional<QList<CompletionItemKind::Kind>>
+std::optional<QList<CompletionItemKind::Kind>>
TextDocumentClientCapabilities::CompletionCapabilities::CompletionItemKindCapabilities::
valueSet() const
{
- if (Utils::optional<QList<int>> array = optionalArray<int>(valueSetKey)) {
- return Utils::make_optional(Utils::transform(*array, [] (int value) {
+ if (std::optional<QList<int>> array = optionalArray<int>(valueSetKey)) {
+ return std::make_optional(Utils::transform(*array, [](int value) {
return static_cast<CompletionItemKind::Kind>(value);
}));
}
- return Utils::nullopt;
+ return std::nullopt;
}
void
@@ -78,7 +78,7 @@ setValueSet(const QList<CompletionItemKind::Kind> &valueSet)
insert(valueSetKey, enumArrayToJsonArray<CompletionItemKind::Kind>(valueSet));
}
-Utils::optional<QList<MarkupKind> > TextDocumentClientCapabilities::HoverCapabilities::contentFormat() const
+std::optional<QList<MarkupKind> > TextDocumentClientCapabilities::HoverCapabilities::contentFormat() const
{
return optionalArray<MarkupKind>(contentFormatKey);
}
@@ -88,7 +88,7 @@ void TextDocumentClientCapabilities::HoverCapabilities::setContentFormat(const Q
insertArray(contentFormatKey, contentFormat);
}
-Utils::optional<QList<MarkupKind>>
+std::optional<QList<MarkupKind>>
TextDocumentClientCapabilities::SignatureHelpCapabilities::SignatureInformationCapabilities::
documentationFormat() const
{
@@ -110,20 +110,20 @@ InitializeParams::InitializeParams()
setTrace(s_trace);
}
-Utils::optional<QJsonObject> InitializeParams::initializationOptions() const
+std::optional<QJsonObject> InitializeParams::initializationOptions() const
{
const QJsonValue &optionsValue = value(initializationOptionsKey);
if (optionsValue.isObject())
return optionsValue.toObject();
- return Utils::nullopt;
+ return std::nullopt;
}
-Utils::optional<Trace> InitializeParams::trace() const
+std::optional<Trace> InitializeParams::trace() const
{
const QJsonValue &traceValue = value(traceKey);
if (traceValue.isUndefined())
- return Utils::nullopt;
- return Utils::make_optional(Trace(traceValue.toString()));
+ return std::nullopt;
+ return std::make_optional(Trace(traceValue.toString()));
}
InitializeRequest::InitializeRequest(const InitializeParams &params)
diff --git a/src/libs/languageserverprotocol/initializemessages.h b/src/libs/languageserverprotocol/initializemessages.h
index 29e924e6c9..3573cdd817 100644
--- a/src/libs/languageserverprotocol/initializemessages.h
+++ b/src/libs/languageserverprotocol/initializemessages.h
@@ -39,7 +39,7 @@ public:
QString name() const { return typedValue<QString>(nameKey); }
void setName(const QString &name) { insert(nameKey, name); }
- Utils::optional<QString> version() const { return optionalValue<QString>(versionKey); }
+ std::optional<QString> version() const { return optionalValue<QString>(versionKey); }
void setVersion(const QString &version) { insert(versionKey, version); }
void clearVersion() { remove(versionKey); }
};
@@ -65,7 +65,7 @@ public:
*
* @deprecated in favor of rootUri.
*/
- Utils::optional<LanguageClientValue<QString>> rootPath() const
+ std::optional<LanguageClientValue<QString>> rootPath() const
{ return optionalClientValue<QString>(rootPathKey); }
void setRootPath(const LanguageClientValue<QString> &path)
{ insert(rootPathKey, path); }
@@ -82,7 +82,7 @@ public:
{ insert(rootUriKey, uri); }
// User provided initialization options.
- Utils::optional<QJsonObject> initializationOptions() const;
+ std::optional<QJsonObject> initializationOptions() const;
void setInitializationOptions(const QJsonObject &options)
{ insert(initializationOptionsKey, options); }
void clearInitializationOptions() { remove(initializationOptionsKey); }
@@ -93,7 +93,7 @@ public:
{ insert(capabilitiesKey, capabilities); }
// The initial trace setting. If omitted trace is disabled ('off').
- Utils::optional<Trace> trace() const;
+ std::optional<Trace> trace() const;
void setTrace(Trace trace) { insert(traceKey, trace.toString()); }
void clearTrace() { remove(traceKey); }
@@ -105,13 +105,13 @@ public:
*
* Since 3.6.0
*/
- Utils::optional<LanguageClientArray<WorkSpaceFolder>> workspaceFolders() const
+ std::optional<LanguageClientArray<WorkSpaceFolder>> workspaceFolders() const
{ return optionalClientArray<WorkSpaceFolder>(workspaceFoldersKey); }
void setWorkSpaceFolders(const LanguageClientArray<WorkSpaceFolder> &folders)
{ insert(workspaceFoldersKey, folders.toJson()); }
void clearWorkSpaceFolders() { remove(workspaceFoldersKey); }
- Utils::optional<ClientInfo> clientInfo() const { return optionalValue<ClientInfo>(clientInfoKey); }
+ std::optional<ClientInfo> clientInfo() const { return optionalValue<ClientInfo>(clientInfoKey); }
void setClientInfo(const ClientInfo &clientInfo) { insert(clientInfoKey, clientInfo); }
void clearClientInfo() { remove(clientInfoKey); }
@@ -137,7 +137,7 @@ public:
using JsonObject::JsonObject;
QString name() const { return typedValue<QString>(nameKey); }
- Utils::optional<QString> version() const { return optionalValue<QString>(versionKey); }
+ std::optional<QString> version() const { return optionalValue<QString>(versionKey); }
bool isValid() const override { return contains(nameKey); }
};
@@ -152,7 +152,7 @@ public:
void setCapabilities(const ServerCapabilities &capabilities)
{ insert(capabilitiesKey, capabilities); }
- Utils::optional<ServerInfo> serverInfo() const
+ std::optional<ServerInfo> serverInfo() const
{ return optionalValue<ServerInfo>(serverInfoKey); }
bool isValid() const override { return contains(capabilitiesKey); }
diff --git a/src/libs/languageserverprotocol/jsonobject.h b/src/libs/languageserverprotocol/jsonobject.h
index cde35b1863..1d04634fea 100644
--- a/src/libs/languageserverprotocol/jsonobject.h
+++ b/src/libs/languageserverprotocol/jsonobject.h
@@ -65,19 +65,19 @@ protected:
template<typename T>
T typedValue(const QStringView key) const;
template<typename T>
- Utils::optional<T> optionalValue(const QStringView key) const;
+ std::optional<T> optionalValue(const QStringView key) const;
template<typename T>
LanguageClientValue<T> clientValue(const QStringView key) const;
template<typename T>
- Utils::optional<LanguageClientValue<T>> optionalClientValue(const QStringView key) const;
+ std::optional<LanguageClientValue<T>> optionalClientValue(const QStringView key) const;
template<typename T>
QList<T> array(const QStringView key) const;
template<typename T>
- Utils::optional<QList<T>> optionalArray(const QStringView key) const;
+ std::optional<QList<T>> optionalArray(const QStringView key) const;
template<typename T>
LanguageClientArray<T> clientArray(const QStringView key) const;
template<typename T>
- Utils::optional<LanguageClientArray<T>> optionalClientArray(const QStringView key) const;
+ std::optional<LanguageClientArray<T>> optionalClientArray(const QStringView key) const;
template<typename T>
void insertArray(const QStringView key, const QList<T> &array);
template<typename>
@@ -107,10 +107,10 @@ T JsonObject::typedValue(const QStringView key) const
}
template<typename T>
-Utils::optional<T> JsonObject::optionalValue(const QStringView key) const
+std::optional<T> JsonObject::optionalValue(const QStringView key) const
{
const QJsonValue &val = value(key);
- return val.isUndefined() ? Utils::nullopt : Utils::make_optional(fromJsonValue<T>(val));
+ return val.isUndefined() ? std::nullopt : std::make_optional(fromJsonValue<T>(val));
}
template<typename T>
@@ -120,26 +120,26 @@ LanguageClientValue<T> JsonObject::clientValue(const QStringView key) const
}
template<typename T>
-Utils::optional<LanguageClientValue<T>> JsonObject::optionalClientValue(const QStringView key) const
+std::optional<LanguageClientValue<T>> JsonObject::optionalClientValue(const QStringView key) const
{
- return contains(key) ? Utils::make_optional(clientValue<T>(key)) : Utils::nullopt;
+ return contains(key) ? std::make_optional(clientValue<T>(key)) : std::nullopt;
}
template<typename T>
QList<T> JsonObject::array(const QStringView key) const
{
- if (const Utils::optional<QList<T>> &array = optionalArray<T>(key))
+ if (const std::optional<QList<T>> &array = optionalArray<T>(key))
return *array;
qCDebug(conversionLog) << QString("Expected array under %1 in:").arg(key) << *this;
return {};
}
template<typename T>
-Utils::optional<QList<T>> JsonObject::optionalArray(const QStringView key) const
+std::optional<QList<T>> JsonObject::optionalArray(const QStringView key) const
{
const QJsonValue &jsonValue = value(key);
if (jsonValue.isUndefined())
- return Utils::nullopt;
+ return std::nullopt;
return Utils::transform<QList<T>>(jsonValue.toArray(), &fromJsonValue<T>);
}
@@ -150,11 +150,11 @@ LanguageClientArray<T> JsonObject::clientArray(const QStringView key) const
}
template<typename T>
-Utils::optional<LanguageClientArray<T>> JsonObject::optionalClientArray(const QStringView key) const
+std::optional<LanguageClientArray<T>> JsonObject::optionalClientArray(const QStringView key) const
{
const QJsonValue &val = value(key);
- return !val.isUndefined() ? Utils::make_optional(LanguageClientArray<T>(value(key)))
- : Utils::nullopt;
+ return !val.isUndefined() ? std::make_optional(LanguageClientArray<T>(value(key)))
+ : std::nullopt;
}
template<typename T>
diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h
index 927647db60..3886dcbc9e 100644
--- a/src/libs/languageserverprotocol/jsonrpcmessages.h
+++ b/src/libs/languageserverprotocol/jsonrpcmessages.h
@@ -7,7 +7,6 @@
#include "lsptypes.h"
#include "jsonkeys.h"
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QDebug>
@@ -18,6 +17,7 @@
#include <QCoreApplication>
#include <QUuid>
+#include <optional>
#include <variant>
namespace LanguageServerProtocol {
@@ -112,8 +112,7 @@ public:
const QString parseError() { return m_parseError; }
- virtual Utils::optional<ResponseHandler> responseHandler() const
- { return Utils::nullopt; }
+ virtual std::optional<ResponseHandler> responseHandler() const { return std::nullopt; }
BaseMessage toBaseMessage() const
{ return BaseMessage(jsonRpcMimeType(), toRawData()); }
@@ -143,10 +142,10 @@ public:
void setMethod(const QString &method)
{ m_jsonObject.insert(methodKey, method); }
- Utils::optional<Params> params() const
+ std::optional<Params> params() const
{
const QJsonValue &params = m_jsonObject.value(paramsKey);
- return params.isUndefined() ? Utils::nullopt : Utils::make_optional(Params(params));
+ return params.isUndefined() ? std::nullopt : std::make_optional(Params(params));
}
void setParams(const Params &params)
{ m_jsonObject.insert(paramsKey, QJsonValue(params)); }
@@ -187,7 +186,7 @@ public:
void setMethod(const QString &method)
{ m_jsonObject.insert(methodKey, method); }
- Utils::optional<std::nullptr_t> params() const
+ std::optional<std::nullptr_t> params() const
{ return nullptr; }
void setParams(const std::nullptr_t &/*params*/)
{ m_jsonObject.insert(paramsKey, QJsonValue::Null); }
@@ -216,7 +215,7 @@ public:
QString message() const { return typedValue<QString>(messageKey); }
void setMessage(const QString &message) { insert(messageKey, message); }
- Utils::optional<Error> data() const { return optionalValue<Error>(dataKey); }
+ std::optional<Error> data() const { return optionalValue<Error>(dataKey); }
void setData(const Error &data) { insert(dataKey, data); }
void clearData() { remove(dataKey); }
@@ -275,22 +274,21 @@ public:
void setId(MessageId id)
{ this->m_jsonObject.insert(idKey, id); }
- Utils::optional<Result> result() const
+ std::optional<Result> result() const
{
const QJsonValue &result = m_jsonObject.value(resultKey);
if (result.isUndefined())
- return Utils::nullopt;
- return Utils::make_optional(Result(result));
+ return std::nullopt;
+ return std::make_optional(Result(result));
}
void setResult(const Result &result) { m_jsonObject.insert(resultKey, QJsonValue(result)); }
void clearResult() { m_jsonObject.remove(resultKey); }
using Error = ResponseError<ErrorDataType>;
- Utils::optional<Error> error() const
+ std::optional<Error> error() const
{
const QJsonValue &val = m_jsonObject.value(errorKey);
- return val.isUndefined() ? Utils::nullopt
- : Utils::make_optional(fromJsonValue<Error>(val));
+ return val.isUndefined() ? std::nullopt : std::make_optional(fromJsonValue<Error>(val));
}
void setError(const Error &error)
{ m_jsonObject.insert(errorKey, QJsonValue(error)); }
@@ -312,20 +310,18 @@ public:
void setId(MessageId id)
{ this->m_jsonObject.insert(idKey, id); }
- Utils::optional<std::nullptr_t> result() const
+ std::optional<std::nullptr_t> result() const
{
- return m_jsonObject.value(resultKey).isNull() ? Utils::make_optional(nullptr)
- : Utils::nullopt;
+ return m_jsonObject.value(resultKey).isNull() ? std::make_optional(nullptr) : std::nullopt;
}
void setResult(const std::nullptr_t &) { m_jsonObject.insert(resultKey, QJsonValue::Null); }
void clearResult() { m_jsonObject.remove(resultKey); }
using Error = ResponseError<ErrorDataType>;
- Utils::optional<Error> error() const
+ std::optional<Error> error() const
{
const QJsonValue &val = m_jsonObject.value(errorKey);
- return val.isUndefined() ? Utils::nullopt
- : Utils::make_optional(fromJsonValue<Error>(val));
+ return val.isUndefined() ? std::nullopt : std::make_optional(fromJsonValue<Error>(val));
}
void setError(const Error &error)
{ m_jsonObject.insert(errorKey, QJsonValue(error)); }
@@ -357,7 +353,7 @@ public:
void setResponseCallback(const ResponseCallback &callback)
{ m_callBack = callback; }
- Utils::optional<ResponseHandler> responseHandler() const final
+ std::optional<ResponseHandler> responseHandler() const final
{
QElapsedTimer timer;
timer.start();
@@ -369,7 +365,7 @@ public:
callback(Response(message.toJsonObject()));
};
- return Utils::make_optional(ResponseHandler{id(), callback});
+ return std::make_optional(ResponseHandler{id(), callback});
}
bool isValid(QString *errorMessage) const override
diff --git a/src/libs/languageserverprotocol/languagefeatures.cpp b/src/libs/languageserverprotocol/languagefeatures.cpp
index 6b2ce364a0..3d605158bd 100644
--- a/src/libs/languageserverprotocol/languagefeatures.cpp
+++ b/src/libs/languageserverprotocol/languagefeatures.cpp
@@ -49,11 +49,11 @@ HoverRequest::HoverRequest(const TextDocumentPositionParams &params)
: Request(methodName, params)
{ }
-Utils::optional<MarkupOrString> ParameterInformation::documentation() const
+std::optional<MarkupOrString> ParameterInformation::documentation() const
{
QJsonValue documentation = value(documentationKey);
if (documentation.isUndefined())
- return Utils::nullopt;
+ return std::nullopt;
return MarkupOrString(documentation);
}
@@ -81,7 +81,7 @@ DocumentSymbolsRequest::DocumentSymbolsRequest(const DocumentSymbolParams &param
: Request(methodName, params)
{ }
-Utils::optional<QList<CodeActionKind> > CodeActionParams::CodeActionContext::only() const
+std::optional<QList<CodeActionKind> > CodeActionParams::CodeActionContext::only() const
{
return optionalArray<CodeActionKind>(onlyKey);
}
@@ -180,16 +180,16 @@ RenameRequest::RenameRequest(const RenameParams &params)
: Request(methodName, params)
{ }
-Utils::optional<DocumentUri> DocumentLink::target() const
+std::optional<DocumentUri> DocumentLink::target() const
{
- if (Utils::optional<QString> optionalTarget = optionalValue<QString>(targetKey))
- return Utils::make_optional(DocumentUri::fromProtocol(*optionalTarget));
- return Utils::nullopt;
+ if (std::optional<QString> optionalTarget = optionalValue<QString>(targetKey))
+ return std::make_optional(DocumentUri::fromProtocol(*optionalTarget));
+ return std::nullopt;
}
-Utils::optional<QJsonValue> DocumentLink::data() const
+std::optional<QJsonValue> DocumentLink::data() const
{
- return contains(dataKey) ? Utils::make_optional(value(dataKey)) : Utils::nullopt;
+ return contains(dataKey) ? std::make_optional(value(dataKey)) : std::nullopt;
}
TextDocumentParams::TextDocumentParams()
@@ -376,9 +376,9 @@ PrepareRenameResult::PrepareRenameResult(const QJsonValue &val)
}
}
-Utils::optional<QJsonValue> CodeLens::data() const
+std::optional<QJsonValue> CodeLens::data() const
{
- return contains(dataKey) ? Utils::make_optional(value(dataKey)) : Utils::nullopt;
+ return contains(dataKey) ? std::make_optional(value(dataKey)) : std::nullopt;
}
HoverResult::HoverResult(const QJsonValue &value)
diff --git a/src/libs/languageserverprotocol/languagefeatures.h b/src/libs/languageserverprotocol/languagefeatures.h
index fac9bcf410..753aad67f3 100644
--- a/src/libs/languageserverprotocol/languagefeatures.h
+++ b/src/libs/languageserverprotocol/languagefeatures.h
@@ -72,7 +72,7 @@ public:
HoverContent content() const;
void setContent(const HoverContent &content);
- Utils::optional<Range> range() const { return optionalValue<Range>(rangeKey); }
+ std::optional<Range> range() const { return optionalValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
void clearRange() { remove(rangeKey); }
@@ -109,7 +109,7 @@ public:
QString label() const { return typedValue<QString>(labelKey); }
void setLabel(const QString &label) { insert(labelKey, label); }
- Utils::optional<MarkupOrString> documentation() const;
+ std::optional<MarkupOrString> documentation() const;
void setDocumentation(const MarkupOrString &documentation)
{ insert(documentationKey, documentation.toJson()); }
void clearDocumentation() { remove(documentationKey); }
@@ -127,13 +127,13 @@ class LANGUAGESERVERPROTOCOL_EXPORT SignatureInformation : public ParameterInfor
public:
using ParameterInformation::ParameterInformation;
- Utils::optional<QList<ParameterInformation>> parameters() const
+ std::optional<QList<ParameterInformation>> parameters() const
{ return optionalArray<ParameterInformation>(parametersKey); }
void setParameters(const QList<ParameterInformation> &parameters)
{ insertArray(parametersKey, parameters); }
void clearParameters() { remove(parametersKey); }
- Utils::optional<int> activeParameter() const { return optionalValue<int>(activeParameterKey); }
+ std::optional<int> activeParameter() const { return optionalValue<int>(activeParameterKey); }
void setActiveParameter(int activeParameter) { insert(activeParameterKey, activeParameter); }
void clearActiveParameter() { remove(activeParameterKey); }
};
@@ -163,7 +163,7 @@ public:
* In future version of the protocol this property might become
* mandatory to better express this.
*/
- Utils::optional<int> activeSignature() const { return optionalValue<int>(activeSignatureKey); }
+ std::optional<int> activeSignature() const { return optionalValue<int>(activeSignatureKey); }
void setActiveSignature(int activeSignature) { insert(activeSignatureKey, activeSignature); }
void clearActiveSignature() { remove(activeSignatureKey); }
@@ -176,7 +176,7 @@ public:
* mandatory to better express the active parameter if the
* active signature does have any.
*/
- Utils::optional<int> activeParameter() const { return optionalValue<int>(activeParameterKey); }
+ std::optional<int> activeParameter() const { return optionalValue<int>(activeParameterKey); }
void setActiveParameter(int activeParameter) { insert(activeParameterKey, activeParameter); }
void clearActiveParameter() { remove(activeParameterKey); }
@@ -277,7 +277,7 @@ public:
Range range() const { return typedValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
- Utils::optional<int> kind() const { return optionalValue<int>(kindKey); }
+ std::optional<int> kind() const { return optionalValue<int>(kindKey); }
void setKind(int kind) { insert(kindKey, kind); }
void clearKind() { remove(kindKey); }
@@ -394,7 +394,7 @@ public:
void setDiagnostics(const QList<Diagnostic> &diagnostics)
{ insertArray(diagnosticsKey, diagnostics); }
- Utils::optional<QList<CodeActionKind>> only() const;
+ std::optional<QList<CodeActionKind>> only() const;
void setOnly(const QList<CodeActionKind> &only);
void clearOnly() { remove(onlyKey); }
@@ -424,21 +424,21 @@ public:
QString title() const { return typedValue<QString>(titleKey); }
void setTitle(QString title) { insert(titleKey, title); }
- Utils::optional<CodeActionKind> kind() const { return optionalValue<CodeActionKind>(kindKey); }
+ std::optional<CodeActionKind> kind() const { return optionalValue<CodeActionKind>(kindKey); }
void setKind(const CodeActionKind &kind) { insert(kindKey, kind); }
void clearKind() { remove(kindKey); }
- Utils::optional<QList<Diagnostic>> diagnostics() const
+ std::optional<QList<Diagnostic>> diagnostics() const
{ return optionalArray<Diagnostic>(diagnosticsKey); }
void setDiagnostics(const QList<Diagnostic> &diagnostics)
{ insertArray(diagnosticsKey, diagnostics); }
void clearDiagnostics() { remove(diagnosticsKey); }
- Utils::optional<WorkspaceEdit> edit() const { return optionalValue<WorkspaceEdit>(editKey); }
+ std::optional<WorkspaceEdit> edit() const { return optionalValue<WorkspaceEdit>(editKey); }
void setEdit(const WorkspaceEdit &edit) { insert(editKey, edit); }
void clearEdit() { remove(editKey); }
- Utils::optional<Command> command() const { return optionalValue<Command>(commandKey); }
+ std::optional<Command> command() const { return optionalValue<Command>(commandKey); }
void setCommand(const Command &command) { insert(commandKey, command); }
void clearCommand() { remove(commandKey); }
@@ -472,11 +472,11 @@ public:
Range range() const { return typedValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
- Utils::optional<Command> command() const { return optionalValue<Command>(commandKey); }
+ std::optional<Command> command() const { return optionalValue<Command>(commandKey); }
void setCommand(const Command &command) { insert(commandKey, command); }
void clearCommand() { remove(commandKey); }
- Utils::optional<QJsonValue> data() const;
+ std::optional<QJsonValue> data() const;
void setData(const QJsonValue &data) { insert(dataKey, data); }
void clearData() { remove(dataKey); }
@@ -509,11 +509,11 @@ public:
Range range() const { return typedValue<Range>(rangeKey); }
void setRange(const Range &range) { insert(rangeKey, range); }
- Utils::optional<DocumentUri> target() const;
+ std::optional<DocumentUri> target() const;
void setTarget(const DocumentUri &target) { insert(targetKey, target.toString()); }
void clearTarget() { remove(targetKey); }
- Utils::optional<QJsonValue> data() const;
+ std::optional<QJsonValue> data() const;
void setData(const QJsonValue &data) { insert(dataKey, data); }
void clearData() { remove(dataKey); }
@@ -614,11 +614,11 @@ public:
QString label() const { return typedValue<QString>(labelKey); }
void setLabel(const QString &label) { insert(labelKey, label); }
- Utils::optional<TextEdit> textEdit() const { return optionalValue<TextEdit>(textEditKey); }
+ std::optional<TextEdit> textEdit() const { return optionalValue<TextEdit>(textEditKey); }
void setTextEdit(const TextEdit &textEdit) { insert(textEditKey, textEdit); }
void clearTextEdit() { remove(textEditKey); }
- Utils::optional<QList<TextEdit>> additionalTextEdits() const
+ std::optional<QList<TextEdit>> additionalTextEdits() const
{ return optionalArray<TextEdit>(additionalTextEditsKey); }
void setAdditionalTextEdits(const QList<TextEdit> &additionalTextEdits)
{ insertArray(additionalTextEditsKey, additionalTextEdits); }
@@ -659,19 +659,19 @@ public:
bool insertSpace() const { return typedValue<bool>(insertSpaceKey); }
void setInsertSpace(bool insertSpace) { insert(insertSpaceKey, insertSpace); }
- Utils::optional<bool> trimTrailingWhitespace() const
+ std::optional<bool> trimTrailingWhitespace() const
{ return optionalValue<bool>(trimTrailingWhitespaceKey); }
void setTrimTrailingWhitespace(bool trimTrailingWhitespace)
{ insert(trimTrailingWhitespaceKey, trimTrailingWhitespace); }
void clearTrimTrailingWhitespace() { remove(trimTrailingWhitespaceKey); }
- Utils::optional<bool> insertFinalNewline() const
+ std::optional<bool> insertFinalNewline() const
{ return optionalValue<bool>(insertFinalNewlineKey); }
void setInsertFinalNewline(bool insertFinalNewline)
{ insert(insertFinalNewlineKey, insertFinalNewline); }
void clearInsertFinalNewline() { remove(insertFinalNewlineKey); }
- Utils::optional<bool> trimFinalNewlines() const
+ std::optional<bool> trimFinalNewlines() const
{ return optionalValue<bool>(trimFinalNewlinesKey); }
void setTrimFinalNewlines(bool trimFinalNewlines)
{ insert(trimFinalNewlinesKey, trimFinalNewlines); }
diff --git a/src/libs/languageserverprotocol/lsptypes.cpp b/src/libs/languageserverprotocol/lsptypes.cpp
index 7db90d6fe7..c2810c9520 100644
--- a/src/libs/languageserverprotocol/lsptypes.cpp
+++ b/src/libs/languageserverprotocol/lsptypes.cpp
@@ -17,24 +17,24 @@
namespace LanguageServerProtocol {
-Utils::optional<DiagnosticSeverity> Diagnostic::severity() const
+std::optional<DiagnosticSeverity> Diagnostic::severity() const
{
if (auto val = optionalValue<int>(severityKey))
- return Utils::make_optional(static_cast<DiagnosticSeverity>(*val));
- return Utils::nullopt;
+ return std::make_optional(static_cast<DiagnosticSeverity>(*val));
+ return std::nullopt;
}
-Utils::optional<Diagnostic::Code> Diagnostic::code() const
+std::optional<Diagnostic::Code> Diagnostic::code() const
{
QJsonValue codeValue = value(codeKey);
auto it = find(codeKey);
if (codeValue.isUndefined())
- return Utils::nullopt;
+ return std::nullopt;
QJsonValue::Type type = it.value().type();
if (type != QJsonValue::String && type != QJsonValue::Double)
- return Utils::make_optional(Code(QString()));
- return Utils::make_optional(codeValue.isDouble() ? Code(codeValue.toInt())
- : Code(codeValue.toString()));
+ return std::make_optional(Code(QString()));
+ return std::make_optional(codeValue.isDouble() ? Code(codeValue.toInt())
+ : Code(codeValue.toString()));
}
void Diagnostic::setCode(const Diagnostic::Code &code)
@@ -42,16 +42,16 @@ void Diagnostic::setCode(const Diagnostic::Code &code)
insertVariant<int, QString>(codeKey, code);
}
-Utils::optional<WorkspaceEdit::Changes> WorkspaceEdit::changes() const
+std::optional<WorkspaceEdit::Changes> WorkspaceEdit::changes() const
{
auto it = find(changesKey);
if (it == end())
- return Utils::nullopt;
+ return std::nullopt;
const QJsonObject &changesObject = it.value().toObject();
Changes changesResult;
for (const QString &key : changesObject.keys())
changesResult[DocumentUri::fromProtocol(key)] = LanguageClientArray<TextEdit>(changesObject.value(key)).toList();
- return Utils::make_optional(changesResult);
+ return std::make_optional(changesResult);
}
void WorkspaceEdit::setChanges(const Changes &changes)
@@ -325,7 +325,7 @@ QString expressionForGlob(QString globPattern)
bool DocumentFilter::applies(const Utils::FilePath &fileName, const Utils::MimeType &mimeType) const
{
- if (Utils::optional<QString> _pattern = pattern()) {
+ if (std::optional<QString> _pattern = pattern()) {
QRegularExpression::PatternOption option = QRegularExpression::NoPatternOption;
if (fileName.caseSensitivity() == Qt::CaseInsensitive)
option = QRegularExpression::CaseInsensitiveOption;
@@ -333,7 +333,7 @@ bool DocumentFilter::applies(const Utils::FilePath &fileName, const Utils::MimeT
if (regexp.isValid() && regexp.match(fileName.toString()).hasMatch())
return true;
}
- if (Utils::optional<QString> _lang = language()) {
+ if (std::optional<QString> _lang = language()) {
auto match = [&_lang](const Utils::MimeType &mimeType){
return *_lang == TextDocumentItem::mimeTypeToLanguageId(mimeType);
};
diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h
index d65e30b869..0c848130ce 100644
--- a/src/libs/languageserverprotocol/lsptypes.h
+++ b/src/libs/languageserverprotocol/lsptypes.h
@@ -10,7 +10,6 @@
#include <utils/filepath.h>
#include <utils/link.h>
#include <utils/mimeutils.h>
-#include <utils/optional.h>
#include <utils/textutils.h>
#include <QTextCursor>
@@ -19,6 +18,7 @@
#include <QList>
#include <functional>
+#include <optional>
#include <variant>
namespace LanguageServerProtocol {
@@ -162,20 +162,20 @@ public:
// The diagnostic's severity. Can be omitted. If omitted it is up to the
// client to interpret diagnostics as error, warning, info or hint.
- Utils::optional<DiagnosticSeverity> severity() const;
+ std::optional<DiagnosticSeverity> severity() const;
void setSeverity(const DiagnosticSeverity &severity)
{ insert(severityKey, static_cast<int>(severity)); }
void clearSeverity() { remove(severityKey); }
// The diagnostic's code, which might appear in the user interface.
using Code = std::variant<int, QString>;
- Utils::optional<Code> code() const;
+ std::optional<Code> code() const;
void setCode(const Code &code);
void clearCode() { remove(codeKey); }
// A human-readable string describing the source of this
// diagnostic, e.g. 'typescript' or 'super lint'.
- Utils::optional<QString> source() const
+ std::optional<QString> source() const
{ return optionalValue<QString>(sourceKey); }
void setSource(const QString &source) { insert(sourceKey, source); }
void clearSource() { remove(sourceKey); }
@@ -204,7 +204,7 @@ public:
void clearCommand() { remove(commandKey); }
// Arguments that the command handler should be invoked with.
- Utils::optional<QJsonArray> arguments() const { return typedValue<QJsonArray>(argumentsKey); }
+ std::optional<QJsonArray> arguments() const { return typedValue<QJsonArray>(argumentsKey); }
void setArguments(const QJsonArray &arguments) { insert(argumentsKey, arguments); }
void clearArguments() { remove(argumentsKey); }
@@ -291,7 +291,7 @@ public:
// Holds changes to existing resources.
using Changes = QMap<DocumentUri, QList<TextEdit>>;
- Utils::optional<Changes> changes() const;
+ std::optional<Changes> changes() const;
void setChanges(const Changes &changes);
/*
@@ -303,7 +303,7 @@ public:
* Note: If the client can handle versioned document edits and if documentChanges are present,
* the latter are preferred over changes.
*/
- Utils::optional<QList<TextDocumentEdit>> documentChanges() const
+ std::optional<QList<TextDocumentEdit>> documentChanges() const
{ return optionalArray<TextDocumentEdit>(documentChangesKey); }
void setDocumentChanges(const QList<TextDocumentEdit> &changes)
{ insertArray(documentChangesKey, changes); }
@@ -363,12 +363,12 @@ public:
using JsonObject::JsonObject;
// A language id, like `typescript`.
- Utils::optional<QString> language() const { return optionalValue<QString>(languageKey); }
+ std::optional<QString> language() const { return optionalValue<QString>(languageKey); }
void setLanguage(const QString &language) { insert(languageKey, language); }
void clearLanguage() { remove(languageKey); }
// A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
- Utils::optional<QString> scheme() const { return optionalValue<QString>(schemeKey); }
+ std::optional<QString> scheme() const { return optionalValue<QString>(schemeKey); }
void setScheme(const QString &scheme) { insert(schemeKey, scheme); }
void clearScheme() { remove(schemeKey); }
@@ -387,7 +387,7 @@ public:
* (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
* not `example.0`)
*/
- Utils::optional<QString> pattern() const { return optionalValue<QString>(patternKey); }
+ std::optional<QString> pattern() const { return optionalValue<QString>(patternKey); }
void setPattern(const QString &pattern) { insert(patternKey, pattern); }
void clearPattern() { remove(patternKey); }
@@ -478,14 +478,14 @@ public:
int kind() const { return typedValue<int>(kindKey); }
void setKind(int kind) { insert(kindKey, kind); }
- Utils::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
+ std::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
void setDeprecated(bool deprecated) { insert(deprecatedKey, deprecated); }
void clearDeprecated() { remove(deprecatedKey); }
Location location() const { return typedValue<Location>(locationKey); }
void setLocation(const Location &location) { insert(locationKey, location); }
- Utils::optional<QString> containerName() const
+ std::optional<QString> containerName() const
{ return optionalValue<QString>(containerNameKey); }
void setContainerName(const QString &containerName) { insert(containerNameKey, containerName); }
void clearContainerName() { remove(containerNameKey); }
@@ -502,14 +502,14 @@ public:
QString name() const { return typedValue<QString>(nameKey); }
void setName(const QString &name) { insert(nameKey, name); }
- Utils::optional<QString> detail() const { return optionalValue<QString>(detailKey); }
+ std::optional<QString> detail() const { return optionalValue<QString>(detailKey); }
void setDetail(const QString &detail) { insert(detailKey, detail); }
void clearDetail() { remove(detailKey); }
int kind() const { return typedValue<int>(kindKey); }
void setKind(int kind) { insert(kindKey, kind); }
- Utils::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
+ std::optional<bool> deprecated() const { return optionalValue<bool>(deprecatedKey); }
void setDeprecated(bool deprecated) { insert(deprecatedKey, deprecated); }
void clearDeprecated() { remove(deprecatedKey); }
@@ -519,7 +519,7 @@ public:
Range selectionRange() const { return typedValue<Range>(selectionRangeKey); }
void setSelectionRange(Range selectionRange) { insert(selectionRangeKey, selectionRange); }
- Utils::optional<QList<DocumentSymbol>> children() const
+ std::optional<QList<DocumentSymbol>> children() const
{ return optionalArray<DocumentSymbol>(childrenKey); }
void setChildren(QList<DocumentSymbol> children) { insertArray(childrenKey, children); }
void clearChildren() { remove(childrenKey); }
diff --git a/src/libs/languageserverprotocol/lsputils.h b/src/libs/languageserverprotocol/lsputils.h
index 8e2af619cc..874bc0bc98 100644
--- a/src/libs/languageserverprotocol/lsputils.h
+++ b/src/libs/languageserverprotocol/lsputils.h
@@ -6,13 +6,13 @@
#include "languageserverprotocol_global.h"
#include <utils/algorithm.h>
-#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <QJsonArray>
#include <QJsonObject>
#include <QLoggingCategory>
+#include <optional>
#include <variant>
namespace LanguageServerProtocol {
diff --git a/src/libs/languageserverprotocol/messages.h b/src/libs/languageserverprotocol/messages.h
index f1c38f9cab..a6dde81c6e 100644
--- a/src/libs/languageserverprotocol/messages.h
+++ b/src/libs/languageserverprotocol/messages.h
@@ -55,7 +55,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageRequestParams : public ShowMessag
public:
using ShowMessageParams::ShowMessageParams;
- Utils::optional<QList<MessageActionItem>> actions() const
+ std::optional<QList<MessageActionItem>> actions() const
{ return optionalArray<MessageActionItem>(actionsKey); }
void setActions(const QList<MessageActionItem> &actions) { insertArray(actionsKey, actions); }
void clearActions() { remove(actionsKey); }
diff --git a/src/libs/languageserverprotocol/progresssupport.h b/src/libs/languageserverprotocol/progresssupport.h
index 6c3180adba..d07b894729 100644
--- a/src/libs/languageserverprotocol/progresssupport.h
+++ b/src/libs/languageserverprotocol/progresssupport.h
@@ -31,7 +31,7 @@ public:
* long running operation.
* Clients that don't support cancellation can ignore the setting.
*/
- Utils::optional<bool> cancellable() const { return optionalValue<bool>(cancellableKey); }
+ std::optional<bool> cancellable() const { return optionalValue<bool>(cancellableKey); }
void setCancellable(bool cancellable) { insert(cancellableKey, cancellable); }
void clearCancellable() { remove(cancellableKey); }
@@ -42,7 +42,7 @@ public:
* Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
* If unset, the previous progress message (if any) is still valid.
*/
- Utils::optional<QString> message() const { return optionalValue<QString>(messageKey); }
+ std::optional<QString> message() const { return optionalValue<QString>(messageKey); }
void setMessage(const QString &message) { insert(messageKey, message); }
void clearMessage() { remove(messageKey); }
@@ -58,7 +58,7 @@ public:
// Allthough percentage is defined as an uint by the protocol some server
// return a double here. Be less strict and also use a double.
// CAUTION: the range is still 0 - 100 and not 0 - 1
- Utils::optional<double> percentage() const { return optionalValue<double>(percentageKey); }
+ std::optional<double> percentage() const { return optionalValue<double>(percentageKey); }
void setPercentage(double percentage) { insert(percentageKey, percentage); }
void clearPercentage() { remove(percentageKey); }
};
@@ -88,7 +88,7 @@ public:
* Optional, a final message indicating to for example indicate the outcome
* of the operation.
*/
- Utils::optional<QString> message() const { return optionalValue<QString>(messageKey); }
+ std::optional<QString> message() const { return optionalValue<QString>(messageKey); }
void setMessage(const QString &message) { insert(messageKey, message); }
void clearMessage() { remove(messageKey); }
};
diff --git a/src/libs/languageserverprotocol/semantictokens.h b/src/libs/languageserverprotocol/semantictokens.h
index 6025a6d683..6cc303b84f 100644
--- a/src/libs/languageserverprotocol/semantictokens.h
+++ b/src/libs/languageserverprotocol/semantictokens.h
@@ -125,7 +125,7 @@ public:
* A server can then instead of computing all semantic tokens again simply
* send a delta.
*/
- Utils::optional<QString> resultId() const { return optionalValue<QString>(resultIdKey); }
+ std::optional<QString> resultId() const { return optionalValue<QString>(resultIdKey); }
void setResultId(const QString &resultId) { insert(resultIdKey, resultId); }
void clearResultId() { remove(resultIdKey); }
@@ -169,7 +169,7 @@ public:
int deleteCount() const { return typedValue<int>(deleteCountKey); }
void setDeleteCount(int deleteCount) { insert(deleteCountKey, deleteCount); }
- Utils::optional<QList<int>> data() const { return optionalArray<int>(dataKey); }
+ std::optional<QList<int>> data() const { return optionalArray<int>(dataKey); }
void setData(const QList<int> &value) { insertArray(dataKey, value); }
void clearData() { remove(dataKey); }
diff --git a/src/libs/languageserverprotocol/servercapabilities.cpp b/src/libs/languageserverprotocol/servercapabilities.cpp
index 6ba697f5b3..1573f49285 100644
--- a/src/libs/languageserverprotocol/servercapabilities.cpp
+++ b/src/libs/languageserverprotocol/servercapabilities.cpp
@@ -5,13 +5,14 @@
namespace LanguageServerProtocol {
-Utils::optional<ServerCapabilities::TextDocumentSync> ServerCapabilities::textDocumentSync() const
+std::optional<ServerCapabilities::TextDocumentSync> ServerCapabilities::textDocumentSync() const
{
const QJsonValue &sync = value(textDocumentSyncKey);
if (sync.isUndefined())
- return Utils::nullopt;
- return Utils::make_optional(sync.isDouble() ? TextDocumentSync(sync.toInt())
- : TextDocumentSync(TextDocumentSyncOptions(sync.toObject())));
+ return std::nullopt;
+ return std::make_optional(sync.isDouble()
+ ? TextDocumentSync(sync.toInt())
+ : TextDocumentSync(TextDocumentSyncOptions(sync.toObject())));
}
void ServerCapabilities::setTextDocumentSync(const ServerCapabilities::TextDocumentSync &textDocumentSync)
@@ -21,27 +22,27 @@ void ServerCapabilities::setTextDocumentSync(const ServerCapabilities::TextDocum
TextDocumentSyncKind ServerCapabilities::textDocumentSyncKindHelper()
{
- if (Utils::optional<TextDocumentSync> sync = textDocumentSync()) {
+ if (std::optional<TextDocumentSync> sync = textDocumentSync()) {
if (auto kind = std::get_if<int>(&*sync))
return static_cast<TextDocumentSyncKind>(*kind);
if (auto options = std::get_if<TextDocumentSyncOptions>(&*sync)) {
- if (const Utils::optional<int> &change = options->change())
+ if (const std::optional<int> &change = options->change())
return static_cast<TextDocumentSyncKind>(*change);
}
}
return TextDocumentSyncKind::None;
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>> ServerCapabilities::hoverProvider()
+std::optional<std::variant<bool, WorkDoneProgressOptions>> ServerCapabilities::hoverProvider()
const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(hoverProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setHoverProvider(
@@ -50,15 +51,16 @@ void ServerCapabilities::setHoverProvider(
insertVariant<bool, WorkDoneProgressOptions>(hoverProviderKey, hoverProvider);
}
-Utils::optional<std::variant<bool, ServerCapabilities::RegistrationOptions>>
+std::optional<std::variant<bool, ServerCapabilities::RegistrationOptions>>
ServerCapabilities::typeDefinitionProvider() const
{
using RetType = std::variant<bool, ServerCapabilities::RegistrationOptions>;
const QJsonValue &provider = value(typeDefinitionProviderKey);
if (provider.isUndefined() || !(provider.isBool() || provider.isObject()))
- return Utils::nullopt;
- return Utils::make_optional(provider.isBool() ? RetType(provider.toBool())
- : RetType(RegistrationOptions(provider.toObject())));
+ return std::nullopt;
+ return std::make_optional(provider.isBool()
+ ? RetType(provider.toBool())
+ : RetType(RegistrationOptions(provider.toObject())));
}
void ServerCapabilities::setTypeDefinitionProvider(
@@ -68,15 +70,16 @@ void ServerCapabilities::setTypeDefinitionProvider(
typeDefinitionProvider);
}
-Utils::optional<std::variant<bool, ServerCapabilities::RegistrationOptions>>
+std::optional<std::variant<bool, ServerCapabilities::RegistrationOptions>>
ServerCapabilities::implementationProvider() const
{
using RetType = std::variant<bool, ServerCapabilities::RegistrationOptions>;
const QJsonValue &provider = value(implementationProviderKey);
if (provider.isUndefined() || !(provider.isBool() || provider.isObject()))
- return Utils::nullopt;
- return Utils::make_optional(provider.isBool() ? RetType(provider.toBool())
- : RetType(RegistrationOptions(provider.toObject())));
+ return std::nullopt;
+ return std::make_optional(provider.isBool()
+ ? RetType(provider.toBool())
+ : RetType(RegistrationOptions(provider.toObject())));
}
void ServerCapabilities::setImplementationProvider(
@@ -85,16 +88,16 @@ void ServerCapabilities::setImplementationProvider(
insertVariant<bool, RegistrationOptions>(implementationProviderKey, implementationProvider);
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::referencesProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(referencesProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setReferencesProvider(
@@ -104,16 +107,16 @@ void ServerCapabilities::setReferencesProvider(
referencesProvider);
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::documentHighlightProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(documentHighlightProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setDocumentHighlightProvider(
@@ -123,16 +126,16 @@ void ServerCapabilities::setDocumentHighlightProvider(
documentHighlightProvider);
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::documentSymbolProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(documentSymbolProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setDocumentSymbolProvider(
@@ -142,7 +145,7 @@ void ServerCapabilities::setDocumentSymbolProvider(
documentSymbolProvider);
}
-Utils::optional<SemanticTokensOptions> ServerCapabilities::semanticTokensProvider() const
+std::optional<SemanticTokensOptions> ServerCapabilities::semanticTokensProvider() const
{
return optionalValue<SemanticTokensOptions>(semanticTokensProviderKey);
}
@@ -153,16 +156,16 @@ void ServerCapabilities::setSemanticTokensProvider(
insert(semanticTokensProviderKey, semanticTokensProvider);
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::workspaceSymbolProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(workspaceSymbolProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setWorkspaceSymbolProvider(
@@ -172,29 +175,29 @@ void ServerCapabilities::setWorkspaceSymbolProvider(
workspaceSymbolProvider);
}
-Utils::optional<std::variant<bool, CodeActionOptions>> ServerCapabilities::codeActionProvider() const
+std::optional<std::variant<bool, CodeActionOptions>> ServerCapabilities::codeActionProvider() const
{
const QJsonValue &provider = value(codeActionProviderKey);
if (provider.isBool())
- return Utils::make_optional(std::variant<bool, CodeActionOptions>(provider.toBool()));
+ return std::make_optional(std::variant<bool, CodeActionOptions>(provider.toBool()));
if (provider.isObject()) {
CodeActionOptions options(provider);
if (options.isValid())
- return Utils::make_optional(std::variant<bool, CodeActionOptions>(options));
+ return std::make_optional(std::variant<bool, CodeActionOptions>(options));
}
- return Utils::nullopt;
+ return std::nullopt;
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::documentFormattingProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(documentFormattingProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setDocumentFormattingProvider(
@@ -204,16 +207,16 @@ void ServerCapabilities::setDocumentFormattingProvider(
documentFormattingProvider);
}
-Utils::optional<std::variant<bool, WorkDoneProgressOptions>>
+std::optional<std::variant<bool, WorkDoneProgressOptions>>
ServerCapabilities::documentRangeFormattingProvider() const
{
using RetType = std::variant<bool, WorkDoneProgressOptions>;
const QJsonValue &provider = value(documentRangeFormattingProviderKey);
if (provider.isBool())
- return Utils::make_optional(RetType(provider.toBool()));
+ return std::make_optional(RetType(provider.toBool()));
if (provider.isObject())
- return Utils::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
- return Utils::nullopt;
+ return std::make_optional(RetType(WorkDoneProgressOptions(provider.toObject())));
+ return std::nullopt;
}
void ServerCapabilities::setDocumentRangeFormattingProvider(
@@ -223,7 +226,7 @@ void ServerCapabilities::setDocumentRangeFormattingProvider(
documentRangeFormattingProvider);
}
-Utils::optional<std::variant<ServerCapabilities::RenameOptions, bool>> ServerCapabilities::renameProvider() const
+std::optional<std::variant<ServerCapabilities::RenameOptions, bool>> ServerCapabilities::renameProvider() const
{
using RetType = std::variant<ServerCapabilities::RenameOptions, bool>;
const QJsonValue &localValue = value(renameProviderKey);
@@ -231,7 +234,7 @@ Utils::optional<std::variant<ServerCapabilities::RenameOptions, bool>> ServerCap
return RetType(localValue.toBool());
if (localValue.isObject())
return RetType(RenameOptions(localValue.toObject()));
- return Utils::nullopt;
+ return std::nullopt;
}
void ServerCapabilities::setRenameProvider(std::variant<ServerCapabilities::RenameOptions, bool> renameProvider)
@@ -239,7 +242,7 @@ void ServerCapabilities::setRenameProvider(std::variant<ServerCapabilities::Rena
insertVariant<RenameOptions, bool>(renameProviderKey, renameProvider);
}
-Utils::optional<std::variant<bool, JsonObject>> ServerCapabilities::colorProvider() const
+std::optional<std::variant<bool, JsonObject>> ServerCapabilities::colorProvider() const
{
using RetType = std::variant<bool, JsonObject>;
const QJsonValue &localValue = value(colorProviderKey);
@@ -247,7 +250,7 @@ Utils::optional<std::variant<bool, JsonObject>> ServerCapabilities::colorProvide
return RetType(localValue.toBool());
if (localValue.isObject())
return RetType(JsonObject(localValue.toObject()));
- return Utils::nullopt;
+ return std::nullopt;
}
void ServerCapabilities::setColorProvider(std::variant<bool, JsonObject> colorProvider)
@@ -255,15 +258,15 @@ void ServerCapabilities::setColorProvider(std::variant<bool, JsonObject> colorPr
insertVariant<bool, JsonObject>(renameProviderKey, colorProvider);
}
-Utils::optional<std::variant<QString, bool> >
+std::optional<std::variant<QString, bool> >
ServerCapabilities::WorkspaceServerCapabilities::WorkspaceFoldersCapabilities::changeNotifications() const
{
using RetType = std::variant<QString, bool>;
const QJsonValue &change = value(changeNotificationsKey);
if (change.isUndefined())
- return Utils::nullopt;
- return Utils::make_optional(change.isBool() ? RetType(change.toBool())
- : RetType(change.toString()));
+ return std::nullopt;
+ return std::make_optional(change.isBool() ? RetType(change.toBool())
+ : RetType(change.toString()));
}
void ServerCapabilities::WorkspaceServerCapabilities::WorkspaceFoldersCapabilities::setChangeNotifications(
@@ -293,7 +296,7 @@ bool CodeActionOptions::isValid() const
return WorkDoneProgressOptions::isValid() && contains(codeActionKindsKey);
}
-Utils::optional<std::variant<bool, QJsonObject>> SemanticTokensOptions::range() const
+std::optional<std::variant<bool, QJsonObject>> SemanticTokensOptions::range() const
{
using RetType = std::variant<bool, QJsonObject>;
const QJsonValue &rangeOptions = value(rangeKey);
@@ -301,7 +304,7 @@ Utils::optional<std::variant<bool, QJsonObject>> SemanticTokensOptions::range()
return RetType(rangeOptions.toBool());
if (rangeOptions.isObject())
return RetType(rangeOptions.toObject());
- return Utils::nullopt;
+ return std::nullopt;
}
void SemanticTokensOptions::setRange(const std::variant<bool, QJsonObject> &range)
@@ -309,7 +312,7 @@ void SemanticTokensOptions::setRange(const std::variant<bool, QJsonObject> &rang
insertVariant<bool, QJsonObject>(rangeKey, range);
}
-Utils::optional<std::variant<bool, SemanticTokensOptions::FullSemanticTokenOptions>>
+std::optional<std::variant<bool, SemanticTokensOptions::FullSemanticTokenOptions>>
SemanticTokensOptions::full() const
{
using RetType = std::variant<bool, SemanticTokensOptions::FullSemanticTokenOptions>;
@@ -318,7 +321,7 @@ SemanticTokensOptions::full() const
return RetType(fullOptions.toBool());
if (fullOptions.isObject())
return RetType(FullSemanticTokenOptions(fullOptions.toObject()));
- return Utils::nullopt;
+ return std::nullopt;
}
void SemanticTokensOptions::setFull(
diff --git a/src/libs/languageserverprotocol/servercapabilities.h b/src/libs/languageserverprotocol/servercapabilities.h
index c6cfe96ca6..35028760d1 100644
--- a/src/libs/languageserverprotocol/servercapabilities.h
+++ b/src/libs/languageserverprotocol/servercapabilities.h
@@ -13,7 +13,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT WorkDoneProgressOptions : public JsonObject
public:
using JsonObject::JsonObject;
- Utils::optional<bool> workDoneProgress() const { return optionalValue<bool>(workDoneProgressKey); }
+ std::optional<bool> workDoneProgress() const { return optionalValue<bool>(workDoneProgressKey); }
void setWorkDoneProgress(bool workDoneProgress) { insert(workDoneProgressKey, workDoneProgress); }
void clearWorkDoneProgress() { remove(workDoneProgressKey); }
};
@@ -23,7 +23,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ResolveProviderOption : public JsonObject
public:
using JsonObject::JsonObject;
- Utils::optional<bool> resolveProvider() const { return optionalValue<bool>(resolveProviderKey); }
+ std::optional<bool> resolveProvider() const { return optionalValue<bool>(resolveProviderKey); }
void setResolveProvider(bool resolveProvider) { insert(resolveProviderKey, resolveProvider); }
void clearResolveProvider() { remove(resolveProviderKey); }
};
@@ -50,7 +50,7 @@ public:
using JsonObject::JsonObject;
// The client is supposed to include the content on save.
- Utils::optional<bool> includeText() const { return optionalValue<bool>(includeTextKey); }
+ std::optional<bool> includeText() const { return optionalValue<bool>(includeTextKey); }
void setIncludeText(bool includeText) { insert(includeTextKey, includeText); }
void clearIncludeText() { remove(includeTextKey); }
};
@@ -61,30 +61,30 @@ public:
using JsonObject::JsonObject;
// Open and close notifications are sent to the server.
- Utils::optional<bool> openClose() const { return optionalValue<bool>(openCloseKey); }
+ std::optional<bool> openClose() const { return optionalValue<bool>(openCloseKey); }
void setOpenClose(bool openClose) { insert(openCloseKey, openClose); }
void clearOpenClose() { remove(openCloseKey); }
// Change notifications are sent to the server. See TextDocumentSyncKind.None,
// TextDocumentSyncKind.Full and TextDocumentSyncKind.Incremental.
- Utils::optional<int> change() const { return optionalValue<int>(changeKey); }
+ std::optional<int> change() const { return optionalValue<int>(changeKey); }
void setChange(int change) { insert(changeKey, change); }
void clearChange() { remove(changeKey); }
// Will save notifications are sent to the server.
- Utils::optional<bool> willSave() const { return optionalValue<bool>(willSaveKey); }
+ std::optional<bool> willSave() const { return optionalValue<bool>(willSaveKey); }
void setWillSave(bool willSave) { insert(willSaveKey, willSave); }
void clearWillSave() { remove(willSaveKey); }
// Will save wait until requests are sent to the server.
- Utils::optional<bool> willSaveWaitUntil() const
+ std::optional<bool> willSaveWaitUntil() const
{ return optionalValue<bool>(willSaveWaitUntilKey); }
void setWillSaveWaitUntil(bool willSaveWaitUntil)
{ insert(willSaveWaitUntilKey, willSaveWaitUntil); }
void clearWillSaveWaitUntil() { remove(willSaveWaitUntilKey); }
// Save notifications are sent to the server.
- Utils::optional<SaveOptions> save() const { return optionalValue<SaveOptions>(saveKey); }
+ std::optional<SaveOptions> save() const { return optionalValue<SaveOptions>(saveKey); }
void setSave(const SaveOptions &save) { insert(saveKey, save); }
void clearSave() { remove(saveKey); }
};
@@ -130,7 +130,7 @@ public:
void setLegend(const SemanticTokensLegend &legend) { insert(legendKey, legend); }
/// Server supports providing semantic tokens for a specific range of a document.
- Utils::optional<std::variant<bool, QJsonObject>> range() const;
+ std::optional<std::variant<bool, QJsonObject>> range() const;
void setRange(const std::variant<bool, QJsonObject> &range);
void clearRange() { remove(rangeKey); }
@@ -140,13 +140,13 @@ public:
using JsonObject::JsonObject;
/// The server supports deltas for full documents.
- Utils::optional<bool> delta() const { return optionalValue<bool>(deltaKey); }
+ std::optional<bool> delta() const { return optionalValue<bool>(deltaKey); }
void setDelta(bool delta) { insert(deltaKey, delta); }
void clearDelta() { remove(deltaKey); }
};
/// Server supports providing semantic tokens for a full document.
- Utils::optional<std::variant<bool, FullSemanticTokenOptions>> full() const;
+ std::optional<std::variant<bool, FullSemanticTokenOptions>> full() const;
void setFull(const std::variant<bool, FullSemanticTokenOptions> &full);
void clearFull() { remove(fullKey); }
@@ -168,13 +168,13 @@ public:
using WorkDoneProgressOptions::WorkDoneProgressOptions;
// The characters that trigger completion automatically.
- Utils::optional<QList<QString>> triggerCharacters() const
+ std::optional<QList<QString>> triggerCharacters() const
{ return optionalArray<QString>(triggerCharactersKey); }
void setTriggerCharacters(const QList<QString> &triggerCharacters)
{ insertArray(triggerCharactersKey, triggerCharacters); }
void clearTriggerCharacters() { remove(triggerCharactersKey); }
- Utils::optional<bool> resolveProvider() const { return optionalValue<bool>(resolveProviderKey); }
+ std::optional<bool> resolveProvider() const { return optionalValue<bool>(resolveProviderKey); }
void setResolveProvider(bool resolveProvider) { insert(resolveProviderKey, resolveProvider); }
void clearResolveProvider() { remove(resolveProviderKey); }
};
@@ -185,7 +185,7 @@ public:
using WorkDoneProgressOptions::WorkDoneProgressOptions;
// The characters that trigger signature help automatically.
- Utils::optional<QList<QString>> triggerCharacters() const
+ std::optional<QList<QString>> triggerCharacters() const
{ return optionalArray<QString>(triggerCharactersKey); }
void setTriggerCharacters(const QList<QString> &triggerCharacters)
{ insertArray(triggerCharactersKey, triggerCharacters); }
@@ -205,7 +205,7 @@ public:
{ insert(firstTriggerCharacterKey, firstTriggerCharacter); }
// More trigger characters.
- Utils::optional<QList<QString>> moreTriggerCharacter() const
+ std::optional<QList<QString>> moreTriggerCharacter() const
{ return optionalArray<QString>(moreTriggerCharacterKey); }
void setMoreTriggerCharacter(const QList<QString> &moreTriggerCharacter)
{ insertArray(moreTriggerCharacterKey, moreTriggerCharacter); }
@@ -236,7 +236,7 @@ public:
// The id used to register the request. The id can be used to deregister
// the request again. See also Registration#id.
- Utils::optional<QString> id() const { return optionalValue<QString>(idKey); }
+ std::optional<QString> id() const { return optionalValue<QString>(idKey); }
void setId(const QString &id) { insert(idKey, id); }
void clearId() { remove(idKey); }
};
@@ -244,33 +244,33 @@ public:
// Defines how text documents are synced. Is either a detailed structure defining each
// notification or for backwards compatibility the TextDocumentSyncKind number.
using TextDocumentSync = std::variant<TextDocumentSyncOptions, int>;
- Utils::optional<TextDocumentSync> textDocumentSync() const;
+ std::optional<TextDocumentSync> textDocumentSync() const;
void setTextDocumentSync(const TextDocumentSync &textDocumentSync);
void clearTextDocumentSync() { remove(textDocumentSyncKey); }
TextDocumentSyncKind textDocumentSyncKindHelper();
// The server provides hover support.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> hoverProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> hoverProvider() const;
void setHoverProvider(const std::variant<bool, WorkDoneProgressOptions> &hoverProvider);
void clearHoverProvider() { remove(hoverProviderKey); }
// The server provides completion support.
- Utils::optional<CompletionOptions> completionProvider() const
+ std::optional<CompletionOptions> completionProvider() const
{ return optionalValue<CompletionOptions>(completionProviderKey); }
void setCompletionProvider(const CompletionOptions &completionProvider)
{ insert(completionProviderKey, completionProvider); }
void clearCompletionProvider() { remove(completionProviderKey); }
// The server provides signature help support.
- Utils::optional<SignatureHelpOptions> signatureHelpProvider() const
+ std::optional<SignatureHelpOptions> signatureHelpProvider() const
{ return optionalValue<SignatureHelpOptions>(signatureHelpProviderKey); }
void setSignatureHelpProvider(const SignatureHelpOptions &signatureHelpProvider)
{ insert(signatureHelpProviderKey, signatureHelpProvider); }
void clearSignatureHelpProvider() { remove(signatureHelpProviderKey); }
// The server provides goto definition support.
- Utils::optional<bool> definitionProvider() const
+ std::optional<bool> definitionProvider() const
{ return optionalValue<bool>(definitionProviderKey); }
void setDefinitionProvider(bool definitionProvider)
{ insert(definitionProviderKey, definitionProvider); }
@@ -291,7 +291,7 @@ public:
// The id used to register the request. The id can be used to deregister
// the request again. See also Registration#id.
- Utils::optional<QString> id() const { return optionalValue<QString>(idKey); }
+ std::optional<QString> id() const { return optionalValue<QString>(idKey); }
void setId(const QString &id) { insert(idKey, id); }
void clearId() { remove(idKey); }
@@ -299,42 +299,42 @@ public:
};
// The server provides Goto Type Definition support.
- Utils::optional<std::variant<bool, RegistrationOptions>> typeDefinitionProvider() const;
+ std::optional<std::variant<bool, RegistrationOptions>> typeDefinitionProvider() const;
void setTypeDefinitionProvider(const std::variant<bool, RegistrationOptions> &typeDefinitionProvider);
void clearTypeDefinitionProvider() { remove(typeDefinitionProviderKey); }
// The server provides Goto Implementation support.
- Utils::optional<std::variant<bool, RegistrationOptions>> implementationProvider() const;
+ std::optional<std::variant<bool, RegistrationOptions>> implementationProvider() const;
void setImplementationProvider(const std::variant<bool, RegistrationOptions> &implementationProvider);
void clearImplementationProvider() { remove(implementationProviderKey); }
// The server provides find references support.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> referencesProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> referencesProvider() const;
void setReferencesProvider(const std::variant<bool, WorkDoneProgressOptions> &referencesProvider);
void clearReferencesProvider() { remove(referencesProviderKey); }
// The server provides document highlight support.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> documentHighlightProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> documentHighlightProvider() const;
void setDocumentHighlightProvider(
const std::variant<bool, WorkDoneProgressOptions> &documentHighlightProvider);
void clearDocumentHighlightProvider() { remove(documentHighlightProviderKey); }
// The server provides document symbol support.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> documentSymbolProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> documentSymbolProvider() const;
void setDocumentSymbolProvider(std::variant<bool, WorkDoneProgressOptions> documentSymbolProvider);
void clearDocumentSymbolProvider() { remove(documentSymbolProviderKey); }
- Utils::optional<SemanticTokensOptions> semanticTokensProvider() const;
+ std::optional<SemanticTokensOptions> semanticTokensProvider() const;
void setSemanticTokensProvider(const SemanticTokensOptions &semanticTokensProvider);
void clearSemanticTokensProvider() { remove(semanticTokensProviderKey); }
// The server provides workspace symbol support.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> workspaceSymbolProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> workspaceSymbolProvider() const;
void setWorkspaceSymbolProvider(std::variant<bool, WorkDoneProgressOptions> workspaceSymbolProvider);
void clearWorkspaceSymbolProvider() { remove(workspaceSymbolProviderKey); }
// The server provides code actions.
- Utils::optional<std::variant<bool, CodeActionOptions>> codeActionProvider() const;
+ std::optional<std::variant<bool, CodeActionOptions>> codeActionProvider() const;
void setCodeActionProvider(bool codeActionProvider)
{ insert(codeActionProviderKey, codeActionProvider); }
void setCodeActionProvider(CodeActionOptions options)
@@ -342,20 +342,20 @@ public:
void clearCodeActionProvider() { remove(codeActionProviderKey); }
// The server provides code lens.
- Utils::optional<CodeLensOptions> codeLensProvider() const
+ std::optional<CodeLensOptions> codeLensProvider() const
{ return optionalValue<CodeLensOptions>(codeLensProviderKey); }
void setCodeLensProvider(CodeLensOptions codeLensProvider)
{ insert(codeLensProviderKey, codeLensProvider); }
void clearCodeLensProvider() { remove(codeLensProviderKey); }
// The server provides document formatting.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> documentFormattingProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> documentFormattingProvider() const;
void setDocumentFormattingProvider(
const std::variant<bool, WorkDoneProgressOptions> &documentFormattingProvider);
void clearDocumentFormattingProvider() { remove(documentFormattingProviderKey); }
// The server provides document formatting on typing.
- Utils::optional<std::variant<bool, WorkDoneProgressOptions>> documentRangeFormattingProvider() const;
+ std::optional<std::variant<bool, WorkDoneProgressOptions>> documentRangeFormattingProvider() const;
void setDocumentRangeFormattingProvider(std::variant<bool, WorkDoneProgressOptions> documentRangeFormattingProvider);
void clearDocumentRangeFormattingProvider() { remove(documentRangeFormattingProviderKey); }
@@ -365,30 +365,30 @@ public:
using WorkDoneProgressOptions::WorkDoneProgressOptions;
// Renames should be checked and tested before being executed.
- Utils::optional<bool> prepareProvider() const { return optionalValue<bool>(prepareProviderKey); }
+ std::optional<bool> prepareProvider() const { return optionalValue<bool>(prepareProviderKey); }
void setPrepareProvider(bool prepareProvider) { insert(prepareProviderKey, prepareProvider); }
void clearPrepareProvider() { remove(prepareProviderKey); }
};
// The server provides rename support.
- Utils::optional<std::variant<RenameOptions, bool>> renameProvider() const;
+ std::optional<std::variant<RenameOptions, bool>> renameProvider() const;
void setRenameProvider(std::variant<RenameOptions,bool> renameProvider);
void clearRenameProvider() { remove(renameProviderKey); }
// The server provides document link support.
- Utils::optional<DocumentLinkOptions> documentLinkProvider() const
+ std::optional<DocumentLinkOptions> documentLinkProvider() const
{ return optionalValue<DocumentLinkOptions>(documentLinkProviderKey); }
void setDocumentLinkProvider(const DocumentLinkOptions &documentLinkProvider)
{ insert(documentLinkProviderKey, documentLinkProvider); }
void clearDocumentLinkProvider() { remove(documentLinkProviderKey); }
// The server provides color provider support.
- Utils::optional<std::variant<bool, JsonObject>> colorProvider() const;
+ std::optional<std::variant<bool, JsonObject>> colorProvider() const;
void setColorProvider(std::variant<bool, JsonObject> colorProvider);
void clearColorProvider() { remove(colorProviderKey); }
// The server provides execute command support.
- Utils::optional<ExecuteCommandOptions> executeCommandProvider() const
+ std::optional<ExecuteCommandOptions> executeCommandProvider() const
{ return optionalValue<ExecuteCommandOptions>(executeCommandProviderKey); }
void setExecuteCommandProvider(ExecuteCommandOptions executeCommandProvider)
{ insert(executeCommandProviderKey, executeCommandProvider); }
@@ -405,29 +405,29 @@ public:
using JsonObject::JsonObject;
// The server has support for workspace folders
- Utils::optional<bool> supported() const { return optionalValue<bool>(supportedKey); }
+ std::optional<bool> supported() const { return optionalValue<bool>(supportedKey); }
void setSupported(bool supported) { insert(supportedKey, supported); }
void clearSupported() { remove(supportedKey); }
- Utils::optional<std::variant<QString, bool>> changeNotifications() const;
+ std::optional<std::variant<QString, bool>> changeNotifications() const;
void setChangeNotifications(std::variant<QString, bool> changeNotifications);
void clearChangeNotifications() { remove(changeNotificationsKey); }
};
- Utils::optional<WorkspaceFoldersCapabilities> workspaceFolders() const
+ std::optional<WorkspaceFoldersCapabilities> workspaceFolders() const
{ return optionalValue<WorkspaceFoldersCapabilities>(workspaceFoldersKey); }
void setWorkspaceFolders(const WorkspaceFoldersCapabilities &workspaceFolders)
{ insert(workspaceFoldersKey, workspaceFolders); }
void clearWorkspaceFolders() { remove(workspaceFoldersKey); }
};
- Utils::optional<WorkspaceServerCapabilities> workspace() const
+ std::optional<WorkspaceServerCapabilities> workspace() const
{ return optionalValue<WorkspaceServerCapabilities>(workspaceKey); }
void setWorkspace(const WorkspaceServerCapabilities &workspace)
{ insert(workspaceKey, workspace); }
void clearWorkspace() { remove(workspaceKey); }
- Utils::optional<JsonObject> experimental() const { return optionalValue<JsonObject>(experimentalKey); }
+ std::optional<JsonObject> experimental() const { return optionalValue<JsonObject>(experimentalKey); }
void setExperimental(const JsonObject &experimental) { insert(experimentalKey, experimental); }
void clearExperimental() { remove(experimentalKey); }
};
diff --git a/src/libs/languageserverprotocol/textsynchronization.h b/src/libs/languageserverprotocol/textsynchronization.h
index ada8843872..2f77fb26af 100644
--- a/src/libs/languageserverprotocol/textsynchronization.h
+++ b/src/libs/languageserverprotocol/textsynchronization.h
@@ -70,12 +70,12 @@ public:
using JsonObject::JsonObject;
// The range of the document that changed.
- Utils::optional<Range> range() const { return optionalValue<Range>(rangeKey); }
+ std::optional<Range> range() const { return optionalValue<Range>(rangeKey); }
void setRange(Range range) { insert(rangeKey, range); }
void clearRange() { remove(rangeKey); }
// The length of the range that got replaced.
- Utils::optional<int> rangeLength() const { return optionalValue<int>(rangeLengthKey); }
+ std::optional<int> rangeLength() const { return optionalValue<int>(rangeLengthKey); }
void setRangeLength(int rangeLength) { insert(rangeLengthKey, rangeLength); }
void clearRangeLength() { remove(rangeLengthKey); }
@@ -155,7 +155,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT TextDocumentSaveRegistrationOptions
public:
using TextDocumentRegistrationOptions::TextDocumentRegistrationOptions;
- Utils::optional<bool> includeText() const { return optionalValue<bool>(includeTextKey); }
+ std::optional<bool> includeText() const { return optionalValue<bool>(includeTextKey); }
void setIncludeText(bool includeText) { insert(includeTextKey, includeText); }
void clearIncludeText() { remove(includeTextKey); }
};
@@ -172,7 +172,7 @@ public:
void setTextDocument(TextDocumentIdentifier textDocument)
{ insert(textDocumentKey, textDocument); }
- Utils::optional<QString> text() const { return optionalValue<QString>(textKey); }
+ std::optional<QString> text() const { return optionalValue<QString>(textKey); }
void setText(const QString &text) { insert(textKey, text); }
void clearText() { remove(textKey); }
diff --git a/src/libs/languageserverprotocol/workspace.h b/src/libs/languageserverprotocol/workspace.h
index 987a012515..158a6d948b 100644
--- a/src/libs/languageserverprotocol/workspace.h
+++ b/src/libs/languageserverprotocol/workspace.h
@@ -92,11 +92,11 @@ public:
public:
using JsonObject::JsonObject;
- Utils::optional<QString> scopeUri() const { return optionalValue<QString>(scopeUriKey); }
+ std::optional<QString> scopeUri() const { return optionalValue<QString>(scopeUriKey); }
void setScopeUri(const QString &scopeUri) { insert(scopeUriKey, scopeUri); }
void clearScopeUri() { remove(scopeUriKey); }
- Utils::optional<QString> section() const { return optionalValue<QString>(sectionKey); }
+ std::optional<QString> section() const { return optionalValue<QString>(sectionKey); }
void setSection(const QString &section) { insert(sectionKey, section); }
void clearSection() { remove(sectionKey); }
@@ -191,7 +191,7 @@ public:
void setCommand(const QString &command) { insert(commandKey, command); }
void clearCommand() { remove(commandKey); }
- Utils::optional<QJsonArray> arguments() const { return typedValue<QJsonArray>(argumentsKey); }
+ std::optional<QJsonArray> arguments() const { return typedValue<QJsonArray>(argumentsKey); }
void setArguments(const QJsonArray &arguments) { insert(argumentsKey, arguments); }
void clearArguments() { remove(argumentsKey); }
@@ -212,7 +212,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ApplyWorkspaceEditParams : public JsonObject
public:
using JsonObject::JsonObject;
- Utils::optional<QString> label() const { return optionalValue<QString>(labelKey); }
+ std::optional<QString> label() const { return optionalValue<QString>(labelKey); }
void setLabel(const QString &label) { insert(labelKey, label); }
void clearLabel() { remove(labelKey); }