diff --git a/lsp/org.eclipse.cdt.lsp.core/.classpath b/lsp/org.eclipse.cdt.lsp.core/.classpath
index 43b986286a9..eca7bdba8f0 100644
--- a/lsp/org.eclipse.cdt.lsp.core/.classpath
+++ b/lsp/org.eclipse.cdt.lsp.core/.classpath
@@ -3,5 +3,5 @@
-
+
diff --git a/lsp/org.eclipse.cdt.lsp.core/META-INF/MANIFEST.MF b/lsp/org.eclipse.cdt.lsp.core/META-INF/MANIFEST.MF
index b4c882c7375..d3a60881ece 100644
--- a/lsp/org.eclipse.cdt.lsp.core/META-INF/MANIFEST.MF
+++ b/lsp/org.eclipse.cdt.lsp.core/META-INF/MANIFEST.MF
@@ -22,9 +22,8 @@ Require-Bundle: com.google.gson;bundle-version="2.8.2",
org.eclipse.cdt.ui
Import-Package: org.eclipse.ui.editors.text,
org.eclipse.ui.texteditor
-Export-Package: org.eclipse.cdt.lsp.core;x-internal:=true,
- org.eclipse.cdt.lsp.core.cquery;x-internal:=true,
- org.eclipse.cdt.lsp.internal.core;x-internal:=true,
- org.eclipse.cdt.lsp.internal.ui;x-internal:=true
+Export-Package: org.eclipse.cdt.lsp.core;x-friends:="org.eclipse.cdt.lsp.ui",
+ org.eclipse.cdt.lsp.core.cquery;x-friends:="org.eclipse.cdt.lsp.ui",
+ org.eclipse.cdt.lsp.internal.core;x-internal:=true
Bundle-Activator: org.eclipse.cdt.lsp.core.Activator
Bundle-ActivationPolicy: lazy
diff --git a/lsp/org.eclipse.cdt.lsp.core/OSGI-INF/l10n/bundle.properties b/lsp/org.eclipse.cdt.lsp.core/OSGI-INF/l10n/bundle.properties
index 024165a2a9b..ad6df68d951 100644
--- a/lsp/org.eclipse.cdt.lsp.core/OSGI-INF/l10n/bundle.properties
+++ b/lsp/org.eclipse.cdt.lsp.core/OSGI-INF/l10n/bundle.properties
@@ -23,5 +23,3 @@ reindex.command.name = Reindex
reindex.command.label = Reindex
cDocumentSetupParticipant =C Document Setup Participant
-
-PreferencePageTitle=C/C++ Language Server
diff --git a/lsp/org.eclipse.cdt.lsp.core/build.properties b/lsp/org.eclipse.cdt.lsp.core/build.properties
index f8751f13210..d9f2b57e30f 100644
--- a/lsp/org.eclipse.cdt.lsp.core/build.properties
+++ b/lsp/org.eclipse.cdt.lsp.core/build.properties
@@ -13,7 +13,7 @@
###############################################################################
source.. = src/
-output.. = target/classes/
+output.. = bin/
bin.includes = META-INF/,\
.,\
OSGI-INF/,\
diff --git a/lsp/org.eclipse.cdt.lsp.core/plugin.xml b/lsp/org.eclipse.cdt.lsp.core/plugin.xml
index 2421fca26c9..5ee553081cf 100644
--- a/lsp/org.eclipse.cdt.lsp.core/plugin.xml
+++ b/lsp/org.eclipse.cdt.lsp.core/plugin.xml
@@ -60,15 +60,6 @@
contentType="org.eclipse.cdt.lsp.core">
-
-
-
-
-
+
diff --git a/lsp/org.eclipse.cdt.lsp.ui/META-INF/MANIFEST.MF b/lsp/org.eclipse.cdt.lsp.ui/META-INF/MANIFEST.MF
index ab01baf73f5..63484bfea9b 100644
--- a/lsp/org.eclipse.cdt.lsp.ui/META-INF/MANIFEST.MF
+++ b/lsp/org.eclipse.cdt.lsp.ui/META-INF/MANIFEST.MF
@@ -1,9 +1,17 @@
Manifest-Version: 1.0
Automatic-Module-Name: org.eclipse.cdt.lsp.ui
Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.cdt.lsp.ui
+Bundle-SymbolicName: org.eclipse.cdt.lsp.ui;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Name: %Bundle-Name
Bundle-Vendor: %Bundle-Vendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.cdt.lsp.core;bundle-version="[1.1.0,2.0.0)"
+Require-Bundle: org.eclipse.osgi;bundle-version="[3.15.0,4.0.0)",
+ org.eclipse.equinox.preferences;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.115.0,4.0.0)",
+ org.eclipse.lsp4e;bundle-version="0.13.1",
+ org.eclipse.cdt.lsp.core;bundle-version="[1.1.0,2.0.0)"
+Export-Package: org.eclipse.cdt.lsp.internal.ui;x-internal:=true,
+ org.eclipse.cdt.lsp.internal.ui.preferences;x-internal:=true
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.cdt.lsp.internal.ui.LspUiActivator
diff --git a/lsp/org.eclipse.cdt.lsp.ui/OSGI-INF/l10n/bundle.properties b/lsp/org.eclipse.cdt.lsp.ui/OSGI-INF/l10n/bundle.properties
index 696470d2a62..8a451bcd9aa 100644
--- a/lsp/org.eclipse.cdt.lsp.ui/OSGI-INF/l10n/bundle.properties
+++ b/lsp/org.eclipse.cdt.lsp.ui/OSGI-INF/l10n/bundle.properties
@@ -14,3 +14,5 @@
Bundle-Name = CDT LSP UI
Bundle-Vendor = Eclipse CDT
+
+preferencePages.languageServer.name=C/C++ Language Server
diff --git a/lsp/org.eclipse.cdt.lsp.ui/build.properties b/lsp/org.eclipse.cdt.lsp.ui/build.properties
index b7c04384294..c91c5656ee2 100644
--- a/lsp/org.eclipse.cdt.lsp.ui/build.properties
+++ b/lsp/org.eclipse.cdt.lsp.ui/build.properties
@@ -12,7 +12,9 @@
###############################################################################
source.. = src/
-output.. = target/classes/
+output.. = bin/
bin.includes = META-INF/,\
.,\
- OSGI-INF/
\ No newline at end of file
+ OSGI-INF/,\
+ plugin.xml
+
diff --git a/lsp/org.eclipse.cdt.lsp.ui/plugin.xml b/lsp/org.eclipse.cdt.lsp.ui/plugin.xml
new file mode 100644
index 00000000000..326451604b2
--- /dev/null
+++ b/lsp/org.eclipse.cdt.lsp.ui/plugin.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/lsp/org.eclipse.cdt.lsp.ui/src/.gitkeep b/lsp/org.eclipse.cdt.lsp.ui/src/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiActivator.java b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiActivator.java
new file mode 100644
index 00000000000..d32bfee6409
--- /dev/null
+++ b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiActivator.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Eclipse Foundation and others.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * https://www.eclipse.org/legal/epl-2.0/.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Alexander Fedorov - initial API and implementatin
+ *******************************************************************************/
+package org.eclipse.cdt.lsp.internal.ui;
+
+import org.eclipse.cdt.lsp.core.Activator;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+//FIXME: try to remove this class during upcoming preference access rework
+public class LspUiActivator implements BundleActivator {
+
+ private static LspUiActivator plugin;
+ private IPreferenceStore preferenceStore;
+
+ public static LspUiActivator getDefault() {
+ return plugin;
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ plugin = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ preferenceStore = null;
+ plugin = null;
+ }
+
+ //FIXME: currently we are still using "core" bundle to store preferences, to be revisited
+ public IPreferenceStore getLspCorePreferences() {
+ if (preferenceStore == null) {
+ preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, Activator.PLUGIN_ID);
+ }
+ return preferenceStore;
+ }
+
+}
diff --git a/lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.java b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.java
similarity index 100%
rename from lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.java
rename to lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.java
diff --git a/lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.properties b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.properties
similarity index 100%
rename from lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.properties
rename to lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.properties
diff --git a/lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/core/CPPLanguageServerPreferencePage.java b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/preferences/CPPLanguageServerPreferencePage.java
similarity index 91%
rename from lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/core/CPPLanguageServerPreferencePage.java
rename to lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/preferences/CPPLanguageServerPreferencePage.java
index 1aea605bdec..407952a90d6 100644
--- a/lsp/org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/core/CPPLanguageServerPreferencePage.java
+++ b/lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/preferences/CPPLanguageServerPreferencePage.java
@@ -13,10 +13,13 @@
* Alexander Fedorov - Bug 558516
*******************************************************************************/
-package org.eclipse.cdt.lsp.core;
+package org.eclipse.cdt.lsp.internal.ui.preferences;
import java.io.File;
+import org.eclipse.cdt.lsp.core.CPPStreamConnectionProvider;
+import org.eclipse.cdt.lsp.core.PreferenceConstants;
+import org.eclipse.cdt.lsp.internal.ui.LspUiActivator;
import org.eclipse.cdt.lsp.internal.ui.LspUiMessages;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
@@ -39,7 +42,7 @@ public class CPPLanguageServerPreferencePage extends FieldEditorPreferencePage i
public CPPLanguageServerPreferencePage() {
super(GRID);
- setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setPreferenceStore(LspUiActivator.getDefault().getLspCorePreferences());
setDescription(LspUiMessages.CPPLanguageServerPreferencePage_description);
}