From 5eb0e1923ae7a76d68eb9a191afed5f4a4674710 Mon Sep 17 00:00:00 2001 From: Alexander Fedorov Date: Sat, 21 Dec 2019 22:16:24 +0300 Subject: [PATCH] Bug 558549 - Move CDT Language Server preference page to UI bundle Moved preference page and related things to "org.eclipse.cdt.lsp.ui" Change-Id: Idf1251789edbd5f6c82b6fb7f3483c75550d6e29 Signed-off-by: Alexander Fedorov --- lsp/org.eclipse.cdt.lsp.core/.classpath | 2 +- .../META-INF/MANIFEST.MF | 7 ++- .../OSGI-INF/l10n/bundle.properties | 2 - lsp/org.eclipse.cdt.lsp.core/build.properties | 2 +- lsp/org.eclipse.cdt.lsp.core/plugin.xml | 9 ---- .../lsp/core/CPPStreamConnectionProvider.java | 3 +- lsp/org.eclipse.cdt.lsp.ui/.classpath | 2 +- .../META-INF/MANIFEST.MF | 12 ++++- .../OSGI-INF/l10n/bundle.properties | 2 + lsp/org.eclipse.cdt.lsp.ui/build.properties | 6 ++- lsp/org.eclipse.cdt.lsp.ui/plugin.xml | 25 +++++++++ lsp/org.eclipse.cdt.lsp.ui/src/.gitkeep | 0 .../cdt/lsp/internal/ui/LspUiActivator.java | 51 +++++++++++++++++++ .../cdt/lsp/internal/ui/LspUiMessages.java | 0 .../lsp/internal/ui/LspUiMessages.properties | 0 .../CPPLanguageServerPreferencePage.java | 7 ++- 16 files changed, 105 insertions(+), 25 deletions(-) create mode 100644 lsp/org.eclipse.cdt.lsp.ui/plugin.xml delete mode 100644 lsp/org.eclipse.cdt.lsp.ui/src/.gitkeep create mode 100644 lsp/org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/LspUiActivator.java rename lsp/{org.eclipse.cdt.lsp.core => org.eclipse.cdt.lsp.ui}/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.java (100%) rename lsp/{org.eclipse.cdt.lsp.core => org.eclipse.cdt.lsp.ui}/src/org/eclipse/cdt/lsp/internal/ui/LspUiMessages.properties (100%) rename lsp/{org.eclipse.cdt.lsp.core/src/org/eclipse/cdt/lsp/core => org.eclipse.cdt.lsp.ui/src/org/eclipse/cdt/lsp/internal/ui/preferences}/CPPLanguageServerPreferencePage.java (91%) 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); }