diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index ede894eca..b0a47eb88 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -779,11 +779,11 @@ public class ASTGenerator { */ protected ArrayList candidates; protected String lastPredictedWord = " "; - protected AtomicBoolean predictionsEnabled; + //protected AtomicBoolean predictionsEnabled; protected int predictionMinLength = 3; public void preparePredictions(final String word, final int line, final int lineStartNonWSOffset) { - if(!predictionsEnabled.get()) return; + if(!ExperimentalMode.codeCompletionsEnabled) return; if(word.length() < predictionMinLength) return; // This method is called from TextArea.fetchPhrase, which is called via a SwingWorker instance // in TextArea.processKeyEvent diff --git a/pdex/src/processing/mode/experimental/DebugEditor.java b/pdex/src/processing/mode/experimental/DebugEditor.java index 663b27896..23d42fae9 100755 --- a/pdex/src/processing/mode/experimental/DebugEditor.java +++ b/pdex/src/processing/mode/experimental/DebugEditor.java @@ -326,12 +326,10 @@ public class DebugEditor extends JavaEditor implements ActionListener { // Added temporarily to dump error log. TODO: Remove this later public void internalCloseRunner(){ - if(enableErrorLogging) writeErrorsToFile(); + if(ExperimentalMode.errorLogsEnabled) writeErrorsToFile(); super.internalCloseRunner(); } - protected boolean enableErrorLogging = false; - private void writeErrorsToFile(){ if (errorCheckerService.tempErrorLog.size() == 0) return; @@ -525,12 +523,12 @@ public class DebugEditor extends JavaEditor implements ActionListener { JCheckBoxMenuItem item; final DebugEditor thisEditor = this; item = new JCheckBoxMenuItem("Error Checker Enabled"); - item.setSelected(true); + item.setSelected(ExperimentalMode.errorCheckEnabled); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - + ExperimentalMode.errorCheckEnabled = ((JCheckBoxMenuItem) e.getSource()).isSelected(); if (!((JCheckBoxMenuItem) e.getSource()).isSelected()) { // unticked Menu Item errorCheckerService.pauseThread(); @@ -571,12 +569,12 @@ public class DebugEditor extends JavaEditor implements ActionListener { debugMenu.add(problemWindowMenuCB); showWarnings = new JCheckBoxMenuItem("Warnings Enabled"); - showWarnings.setSelected(true); + showWarnings.setSelected(ExperimentalMode.warningsEnabled); showWarnings.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - errorCheckerService.warningsEnabled = ((JCheckBoxMenuItem) e + ExperimentalMode.warningsEnabled = ((JCheckBoxMenuItem) e .getSource()).isSelected(); errorCheckerService.runManualErrorCheck(); } @@ -588,8 +586,8 @@ public class DebugEditor extends JavaEditor implements ActionListener { completionsEnabled.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - errorCheckerService.getASTGenerator().predictionsEnabled - .set(((JCheckBoxMenuItem) e.getSource()).isSelected()); + ExperimentalMode.codeCompletionsEnabled = (((JCheckBoxMenuItem) e + .getSource()).isSelected()); } }); debugMenu.add(completionsEnabled); @@ -610,11 +608,11 @@ public class DebugEditor extends JavaEditor implements ActionListener { debugMenu.add(showOutline); writeErrorLog = new JCheckBoxMenuItem("Write Errors to Log"); - writeErrorLog.setSelected(enableErrorLogging); + writeErrorLog.setSelected(ExperimentalMode.errorLogsEnabled); writeErrorLog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - enableErrorLogging = !enableErrorLogging; + ExperimentalMode.errorLogsEnabled = !ExperimentalMode.errorLogsEnabled; } }); debugMenu.add(writeErrorLog); diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index 94baf0ede..7ca5ba89f 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -559,7 +559,7 @@ public class ErrorCheckerService implements Runnable{ } // If warnings are disabled, skip 'em - if (p.isWarning() && !warningsEnabled) { + if (p.isWarning() && !ExperimentalMode.warningsEnabled) { continue; } problemsList.add(p); @@ -724,11 +724,6 @@ public class ErrorCheckerService implements Runnable{ @SuppressWarnings("rawtypes") protected Map compilerSettings; - /** - * Enable/Disable warnings from being shown - */ - volatile public boolean warningsEnabled = true; - /** * Sets compiler options for JDT Compiler */ diff --git a/pdex/src/processing/mode/experimental/ExperimentalMode.java b/pdex/src/processing/mode/experimental/ExperimentalMode.java index db5f793b6..b530782fb 100755 --- a/pdex/src/processing/mode/experimental/ExperimentalMode.java +++ b/pdex/src/processing/mode/experimental/ExperimentalMode.java @@ -35,6 +35,7 @@ import processing.app.Base; import processing.app.Editor; import processing.app.EditorState; import processing.app.Mode; +import processing.app.Preferences; import processing.mode.java.JavaMode; @@ -114,6 +115,44 @@ public class ExperimentalMode extends JavaMode { Base.getContentFile("modes/java/keywords.txt") }; } + + volatile public static boolean errorCheckEnabled = true, warningsEnabled = true, + codeCompletionsEnabled = true, debugOutputEnabled = false, errorLogsEnabled = false; + + public final String prefErrorCheck = "pdex.errorCheckEnabled", + prefWarnings = "pdex.warningsEnabled", + prefCodeCompletionEnabled = "pdex.ccEnabled", + prefDebugOP = "pdex.dbgOutput", prefErrorLogs = "pdex.writeErrorLogs"; + + public void loadPreferences(){ + ensurePrefsExist(); + errorCheckEnabled = Preferences.getBoolean(prefErrorCheck); + warningsEnabled = Preferences.getBoolean(prefWarnings); + codeCompletionsEnabled = Preferences.getBoolean(prefCodeCompletionEnabled); + debugOutputEnabled = Preferences.getBoolean(prefDebugOP); + errorCheckEnabled = Preferences.getBoolean(prefErrorLogs); + } + + public void savePreferences(){ + Preferences.setBoolean(prefErrorCheck, errorCheckEnabled); + Preferences.setBoolean(prefWarnings, warningsEnabled); + Preferences.setBoolean(prefCodeCompletionEnabled, codeCompletionsEnabled); + Preferences.setBoolean(prefDebugOP, debugOutputEnabled); + Preferences.setBoolean(prefErrorLogs,errorLogsEnabled); + } + + public void ensurePrefsExist(){ + if(Preferences.get(prefErrorCheck) == null) + Preferences.setBoolean(prefErrorCheck,errorCheckEnabled); + if(Preferences.get(prefWarnings) == null) + Preferences.setBoolean(prefWarnings,warningsEnabled); + if(Preferences.get(prefCodeCompletionEnabled) == null) + Preferences.setBoolean(prefCodeCompletionEnabled,codeCompletionsEnabled); + if(Preferences.get(prefDebugOP) == null) + Preferences.setBoolean(prefDebugOP,debugOutputEnabled); + if(Preferences.get(prefErrorLogs) == null) + Preferences.setBoolean(prefErrorLogs,errorLogsEnabled); + } /** diff --git a/pdex/src/processing/mode/experimental/TextArea.java b/pdex/src/processing/mode/experimental/TextArea.java index 6b2dd7a19..4a083e60c 100644 --- a/pdex/src/processing/mode/experimental/TextArea.java +++ b/pdex/src/processing/mode/experimental/TextArea.java @@ -185,7 +185,6 @@ public class TextArea extends JEditTextArea { protected Object doInBackground() throws Exception { errorCheckerService.runManualErrorCheck(); // Provide completions only if it's enabled - if(editor.errorCheckerService.getASTGenerator().predictionsEnabled.get()) log(" Typing: " + fetchPhrase(evt2) + " " + (evt2.getKeyChar() == KeyEvent.VK_ENTER)); return null;