annotate src/scheme/readline.scm @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents 5df24c91468d
children
rev   line source
samer@0 1 ;;; sets up java readline to provide command line
samer@0 2 ;;; editting, history, and completion for jscheme.
samer@0 3
samer@0 4 ; redirect input to readline reader
samer@0 5 ;(define (set-input-port port) (set! jsint.Scheme.input$ port))
samer@0 6
samer@1 7 (define jscheme-history ".jscheme_history")
samer@1 8 (define (readline-reader prompt)
samer@1 9 (org.gnu.readline.ReadlineReader. prompt (java.io.File. jscheme-history)
samer@0 10 org.gnu.readline.ReadlineLibrary.GnuReadline$))
samer@0 11
samer@0 12 (org.gnu.readline.Readline.initReadline "jscheme")
samer@0 13 (org.gnu.readline.Readline.readInitFile "/Users/samer/.inputrc")
samer@0 14 (set! current-readline-reader (readline-reader ":"))
samer@0 15 (.setInput (jsint.Scheme.currentEvaluator) (jsint.InputPort. current-readline-reader))
samer@0 16 (define (set-prompt prompt) (.setPrompt current-readline-reader prompt))
samer@0 17
samer@1 18
samer@0 19 ; this seems to stop terminal getting confused after exit
samer@0 20 (.addShutdownHook (Runtime.getRuntime)
samer@1 21 (Thread. (lambda ()
samer@0 22 (display "cleaning up readline.\n")
samer@1 23 (org.gnu.readline.Readline.writeHistoryFile jscheme-history)
samer@0 24 (org.gnu.readline.Readline.cleanup))))
samer@1 25
samer@0 26
samer@0 27 ; enable completion by looking up words in jscheme's symbol table
samer@0 28 (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.))