Skip to content

Commit 2b9fed2

Browse files
fbricondatho7561
authored andcommitted
feat: enable 'refreshCodeLenses'
Signed-off-by: Fred Bricon <[email protected]>
1 parent 6237178 commit 2b9fed2

File tree

4 files changed

+52
-0
lines changed

4 files changed

+52
-0
lines changed

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JavaClientConnection.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,10 @@ public CompletableFuture<Void> refreshInlayHints() {
217217
return this.client.refreshInlayHints();
218218
}
219219

220+
public CompletableFuture<Void> refreshCodeLenses() {
221+
return this.client.refreshCodeLenses();
222+
}
223+
220224
public void telemetryEvent(Object object) {
221225
if (JavaLanguageServerPlugin.getPreferencesManager() != null
222226
&& JavaLanguageServerPlugin.getPreferencesManager().getPreferences().isTelemetryEnabled()) {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2025 Microsoft Corporation and others.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License 2.0
5+
* which accompanies this distribution, and is available at
6+
* https://www.eclipse.org/legal/epl-2.0/
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
*
10+
* Contributors:
11+
* Microsoft Corporation - initial API and implementation
12+
*******************************************************************************/
13+
14+
package org.eclipse.jdt.ls.core.internal.handlers;
15+
16+
import java.util.Objects;
17+
18+
import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin;
19+
import org.eclipse.jdt.ls.core.internal.preferences.IPreferencesChangeListener;
20+
import org.eclipse.jdt.ls.core.internal.preferences.Preferences;
21+
22+
public class CodeLensPreferenceChangeListener implements IPreferencesChangeListener {
23+
24+
@Override
25+
public void preferencesChange(Preferences oldPreferences, Preferences newPreferences) {
26+
if (oldPreferences.isReferencesCodeLensEnabled() != newPreferences.isReferencesCodeLensEnabled()
27+
|| !Objects.equals(oldPreferences.getImplementationsCodeLens(), newPreferences.getImplementationsCodeLens())) {
28+
refresh();
29+
}
30+
}
31+
32+
private void refresh() {
33+
if (!JavaLanguageServerPlugin.getPreferencesManager()
34+
.getClientPreferences().isCodeLensRefreshSupported()) {
35+
return;
36+
}
37+
JavaLanguageServerPlugin.getInstance().getClientConnection().refreshCodeLenses();
38+
}
39+
}
40+

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InitHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ public IStatus runInWorkspace(IProgressMonitor monitor) {
275275
resetBuildState.run();
276276
projectsManager.registerListeners();
277277
preferenceManager.addPreferencesChangeListener(new InlayHintsPreferenceChangeListener());
278+
preferenceManager.addPreferencesChangeListener(new CodeLensPreferenceChangeListener());
278279
}
279280
return Status.OK_STATUS;
280281
}

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/ClientPreferences.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,13 @@ public boolean isInlayHintRefreshSupported() {
513513
&& capabilities.getWorkspace().getInlayHint().getRefreshSupport().booleanValue();
514514
}
515515

516+
public boolean isCodeLensRefreshSupported() {
517+
return v3supported
518+
&& capabilities.getWorkspace().getCodeLens() != null
519+
&& capabilities.getWorkspace().getCodeLens().getRefreshSupport() != null
520+
&& capabilities.getWorkspace().getCodeLens().getRefreshSupport().booleanValue();
521+
}
522+
516523
public Collection<String> excludedMarkerTypes() {
517524
Object list = extendedClientCapabilities.getOrDefault("excludedMarkerTypes", null);
518525
return list instanceof Collection<?> excludedMarkerTypes //

0 commit comments

Comments
 (0)