8000 [#115] Remove EnableExpression and enabledWhen from serverProvider by ghentschke · Pull Request #116 · eclipse-cdt/cdt-lsp · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[#115] Remove EnableExpression and enabledWhen from serverProvider #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions bundles/org.eclipse.cdt.lsp.clangd/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,6 @@
<extension
point="org.eclipse.core.expressions.propertyTesters">
<!-- FIXME: AF: Move me to "org.eclipse.cdt.lsp" -->
<propertyTester
class="org.eclipse.cdt.lsp.internal.clangd.editor.expressions.LspEditorPreferencesTester"
id="org.eclipse.cdt.lsp.expressions.lsp.prefer"
namespace="org.eclipse.cdt.lsp"
properties="prefer"
type="java.lang.Object">
</propertyTester>
<!-- FIXME: AF: Move me to "org.eclipse.cdt.lsp[.editor]" -->
<propertyTester
class="org.eclipse.cdt.lsp.internal.clangd.editor.expressions.LspEditorActiveTester"
Expand All @@ -65,12 +58,6 @@
<server
class="org.eclipse.cdt.lsp.internal.clangd.ClangdLanguageServerProvider"
priority="low">
<enabledWhen>
<test
forcePluginActivation="true"
property="org.eclipse.cdt.lsp.prefer">
</test>
</enabledWhen>
</server>
</extension>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import java.util.ArrayList;
import java.util.List;

import org.eclipse.cdt.lsp.server.EnableExpression;
import org.eclipse.cdt.lsp.server.ICLanguageServerProvider;
import org.eclipse.cdt.utils.PathUtil;
import org.eclipse.core.resources.IProject;
Expand All @@ -34,8 +33,6 @@ public abstract class BaseClangdLanguageServerProvider implements ICLanguageServ

protected List<String> commands;

protected EnableExpression enableExpression;

public BaseClangdLanguageServerProvider() {
commands = createCommands();
}
Expand Down Expand Up @@ -69,22 +66,9 @@ protected List<String> createCommands() {
return commands;
}

@Override
public void setEnableExpression(EnableExpression enableExpression) {
this.enableExpression = enableExpression;
}

@Override
public boolean isEnabledFor(IProject project) {
// check if server has been defined:
if (getCommands().isEmpty()) {
return false;
}
// check if enable expression is defined:
if (enableExpression != null) {
return enableExpression.evaluate(project);
}
//language server is always enabled when no enable expression has been defined in the extension point:
return true;
return !getCommands().isEmpty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,18 @@
import org.eclipse.cdt.lsp.internal.clangd.editor.LspEditorUiPlugin;
import org.eclipse.cdt.lsp.internal.clangd.editor.preferences.LspEditorPreferences;
import org.eclipse.cdt.utils.CommandLineUtil;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ProjectScope;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.ServiceCaller;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.core.runtime.preferences.PreferenceMetadata;
import org.eclipse.jface.preference.IPreferenceStore;

public class ClangdLanguageServerProvider extends BaseClangdLanguageServerProvider {
//FIXME: AF: rework to core preferences
private static final IPreferenceStore preferenceStore = LspEditorUiPlugin.getDefault().getLsPreferences();
private static final PreferenceMetadata<Boolean> option = LspEditorPreferences.getPreferenceMetadata();

@Override
protected List<String> createCommands() {
Expand Down Expand Up @@ -63,6 +69,18 @@ private void setPreferenceStoreDefaults(List<String> commands) {
}
}

@Override
public boolean isEnabledFor(IProject project) {
// check if LSP editor is preferred for given project:
return super.isEnabledFor(project) && preferLspEditor(project);
}

private boolean preferLspEditor(IProject project) {
// check project properties:
return Platform.getPreferencesService().getBoolean(LspEditorUiPlugin.PLUGIN_ID, option.identifer(),
option.defaultValue(), new IScopeContext[] { new ProjectScope(project) });
}

private List<String> getCommandsFromStore() {
List<String> commands = new ArrayList<>();
String serverPath = prefere ED4F nceStore.getString(LspEditorPreferences.SERVER_PATH);
Expand Down

This file was deleted.

5 changes: 0 additions & 5 deletions bundles/org.eclipse.cdt.lsp.test/fragment.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@
<server
class="org.eclipse.cdt.lsp.test.server.MockCLanguageServerProvider"
priority="normal">
<enabledWhen>
<test
forcePluginActivation="true"
property="org.eclipse.cdt.lsp.prefer">
</test></enabledWhen>
</server>
</extension>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,22 @@

import java.util.List;

import org.eclipse.cdt.lsp.server.EnableExpression;
import org.eclipse.cdt.lsp.server.ICLanguageServerProvider;
import org.eclipse.core.resources.IProject;

public class MockCLanguageServerProvider implements ICLanguageServerProvider {

@Override
public List<String> getCommands() {
// TODO Auto-generated method stub
return null;
}

@Override
public void setCommands(List<String> commands) {
// TODO Auto-generated method stub

}

@Override
public void setEnableExpression(EnableExpression enableExpression) {
// TODO Auto-generated method stub

}

@Override
public boolean isEnabledFor(IProject project) {
// TODO Auto-generated method stub
return false;
}

Expand Down
30 changes: 2 additions & 28 deletions bundles/org.eclipse.cdt.lsp/schema/serverProvider.exsd
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,8 @@

<element name="server">
<complexType>
<sequence>
<element ref="enabledWhen" minOccurs="0" maxOccurs="1"/>
</sequence>
<choice>
</choice>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
Expand Down Expand Up @@ -87,31 +86,6 @@
</complexType>
</element>

<element name="enabledWhen">
<annotation>
<documentation>
A core Expression that controls the enablement of the server
</documentation>
</annotation>
<complexType>
<choice minOccurs="0" maxOccurs="1">
<element ref="not"/>
<element ref="or"/>
<element ref="and"/>
<element ref="instanceof"/>
<element ref="test"/>
<element ref="systemTest"/>
<element ref="equals"/>
<element ref="count"/>
<element ref="with"/>
<element ref="resolve"/>
<element ref="adapt"/>
<element ref="iterate"/>
<element ref="reference"/>
</choice>
</complexType>
</element>

<annotation>
<appinfo>
<meta.section type="since"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,20 @@
package org.eclipse.cdt.lsp.internal.server;

import java.util.HashMap;
import java.util.Optional;

import org.eclipse.cdt.lsp.LspPlugin;
import org.eclipse.cdt.lsp.server.EnableExpression;
import org.eclipse.cdt.lsp.server.ICLanguageServerProvider;
import org.eclipse.core.expressions.ExpressionConverter;
import org.eclipse.core.expressions.IEvaluationContext;
import org.eclipse.core.runtime.Adapters;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.IHandlerService;

public class CLanguageServerRegistry {
private static final String EXTENSION_ID = LspPlugin.PLUGIN_ID + ".serverProvider"; //$NON-NLS-1$
private static final String SERVER_ELEMENT = "server"; //$NON-NLS-1$
private static final String CLASS = "class"; //$NON-NLS-1$
private static final String PRIORITY = "priority"; //$NON-NLS-1$
private static final String ENABLED_WHEN_ATTRIBUTE = "enabledWhen"; //$NON-NLS-1$
private final IExtensionPoint cExtensionPoint;
private ICLanguageServerProvider prioritizedProvider = null;
private Priority highestPrio = Priority.low;
Expand All @@ -56,26 +49,6 @@ public ICLanguageServerProvider createCLanguageServerProvider() {
ICLanguageServerProvider provider = (ICLanguageServerProvider) getInstanceFromExtension(
configurationElement, ICLanguageServerProvider.class);
if (provider != null) {
// set enable expression:
EnableExpression enableExpression = null;
if (configurationElement.getChildren(ENABLED_WHEN_ATTRIBUTE) != null) {
IConfigurationElement[] enabledWhenElements = configurationElement
.getChildren(ENABLED_WHEN_ATTRIBUTE);
if (enabledWhenElements.length == 1) {
IConfigurationElement enabledWhen = enabledWhenElements[0];
IConfigurationElement[] enabledWhenChildren = enabledWhen.getChildren();
if (enabledWhenChildren.length == 1) {
try {
enableExpression = new EnableExpression(this::getEvaluationContext,
ExpressionConverter.getDefault().perform(enabledWhenChildren[0]));
} catch (CoreException e) {
Platform.getLog(getClass()).warn("Failed to create enable expression for " //$NON-NLS-1$
+ configurationElement.getNamespaceIdentifier(), e);
}
}
}
}
provider.setEnableExpression(enableExpression);
// save priority attribute:
providers.put(Priority.valueOf(configurationElement.getAttribute(PRIORITY)), provider);
}
Expand All @@ -95,11 +68,6 @@ public ICLanguageServerProvider createCLanguageServerProvider() {
return prioritizedProvider;
}

private IEvaluationContext getEvaluationContext() {
return Optional.ofNullable(PlatformUI.getWorkbench().getService(IHandlerService.class))
.map(IHandlerService::getCurrentState).orElse(null);
}

private <T> Object getInstanceFromExtension(IConfigurationElement configurationElement, Class<T> clazz) {
Object result = null;
try {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,6 @@ public default Object getInitializationOptions(URI rootUri) {
return null;
}

/**
* The enable expression is used to determine if the language server should be enabled.
*
* @param enableExpression
*/
public void setEnableExpression(EnableExpression enableExpression);

/**
* Check whether the LSP based C/C++ Editor and the language server shall be used for the given project.
*
Expand Down
Loading
0