comparison 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
comparison
equal deleted inserted replaced
0:bf79fb79ee13 1:5df24c91468d
2 ;;; editting, history, and completion for jscheme. 2 ;;; editting, history, and completion for jscheme.
3 3
4 ; redirect input to readline reader 4 ; redirect input to readline reader
5 ;(define (set-input-port port) (set! jsint.Scheme.input$ port)) 5 ;(define (set-input-port port) (set! jsint.Scheme.input$ port))
6 6
7 (define (readline-reader prompt) 7 (define jscheme-history ".jscheme_history")
8 (org.gnu.readline.ReadlineReader. prompt 8 (define (readline-reader prompt)
9 (org.gnu.readline.ReadlineReader. prompt (java.io.File. jscheme-history)
9 org.gnu.readline.ReadlineLibrary.GnuReadline$)) 10 org.gnu.readline.ReadlineLibrary.GnuReadline$))
10 11
11 (org.gnu.readline.Readline.initReadline "jscheme") 12 (org.gnu.readline.Readline.initReadline "jscheme")
12 (org.gnu.readline.Readline.readInitFile "/Users/samer/.inputrc") 13 (org.gnu.readline.Readline.readInitFile "/Users/samer/.inputrc")
13 (set! current-readline-reader (readline-reader ":")) 14 (set! current-readline-reader (readline-reader ":"))
14 (.setInput (jsint.Scheme.currentEvaluator) (jsint.InputPort. current-readline-reader)) 15 (.setInput (jsint.Scheme.currentEvaluator) (jsint.InputPort. current-readline-reader))
15 (define (set-prompt prompt) (.setPrompt current-readline-reader prompt)) 16 (define (set-prompt prompt) (.setPrompt current-readline-reader prompt))
16 17
17 18
18 ; this seems to stop terminal getting confused after exit 19 ; this seems to stop terminal getting confused after exit
19 (.addShutdownHook (Runtime.getRuntime) 20 (.addShutdownHook (Runtime.getRuntime)
20 (Thread. (lambda () 21 (Thread. (lambda ()
21 (display "cleaning up readline.\n") 22 (display "cleaning up readline.\n")
23 (org.gnu.readline.Readline.writeHistoryFile jscheme-history)
22 (org.gnu.readline.Readline.cleanup)))) 24 (org.gnu.readline.Readline.cleanup))))
23 25
24 26
25 ; enable completion by looking up words in jscheme's symbol table 27 ; enable completion by looking up words in jscheme's symbol table
26 (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.)) 28 (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.))
27 (set-prompt ">")