annotate src/scheme/readline.scm @ 0:bf79fb79ee13
Initial Mercurial check in.
author |
samer |
date |
Tue, 17 Jan 2012 17:50:20 +0000 |
parents |
|
children |
5df24c91468d |
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@0
|
7 (define (readline-reader prompt)
|
samer@0
|
8 (org.gnu.readline.ReadlineReader. prompt
|
samer@0
|
9 org.gnu.readline.ReadlineLibrary.GnuReadline$))
|
samer@0
|
10
|
samer@0
|
11 (org.gnu.readline.Readline.initReadline "jscheme")
|
samer@0
|
12 (org.gnu.readline.Readline.readInitFile "/Users/samer/.inputrc")
|
samer@0
|
13 (set! current-readline-reader (readline-reader ":"))
|
samer@0
|
14 (.setInput (jsint.Scheme.currentEvaluator) (jsint.InputPort. current-readline-reader))
|
samer@0
|
15 (define (set-prompt prompt) (.setPrompt current-readline-reader prompt))
|
samer@0
|
16
|
samer@0
|
17
|
samer@0
|
18 ; this seems to stop terminal getting confused after exit
|
samer@0
|
19 (.addShutdownHook (Runtime.getRuntime)
|
samer@0
|
20 (Thread. (lambda ()
|
samer@0
|
21 (display "cleaning up readline.\n")
|
samer@0
|
22 (org.gnu.readline.Readline.cleanup))))
|
samer@0
|
23
|
samer@0
|
24
|
samer@0
|
25 ; enable completion by looking up words in jscheme's symbol table
|
samer@0
|
26 (org.gnu.readline.Readline.setCompleter (samer.silk.SilkCompleter.))
|
samer@0
|
27 (set-prompt ">")
|