diff --git a/org.eclipse.lsp4e/META-INF/MANIFEST.MF b/org.eclipse.lsp4e/META-INF/MANIFEST.MF
index c6016e2cd..ed2b9f95a 100644
--- a/org.eclipse.lsp4e/META-INF/MANIFEST.MF
+++ b/org.eclipse.lsp4e/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Language Server Protocol client for Eclipse IDE (Incubation)
Bundle-SymbolicName: org.eclipse.lsp4e;singleton:=true
-Bundle-Version: 0.17.3.qualifier
+Bundle-Version: 0.18.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
org.eclipse.equinox.common;bundle-version="3.8.0",
@@ -43,13 +43,15 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.12.0",
com.google.guava;bundle-version="30.1.0",
org.eclipse.e4.core.commands,
org.eclipse.compare.core,
- org.eclipse.compare
+ org.eclipse.compare,
+ org.eclipse.core.net
Bundle-ClassPath: .
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.eclipse.lsp4e.LanguageServerPlugin
Export-Package: org.eclipse.lsp4e;x-internal:=true,
org.eclipse.lsp4e.command;x-internal:=true,
+ org.eclipse.lsp4e.configuration;x-internal:=true,
org.eclipse.lsp4e.format;x-internal:=true,
org.eclipse.lsp4e.operations.codeactions;x-internal:=true,
org.eclipse.lsp4e.operations.completion;x-internal:=true,
diff --git a/org.eclipse.lsp4e/plugin.xml b/org.eclipse.lsp4e/plugin.xml
index 612355b3d..f712e7e22 100644
--- a/org.eclipse.lsp4e/plugin.xml
+++ b/org.eclipse.lsp4e/plugin.xml
@@ -2,6 +2,7 @@
+
+
+
+
+
diff --git a/org.eclipse.lsp4e/pom.xml b/org.eclipse.lsp4e/pom.xml
index bdc6f0e58..4b42b420c 100644
--- a/org.eclipse.lsp4e/pom.xml
+++ b/org.eclipse.lsp4e/pom.xml
@@ -7,7 +7,7 @@
org.eclipse.lsp4e
eclipse-plugin
- 0.17.3-SNAPSHOT
+ 0.18.0-SNAPSHOT
diff --git a/org.eclipse.lsp4e/schema/languageServer.exsd b/org.eclipse.lsp4e/schema/languageServer.exsd
index ad3dfe7e8..4b7118494 100644
--- a/org.eclipse.lsp4e/schema/languageServer.exsd
+++ b/org.eclipse.lsp4e/schema/languageServer.exsd
@@ -151,6 +151,13 @@ If set to a number bigger than zero, the server will run until the timeout is re
+
+
+
+ comma separated list of configuration prefix that will be send after initialization and after ConfigurationRegistry.notifyChange calls
+
+
+
diff --git a/org.eclipse.lsp4e/schema/languageServerConfiguration.exsd b/org.eclipse.lsp4e/schema/languageServerConfiguration.exsd
new file mode 100644
index 000000000..6d797cdcd
--- /dev/null
+++ b/org.eclipse.lsp4e/schema/languageServerConfiguration.exsd
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+ This extension point allows to define configuration sources.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration provider report supported configuration keys and fetch them on demand
+
+To notify servers about change, implementors should call ConfigurationRegistry.notifyChange
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allow map configuration supported by providers to they alias
+
+
+
+
+
+
+ Original settings paths already support by another provider
+
+
+
+
+
+
+ New settings paths
+
+
+
+
+
+
+
+
+
+
+
+ [Enter the first release in which this extension point appears.]
+
+
+
+
+
+
+
+
+ [Enter extension point usage example here.]
+
+
+
+
+
+
+
+
+ [Enter API information here.]
+
+
+
+
+
+
+
+
+ [Enter information about supplied implementation of this extension point.]
+
+
+
+
+
diff --git a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/LanguageClientImpl.java b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/LanguageClientImpl.java
index 59427d729..b821f934a 100644
--- a/org.eclipse.lsp4e/src/org/eclipse/lsp4e/LanguageClientImpl.java
+++ b/org.eclipse.lsp4e/src/org/eclipse/lsp4e/LanguageClientImpl.java
@@ -26,11 +26,13 @@
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.lsp4e.configuration.ConfigurationRegistry;
import org.eclipse.lsp4e.progress.LSPProgressManager;
import org.eclipse.lsp4e.ui.Messages;
import org.eclipse.lsp4e.ui.UI;
import org.eclipse.lsp4j.ApplyWorkspaceEditParams;
import org.eclipse.lsp4j.ApplyWorkspaceEditResponse;
+import org.eclipse.lsp4j.ConfigurationItem;
import org.eclipse.lsp4j.ConfigurationParams;
import org.eclipse.lsp4j.Location;
import org.eclipse.lsp4j.MessageActionItem;
@@ -75,8 +77,12 @@ protected final LanguageServer getLanguageServer() {
public CompletableFuture> configuration(ConfigurationParams configurationParams) {
// override as needed
List