Mercurial > hg > jslab
view src/scheme/readline.scm @ 1:5df24c91468d
Oh my what a mess.
author | samer |
---|---|
date | Fri, 05 Apr 2019 16:26:00 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
;;; 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 jscheme-history ".jscheme_history") (define (readline-reader prompt) (org.gnu.readline.ReadlineReader. prompt (java.io.File. jscheme-history) 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.writeHistoryFile jscheme-history) (org.gnu.readline.Readline.cleanup)))) ; enable completion by looking up words in jscheme's symbol table (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.))