mirror of
https://github.com/processing/processing4.git
synced 2026-02-04 06:09:17 +01:00
Return of the error check toggle
Show Warnings now gets greyed out if check is not enabled
This commit is contained in:
@@ -306,7 +306,7 @@ public class JavaMode extends Mode {
|
||||
// }
|
||||
|
||||
|
||||
// static public volatile boolean errorCheckEnabled = true;
|
||||
static public volatile boolean errorCheckEnabled = true;
|
||||
static public volatile boolean warningsEnabled = true;
|
||||
static public volatile boolean codeCompletionsEnabled = true;
|
||||
static public volatile boolean debugOutputEnabled = false;
|
||||
@@ -325,7 +325,7 @@ public class JavaMode extends Mode {
|
||||
*/
|
||||
volatile public static int codeCompletionTriggerLength = 1;
|
||||
|
||||
// static public final String prefErrorCheck = "pdex.errorCheckEnabled";
|
||||
static public final String prefErrorCheck = "pdex.errorCheckEnabled";
|
||||
static public final String prefWarnings = "pdex.warningsEnabled";
|
||||
static public final String prefDebugOP = "pdex.dbgOutput";
|
||||
static public final String prefErrorLogs = "pdex.writeErrorLogs";
|
||||
@@ -351,7 +351,7 @@ public class JavaMode extends Mode {
|
||||
public void loadPreferences() {
|
||||
Messages.log("Load PDEX prefs");
|
||||
ensurePrefsExist();
|
||||
// errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
|
||||
errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
|
||||
warningsEnabled = Preferences.getBoolean(prefWarnings);
|
||||
codeCompletionsEnabled = Preferences.getBoolean(COMPLETION_PREF);
|
||||
// DEBUG = Preferences.getBoolean(prefDebugOP);
|
||||
@@ -370,7 +370,7 @@ public class JavaMode extends Mode {
|
||||
|
||||
public void savePreferences() {
|
||||
Messages.log("Saving PDEX prefs");
|
||||
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
|
||||
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
|
||||
Preferences.setBoolean(prefWarnings, warningsEnabled);
|
||||
Preferences.setBoolean(COMPLETION_PREF, codeCompletionsEnabled);
|
||||
// Preferences.setBoolean(prefDebugOP, DEBUG);
|
||||
@@ -429,8 +429,8 @@ public class JavaMode extends Mode {
|
||||
|
||||
public void ensurePrefsExist() {
|
||||
//TODO: Need to do a better job of managing prefs. Think lists.
|
||||
// if (Preferences.get(prefErrorCheck) == null)
|
||||
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
|
||||
if (Preferences.get(prefErrorCheck) == null)
|
||||
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
|
||||
if (Preferences.get(prefWarnings) == null)
|
||||
Preferences.setBoolean(prefWarnings, warningsEnabled);
|
||||
if (Preferences.get(COMPLETION_PREF) == null)
|
||||
|
||||
@@ -152,6 +152,7 @@ public class PDEX {
|
||||
|
||||
|
||||
public void preferencesChanged() {
|
||||
errorChecker.preferencesChanged();
|
||||
sketchChanged();
|
||||
}
|
||||
|
||||
@@ -1026,16 +1027,22 @@ public class PDEX {
|
||||
private ScheduledExecutorService scheduler;
|
||||
private volatile ScheduledFuture<?> scheduledUiUpdate = null;
|
||||
private volatile long nextUiUpdate = 0;
|
||||
private volatile boolean enabled = true;
|
||||
|
||||
private final Consumer<PreprocessedSketch> errorHandlerListener = this::handleSketchProblems;
|
||||
|
||||
private JavaEditor editor;
|
||||
private PreprocessingService pps;
|
||||
|
||||
|
||||
public ErrorChecker(JavaEditor editor, PreprocessingService pps) {
|
||||
this.editor = editor;
|
||||
this.pps = pps;
|
||||
scheduler = Executors.newSingleThreadScheduledExecutor();
|
||||
pps.registerListener(errorHandlerListener);
|
||||
this.enabled = JavaMode.errorCheckEnabled;
|
||||
if (enabled) {
|
||||
pps.registerListener(errorHandlerListener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1044,6 +1051,20 @@ public class PDEX {
|
||||
}
|
||||
|
||||
|
||||
public void preferencesChanged() {
|
||||
if (enabled != JavaMode.errorCheckEnabled) {
|
||||
enabled = JavaMode.errorCheckEnabled;
|
||||
if (enabled) {
|
||||
pps.registerListener(errorHandlerListener);
|
||||
} else {
|
||||
pps.unregisterListener(errorHandlerListener);
|
||||
editor.setProblemList(Collections.emptyList());
|
||||
nextUiUpdate = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void dispose() {
|
||||
if (scheduler != null) {
|
||||
scheduler.shutdownNow();
|
||||
|
||||
Reference in New Issue
Block a user