Enable codemining when STS4 codelenses enabled.

This commit is contained in:
Kris De Volder
2018-12-17 13:28:11 -08:00
parent d2e49a5139
commit 49654fc832
4 changed files with 44 additions and 13 deletions

View File

@@ -56,14 +56,3 @@ org.eclipse.oomph.setup.ui/enable.preference.recorder=false
# Enable m2e APT. See: https://www.pivotaltracker.com/story/show/160300760
org.jboss.tools.maven.apt/org.jboss.tools.maven.apt.aptProcessDuringReconcile=true
org.jboss.tools.maven.apt/org.jboss.tools.maven.apt.mode=jdt_apt
# PT 162633928. JDT Code mining preference controls boot LS code lens preference. The
# following preferences are required in order to allow boot LS code lenses to appear
# in the editor IF the boot LS code lens preference is enabled
org.eclipse.jdt.ui/editor_codemining_enabled=true
org.eclipse.jdt.ui/java.codemining.references=false
org.eclipse.jdt.ui/java.codemining.references.onMethods=false
org.eclipse.jdt.ui/java.codemining.references.onFields=false
org.eclipse.jdt.ui/java.codemining.references.onTypes=false
org.eclipse.jdt.ui/java.codemining.implementations=false
org.eclipse.jdt.ui/java.codemining.atLeastOne=false

View File

@@ -45,8 +45,8 @@ public class BootLanguageServerPlugin extends AbstractUIPlugin {
public void start(BundleContext context) throws Exception {
plugin = this;
super.start(context);
deactivateDuplicateKeybindings();
BootLanguageServerPreferencesPage.manageCodeMiningPreferences();
}
@Override

View File

@@ -10,9 +10,13 @@
*******************************************************************************/
package org.springframework.tooling.boot.ls;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
@@ -33,6 +37,44 @@ public class BootLanguageServerPreferencesPage extends FieldEditorPreferencePage
public BootLanguageServerPreferencesPage() {
}
/**
* Starts a preference change listener that keeps code mining preferences in sync with
* whether or not STS4 codelenses are enabled.
*/
public static void manageCodeMiningPreferences() {
IPreferenceStore ourPrefs = LanguageServerCommonsActivator.getInstance().getPreferenceStore();
synchronizeCodeMiningPrefs(ourPrefs);
ourPrefs.addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getProperty().equals(PreferenceConstants.HIGHLIGHT_CODELENS_PREFS)) {
synchronizeCodeMiningPrefs(ourPrefs);
}
}
});
}
private static void synchronizeCodeMiningPrefs(IPreferenceStore ourPrefs) {
boolean codeLensEnabled = ourPrefs.getBoolean(PreferenceConstants.HIGHLIGHT_CODELENS_PREFS);
if (codeLensEnabled) {
//Make sure jdt code mining is enabled. Codelenses do not work without it.
IEclipsePreferences jdtPrefs = InstanceScope.INSTANCE.getNode("org.eclipse.jdt.ui");
boolean codeMiningIsEnabled = jdtPrefs.getBoolean("editor_codemining_enabled", false);
if (!codeMiningIsEnabled) {
jdtPrefs.putBoolean("editor_codemining_enabled", true);
//Disable all individual code minings. Since code mining wasn't enabled before...
//This merely serves to ensure they don't start showing up all of a sudden.
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.references", false);
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.references.onMethods", false);
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.references.onFields", false);
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.references.onTypes", false);
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.implementations", false);
jdtPrefs.putBoolean("org.eclipse.jdt.ui/java.codemining.atLeastOne", false);
}
}
}
@Override
public void init(IWorkbench workbench) {
setPreferenceStore(BootLanguageServerPlugin.getDefault().getPreferenceStore());

View File

@@ -73,7 +73,7 @@ public class SpringBootLanguageServer extends STS4LanguageServerProcessStreamCon
error = e;
}
}
if (!dataFile.exists()) {
if (bundleVersion.endsWith("qualifier")) {
File userHome = new File(System.getProperty("user.home"));
File locallyBuiltJar = new File(
userHome,