From 853451cedc37725ccd2ba6866539feca4575d8ba Mon Sep 17 00:00:00 2001 From: skylarmt Date: Fri, 9 Jan 2015 00:43:28 -0700 Subject: [PATCH] Add autocomplete for shell input --- src/net/apocalypselabs/symat/Interpreter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/net/apocalypselabs/symat/Interpreter.java b/src/net/apocalypselabs/symat/Interpreter.java index f7a7d54..1266027 100644 --- a/src/net/apocalypselabs/symat/Interpreter.java +++ b/src/net/apocalypselabs/symat/Interpreter.java @@ -33,6 +33,8 @@ import java.awt.event.KeyEvent; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.text.DefaultCaret; +import org.fife.ui.autocomplete.AutoCompletion; +import org.fife.ui.autocomplete.CompletionProvider; /** * @@ -45,6 +47,11 @@ public class Interpreter extends javax.swing.JInternalFrame { private int historyIndex = 0; // For going back in time and keeping things straight private String lang = "javascript"; private Object ans = 0; + + private CompletionProvider jscomp = new CodeCompleter("js").getProvider(); + private CompletionProvider pycomp = new CodeCompleter("py").getProvider(); + private AutoCompletion jsac = new AutoCompletion(jscomp); + private AutoCompletion pyac = new AutoCompletion(pycomp); /** * Creates new form Interpreter @@ -62,10 +69,13 @@ public class Interpreter extends javax.swing.JInternalFrame { } cr = new CodeRunner(lang, true); - // Set selected lang menu + // Setup language if (lang.equals("python")) { javascriptMenu.setSelected(false); pythonMenu.setSelected(true); + pyac.install(inputBox); + } else { + jsac.install(inputBox); } // Set font