From 285f81db65dfd39783cfbeb25528823bf88c646c Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sun, 25 Aug 2013 18:36:37 +0530 Subject: [PATCH] adding option for disabling completions, fixes #10 --- .../mode/experimental/ASTGenerator.java | 4 ++++ .../mode/experimental/DebugEditor.java | 16 ++++++++++++++++ .../processing/mode/experimental/TextArea.java | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index d20b6fc1a..ba6e3301e 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Stack; import java.util.TreeMap; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Pattern; import javax.swing.BorderFactory; @@ -154,6 +155,7 @@ public class ASTGenerator { setupGUI(); //addCompletionPopupListner(); addListeners(); loadJavaDoc(); + predictionsEnabled = new AtomicBoolean(true); } protected void setupGUI(){ @@ -776,8 +778,10 @@ public class ASTGenerator { */ protected ArrayList candidates; protected String lastPredictedWord = " "; + protected AtomicBoolean predictionsEnabled; public void preparePredictions(final String word, final int line, final int lineStartNonWSOffset) { + if(!predictionsEnabled.get()) return; // This method is called from TextArea.fetchPhrase, which is called via a SwingWorker instance // in TextArea.processKeyEvent if(caretWithinLineComment()){ diff --git a/pdex/src/processing/mode/experimental/DebugEditor.java b/pdex/src/processing/mode/experimental/DebugEditor.java index 34e02d598..6506b6e8f 100755 --- a/pdex/src/processing/mode/experimental/DebugEditor.java +++ b/pdex/src/processing/mode/experimental/DebugEditor.java @@ -166,6 +166,11 @@ public class DebugEditor extends JavaEditor implements ActionListener { */ protected JCheckBoxMenuItem writeErrorLog; + /** + * Enable/Disable code completion + */ + protected JCheckBoxMenuItem completionsEnabled; + public DebugEditor(Base base, String path, EditorState state, Mode mode) { super(base, path, state, mode); @@ -521,6 +526,17 @@ public class DebugEditor extends JavaEditor implements ActionListener { }); debugMenu.add(showWarnings); + completionsEnabled = new JCheckBoxMenuItem("Code Completion Enabled"); + completionsEnabled.setSelected(true); + completionsEnabled.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + errorCheckerService.getASTGenerator().predictionsEnabled + .set(((JCheckBoxMenuItem) e.getSource()).isSelected()); + } + }); + debugMenu.add(completionsEnabled); + debugMessagesEnabled = new JCheckBoxMenuItem("Show Debug Messages"); debugMessagesEnabled.setSelected(ExperimentalMode.DEBUG); debugMessagesEnabled.addActionListener(new ActionListener() { diff --git a/pdex/src/processing/mode/experimental/TextArea.java b/pdex/src/processing/mode/experimental/TextArea.java index 4468951dd..0d54ecd5c 100644 --- a/pdex/src/processing/mode/experimental/TextArea.java +++ b/pdex/src/processing/mode/experimental/TextArea.java @@ -179,7 +179,7 @@ public class TextArea extends JEditTextArea { } super.processKeyEvent(evt); - if (evt.getID() == KeyEvent.KEY_TYPED) { + if (evt.getID() == KeyEvent.KEY_TYPED && editor.errorCheckerService.getASTGenerator().predictionsEnabled.get()) { final KeyEvent evt2 = evt; SwingWorker worker = new SwingWorker() { protected Object doInBackground() throws Exception {