public InteractiveInterpreterConsole( IInterpreter interpreter, String name, String prompt, String continuationPrompt) { super(name, CONSOLE_TYPE, null, false); this.interpreter = interpreter; commandExecutor = new CommandExecutor(this); consoleOutputStream = new ConsoleOutputStream(this); interpreter.setConsole(this); this.prompt = prompt; this.continuationPrompt = continuationPrompt; commandHistory = new CommandHistory(); documentListener = new ConsoleDocumentListener(this); documentListener.registerListener(); partitioner = new InterpreterConsolePartitioner(); IDocument doc = getDocument(); doc.setDocumentPartitioner(partitioner); partitioner.connect(doc); documentListener.enable(); setFont(); }
@Override public void terminate() { boolean wasTerminated; synchronized (this) { wasTerminated = terminated; terminated = true; } if (!wasTerminated) { partitionerFinished(); documentListener.deregisterListener(); commandExecutor.terminate(); interpreter.interrupt(); interpreter.terminate(); } }
protected String getCurrentConsoleInput() { return documentListener.getCurrentBufferContent(); }