Prompt to enable Spring Boot Java source reconciling

This commit is contained in:
aboyko
2022-12-01 22:18:52 -05:00
parent fb3f20c3ea
commit c262b5ac50
6 changed files with 53 additions and 1 deletions

View File

@@ -33,6 +33,8 @@ public class Constants {
public static final String PREF_REWRITE_RECONCILE = "boot-java.rewrite.reconcile";
public static final String PREF_REWRITE_RECONCILE_PROMPT = "rewrite.reconcile-prompt";
public static final String PREF_REWRITE_RECIPE_FILTERS = "boot-java.rewrite.recipe-filters";
public static final String PREF_REWRITE_RECIPES_SCAN_FILES = "boot-java.rewrite.scan-files";

View File

@@ -24,6 +24,7 @@ import java.util.Map;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.lsp4e.server.StreamConnectionProvider;
@@ -32,6 +33,9 @@ import org.eclipse.lsp4j.InitializeResult;
import org.eclipse.lsp4j.jsonrpc.messages.Message;
import org.eclipse.lsp4j.jsonrpc.messages.ResponseMessage;
import org.eclipse.lsp4j.services.LanguageServer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
import org.springframework.tooling.boot.ls.prefs.CategoryProblemsSeverityPrefsPage;
import org.springframework.tooling.boot.ls.prefs.FileListEditor;
import org.springframework.tooling.boot.ls.prefs.ProblemCategoryData;
@@ -155,6 +159,25 @@ public class DelegatingStreamConnectionProvider implements StreamConnectionProvi
//Add remote boot apps listener
RemoteBootAppsDataHolder.getDefault().getRemoteApps().addListener(remoteAppsListener);
IPreferenceStore preferenceStore = BootLanguageServerPlugin.getDefault().getPreferenceStore();
if (preferenceStore.getBoolean(Constants.PREF_REWRITE_RECONCILE_PROMPT) && !preferenceStore.getBoolean(Constants.PREF_REWRITE_RECONCILE)) {
PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
int result = MessageDialog.open(MessageDialog.INFORMATION, Display.getCurrent().getActiveShell(),
"Spring Boot Java Reconciling", "Do you wish to enable Spring Boot Java Reconciling?", SWT.NONE, "Yes", "No", "Do not show again");
switch (result) {
case 0:
preferenceStore.setValue(Constants.PREF_REWRITE_RECONCILE, true);
break;
case 2:
preferenceStore.setValue(Constants.PREF_REWRITE_RECONCILE_PROMPT, false);
break;
default:
break;
}
});
}
}
}
}

View File

@@ -44,6 +44,7 @@ public class PrefsInitializer extends AbstractPreferenceInitializer {
preferenceStore.setDefault(Constants.PREF_SCAN_JAVA_TEST_SOURCES, false);
preferenceStore.setDefault(Constants.PREF_REWRITE_RECONCILE_PROMPT, true);
preferenceStore.setDefault(Constants.PREF_REWRITE_RECONCILE, false);
preferenceStore.setDefault(Constants.PREF_REWRITE_PROJECT_REFACTORINGS, true);

View File

@@ -33,6 +33,8 @@ public class RewritePreferencePage extends FieldEditorPreferencePage implements
addField(new BooleanFieldEditor(Constants.PREF_REWRITE_RECONCILE,
"Reconciling of Java Sources", fieldEditorParent));
addField(new BooleanFieldEditor(Constants.PREF_REWRITE_RECONCILE_PROMPT,
"Prompt for Reconciling of Java Sources", fieldEditorParent));
}