Mercurial > hg > jslab
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.)) |