Skip to content

Commit d742e8d

Browse files
committed
Use LS enable tester from active language server provider
In case the language server will be provided by a different plug-in, the enable check from that provider shall be used.
1 parent 30cc7ed commit d742e8d

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

bundles/org.eclipse.cdt.lsp.editor.ui/src/org/eclipse/cdt/lsp/editor/ui/clangd/CProjectChangeMonitor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,17 @@
1414
package org.eclipse.cdt.lsp.editor.ui.clangd;
1515

1616
import java.io.IOException;
17+
import java.util.Optional;
1718

1819
import org.eclipse.cdt.core.CCorePlugin;
1920
import org.eclipse.cdt.core.settings.model.CProjectDescriptionEvent;
2021
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
2122
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
2223
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionListener;
24+
import org.eclipse.cdt.lsp.LspPlugin;
2325
import org.eclipse.cdt.lsp.LspUtils;
2426
import org.eclipse.cdt.lsp.editor.ui.LspEditorUiMessages;
2527
import org.eclipse.cdt.lsp.editor.ui.LspEditorUiPlugin;
26-
import org.eclipse.cdt.lsp.editor.ui.preference.LspEditorPreferencesTester;
2728
import org.eclipse.core.resources.IProject;
2829
import org.eclipse.core.runtime.CoreException;
2930
import org.eclipse.core.runtime.IStatus;
@@ -39,7 +40,8 @@ public void handleEvent(CProjectDescriptionEvent event) {
3940
ICProjectDescription newCProjectDecription = event.getNewCProjectDescription();
4041
if (newCProjectDecription != null) {
4142
IProject project = event.getProject();
42-
if (project != null && LspEditorPreferencesTester.preferLspEditor(project)) {
43+
boolean isEnabled = Optional.ofNullable(LspPlugin.getDefault()).map(LspPlugin::getCLanguageServerProvider).map(provider -> provider.isEnabledFor(project)).orElse(Boolean.FALSE);
44+
if (project != null && isEnabled) {
4345
ICConfigurationDescription newConfig = newCProjectDecription.getDefaultSettingConfiguration();
4446
var cwdBuilder = newConfig.getBuildSetting().getBuilderCWD();
4547
if (cwdBuilder != null) {

bundles/org.eclipse.cdt.lsp.editor.ui/src/org/eclipse/cdt/lsp/editor/ui/preference/LspEditorPreferencesTester.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ public boolean test(Object receiver, String property, Object[] args, Object expe
7272
} else if (receiver instanceof DocumentSymbolWithFile) {
7373
// called to enable the LS based CSymbolsContentProvider:
7474
return true;
75+
} else if (receiver instanceof IProject) {
76+
return preferLspEditor((IProject) receiver);
7577
}
7678
return false;
7779
}
7880

79-
public static boolean preferLspEditor(IProject project) {
81+
private static boolean preferLspEditor(IProject project) {
8082
// check project properties:
8183
PreferenceMetadata<Boolean> option = LspEditorPreferences.getPreferenceMetadata();
8284
return Platform.getPreferencesService().getBoolean(LspEditorUiPlugin.PLUGIN_ID, option.identifer(),

0 commit comments

Comments
 (0)