diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2013-04-15 04:08:08 +0200 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2013-04-15 04:08:08 +0200 | 
| commit | c00f24907cf87589f4b28885507443d419385502 (patch) | |
| tree | ad53486c2f6654ec8263cf367138baba2be7261a /scheme/racket/geiser/user.rkt | |
| parent | 82165389e02b4ff29bade2a2b34903142e3bc73a (diff) | |
| download | geiser-guile-c00f24907cf87589f4b28885507443d419385502.tar.gz geiser-guile-c00f24907cf87589f4b28885507443d419385502.tar.bz2 | |
Racket: better help commands
For some reason that i don't fully understand, evaluating a function
in the racket/base namespace first thing after loading errortrace
breaks the help macro (!).  This patches provides a workaround by
actually invoking help first thing when Geiser starts, with alibi that
it serves to preload the help index (in a separate thread).
While i was at it, i improved the message printed in the minibuffer
when no help is found.
Diffstat (limited to 'scheme/racket/geiser/user.rkt')
| -rw-r--r-- | scheme/racket/geiser/user.rkt | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/scheme/racket/geiser/user.rkt b/scheme/racket/geiser/user.rkt index b7519b2..6aabe5e 100644 --- a/scheme/racket/geiser/user.rkt +++ b/scheme/racket/geiser/user.rkt @@ -9,14 +9,16 @@  ;; Start date: Wed Mar 31, 2010 22:24 -#lang racket/base +#lang racket  (provide init-geiser-repl run-geiser-server start-geiser)  (require (for-syntax racket/base)           mzlib/thread           racket/tcp +         racket/help           geiser +         geiser/autodoc           geiser/images           geiser/enter           geiser/eval @@ -79,6 +81,7 @@           [(geiser-no-values) (datum->syntax #f (void))]           [(add-to-load-path) (add-to-load-path (read))]           [(set-image-cache) (image-cache (read))] +         [(help) (get-help (read) (read))]           [(image-cache) (image-cache)]           [(gcd) (current-directory)]           [(cd) (current-directory (read))] @@ -93,9 +96,14 @@  (define (geiser-prompt-read prompt)    (make-repl-reader (geiser-read prompt))) +(define (preload-help) +  (thread (lambda () +            (with-output-to-string (lambda () (help meh-i-dont-exist)))))) +  (define (init-geiser-repl)    (compile-enforce-module-constants #f)    (current-load/use-compiled geiser-loader) +  (preload-help)    (current-prompt-read (geiser-prompt-read geiser-prompt))    (current-print maybe-print-image)) @@ -124,5 +132,6 @@                      lsner)))))  (define (start-geiser (port 0) (hostname #f) (enforce-module-constants #f)) -  (thread (lambda () (run-geiser-server port enforce-module-constants hostname))) +  (thread (lambda () +            (run-geiser-server port enforce-module-constants hostname)))    (channel-get server-channel)) | 
