Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 15 additions & 12 deletions app/src/processing/app/ui/PreferencesFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public class PreferencesFrame {

ColorChooser selector;

// JCheckBox errorCheckerBox;
JCheckBox errorCheckerBox;
JCheckBox warningsCheckerBox;
JCheckBox codeCompletionBox;
JCheckBox importSuggestionsBox;
Expand Down Expand Up @@ -270,8 +270,11 @@ public void mouseClicked(MouseEvent e) {

// [ ] Continuously check for errors - PDE X

// errorCheckerBox =
// new JCheckBox(Language.text("preferences.continuously_check"));
errorCheckerBox =
new JCheckBox(Language.text("preferences.continuously_check"));
errorCheckerBox.addItemListener(e -> {
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
});


// [ ] Show Warnings - PDE X
Expand Down Expand Up @@ -407,9 +410,9 @@ public void actionPerformed(ActionEvent e) {
.addComponent(presentColor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addComponent(editorAntialiasBox)
.addComponent(inputMethodBox)
// .addGroup(layout.createSequentialGroup()
// .addComponent(errorCheckerBox)
// .addComponent(warningsCheckerBox))
.addGroup(layout.createSequentialGroup()
.addComponent(errorCheckerBox)
.addComponent(warningsCheckerBox))
.addComponent(warningsCheckerBox)
.addComponent(codeCompletionBox)
.addComponent(importSuggestionsBox)
Expand Down Expand Up @@ -465,10 +468,9 @@ public void actionPerformed(ActionEvent e) {
.addComponent(presentColor))
.addComponent(editorAntialiasBox)
.addComponent(inputMethodBox)
// .addGroup(layout.createParallelGroup()
// .addComponent(errorCheckerBox)
// .addComponent(warningsCheckerBox))
.addComponent(warningsCheckerBox)
.addGroup(layout.createParallelGroup()
.addComponent(errorCheckerBox)
.addComponent(warningsCheckerBox))
.addComponent(codeCompletionBox)
.addComponent(importSuggestionsBox)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
Expand Down Expand Up @@ -655,7 +657,7 @@ protected void applyFrame() {
autoAssociateBox.isSelected());
}

// Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
Preferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected());
Preferences.setBoolean("pdex.completion", codeCompletionBox.isSelected());
// Preferences.setBoolean("pdex.completion.trigger", codeCompletionTriggerBox.isSelected());
Expand All @@ -670,8 +672,9 @@ protected void applyFrame() {
public void showFrame() {
editorAntialiasBox.setSelected(Preferences.getBoolean("editor.smooth")); //$NON-NLS-1$
inputMethodBox.setSelected(Preferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$
// errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
warningsCheckerBox.setSelected(Preferences.getBoolean("pdex.warningsEnabled"));
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
codeCompletionBox.setSelected(Preferences.getBoolean("pdex.completion"));
//codeCompletionTriggerBox.setSelected(Preferences.getBoolean("pdex.completion.trigger"));
//codeCompletionTriggerBox.setEnabled(codeCompletionBox.isSelected());
Expand Down
12 changes: 6 additions & 6 deletions java/src/processing/mode/java/JavaMode.java
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ void initLogger() {
// }


// 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;
Expand All @@ -325,7 +325,7 @@ void initLogger() {
*/
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";
Expand All @@ -351,7 +351,7 @@ void initLogger() {
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);
Expand All @@ -370,7 +370,7 @@ public void loadPreferences() {

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);
Expand Down Expand Up @@ -429,8 +429,8 @@ public void loadSuggestionsMap() {

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)
Expand Down
23 changes: 22 additions & 1 deletion java/src/processing/mode/java/pdex/PDEX.java
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ public void sketchChanged() {


public void preferencesChanged() {
errorChecker.preferencesChanged();
sketchChanged();
}

Expand Down Expand Up @@ -1026,16 +1027,22 @@ private static class ErrorChecker {
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);
}
}


Expand All @@ -1044,6 +1051,20 @@ public void notifySketchChanged() {
}


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();
Expand Down