From 1a8ac61267e5af45f459825ffd341792f4769495 Mon Sep 17 00:00:00 2001 From: Daniel Laing Date: Mon, 28 Jul 2025 14:49:43 +0100 Subject: [PATCH 1/3] Check for dynamic registration in textDocument/typeDefinition and workspace/executeCommand (#1142) --- .../settings/capabilities/ClientCapabilitiesWrapper.java | 4 ++++ .../settings/capabilities/XMLCapabilityManager.java | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) 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..9ed007081 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 isExecuteCommandRegistered() { + 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..8a40bf42a 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, - new ExecuteCommandOptions(commands)); + if (this.getClientCapabilities().isExecuteCommandRegistered()) { + registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, + new ExecuteCommandOptions(commands)); + } } /** From 5d0cfc69cf8916c52828b677ee203a4ad8611463 Mon Sep 17 00:00:00 2001 From: Daniel Laing Date: Mon, 28 Jul 2025 15:42:04 +0100 Subject: [PATCH 2/3] Ammend 1a8ac61: Formatting --- .../lemminx/settings/capabilities/XMLCapabilityManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8a40bf42a..fa0ed993a 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 @@ -205,7 +205,7 @@ private void registerWatchedFiles() { public void registerExecuteCommand(List commands) { if (this.getClientCapabilities().isExecuteCommandRegistered()) { registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, - new ExecuteCommandOptions(commands)); + new ExecuteCommandOptions(commands)); } } From a2057779e5162dc161ac8ed932a073c37365127e Mon Sep 17 00:00:00 2001 From: Daniel Laing Date: Mon, 28 Jul 2025 16:06:14 +0100 Subject: [PATCH 3/3] Rename execute command capability function and fix indentation --- .../settings/capabilities/ClientCapabilitiesWrapper.java | 6 +++--- .../settings/capabilities/XMLCapabilityManager.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) 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 9ed007081..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,9 +119,9 @@ public boolean isDidChangeWatchedFilesRegistered() { return v3Supported && isDynamicRegistrationSupported(capabilities.getWorkspace().getDidChangeWatchedFiles()); } - public boolean isExecuteCommandRegistered() { - return v3Supported && isDynamicRegistrationSupported(capabilities.getWorkspace().getExecuteCommand()); - } + 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 fa0ed993a..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 @@ -203,10 +203,10 @@ private void registerWatchedFiles() { } public void registerExecuteCommand(List commands) { - if (this.getClientCapabilities().isExecuteCommandRegistered()) { - registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, - new ExecuteCommandOptions(commands)); - } + if (this.getClientCapabilities().isExecuteCommandDynamicRegistrationSupported()) { + registerCapability(WORKSPACE_EXECUTE_COMMAND_ID, WORKSPACE_EXECUTE_COMMAND, + new ExecuteCommandOptions(commands)); + } } /**