Mercurial > hg > jslab
diff src/scheme/readline.scm @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children | 5df24c91468d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/scheme/readline.scm Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,27 @@ +;;; sets up java readline to provide command line +;;; editting, history, and completion for jscheme. + +; redirect input to readline reader +;(define (set-input-port port) (set! jsint.Scheme.input$ port)) + +(define (readline-reader prompt) + (org.gnu.readline.ReadlineReader. prompt + org.gnu.readline.ReadlineLibrary.GnuReadline$)) + +(org.gnu.readline.Readline.initReadline "jscheme") +(org.gnu.readline.Readline.readInitFile "/Users/samer/.inputrc") +(set! current-readline-reader (readline-reader ":")) +(.setInput (jsint.Scheme.currentEvaluator) (jsint.InputPort. current-readline-reader)) +(define (set-prompt prompt) (.setPrompt current-readline-reader prompt)) + + +; this seems to stop terminal getting confused after exit +(.addShutdownHook (Runtime.getRuntime) + (Thread. (lambda () + (display "cleaning up readline.\n") + (org.gnu.readline.Readline.cleanup)))) + + +; enable completion by looking up words in jscheme's symbol table +(org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.)) +(set-prompt ">")