diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/ClientCapabilitiesWrapper.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/ClientCapabilitiesWrapper.java index 12ba33097..8b99542c3 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/ClientCapabilitiesWrapper.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/ClientCapabilitiesWrapper.java @@ -119,6 +119,10 @@ public boolean isDidChangeWatchedFilesRegistered() { return v3Supported && isDynamicRegistrationSupported(capabilities.getWorkspace().getDidChangeWatchedFiles()); } + public boolean isExecuteCommandDynamicRegistrationSupported() { + return v3Supported && isDynamicRegistrationSupported(capabilities.getWorkspace().getExecuteCommand()); + } + public boolean isLinkedEditingRangeDynamicRegistered() { return v3Supported && isDynamicRegistrationSupported(getTextDocument().getLinkedEditingRange()); } diff --git a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/XMLCapabilityManager.java b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/XMLCapabilityManager.java index 3a37648ee..6fc5b454c 100644 --- a/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/XMLCapabilityManager.java +++ b/org.eclipse.lemminx/src/main/java/org/eclipse/lemminx/settings/capabilities/XMLCapabilityManager.java @@ -176,7 +176,7 @@ public void initializeCapabilities() { if (this.getClientCapabilities().isDefinitionDynamicRegistered()) { registerCapability(DEFINITION_ID, TEXT_DOCUMENT_DEFINITION); } - if (this.getClientCapabilities().isDefinitionDynamicRegistered()) { + if (this.getClientCapabilities().isTypeDefinitionDynamicRegistered()) { registerCapability(TYPEDEFINITION_ID, TEXT_DOCUMENT_TYPEDEFINITION); } if (this.getClientCapabilities().isReferencesDynamicRegistrationSupported()) { @@ -203,8 +203,10 @@ private void registerWatchedFiles() { } public void registerExecuteCommand(List commands) { - registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, + if (this.getClientCapabilities().isExecuteCommandDynamicRegistrationSupported()) { + registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, new ExecuteCommandOptions(commands)); + } } /**