Enable codemining when STS4 codelenses enabled.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user