FUEL: Description for vocabularies in autodoc mode.

db4
Jose A. Ortega Ruiz 2008-12-18 15:38:40 +01:00
parent 194d0cec41
commit 2156b7bb86
2 changed files with 20 additions and 9 deletions

View File

@ -6,8 +6,8 @@ combinators compiler.units continuations debugger definitions
eval help io io.files io.pathnames io.streams.string kernel eval help io io.files io.pathnames io.streams.string kernel
lexer listener listener.private make math memoize namespaces lexer listener listener.private make math memoize namespaces
parser prettyprint prettyprint.config quotations sequences sets parser prettyprint prettyprint.config quotations sequences sets
sorting source-files strings tools.vocabs vectors vocabs sorting source-files strings summary tools.vocabs vectors
vocabs.loader ; vocabs vocabs.loader ;
IN: fuel IN: fuel
@ -160,6 +160,8 @@ M: source-file fuel-pprint path>> fuel-pprint ;
: fuel-end-eval ( -- ) [ ] (fuel-end-eval) ; inline : fuel-end-eval ( -- ) [ ] (fuel-end-eval) ; inline
: fuel-run-file ( path -- ) run-file ; inline
! Edit locations ! Edit locations
: fuel-get-edit-location ( defspec -- ) : fuel-get-edit-location ( defspec -- )
@ -173,7 +175,7 @@ M: source-file fuel-pprint path>> fuel-pprint ;
! Completion support ! Completion support
: fuel-filter-prefix ( seq prefix -- seq ) : fuel-filter-prefix ( seq prefix -- seq )
[ drop-prefix nip length 0 = ] curry filter ; inline [ drop-prefix nip length 0 = ] curry filter prune ; inline
: (fuel-get-vocabs) ( -- seq ) : (fuel-get-vocabs) ( -- seq )
all-vocabs-seq [ vocab-name ] map ; inline all-vocabs-seq [ vocab-name ] map ; inline
@ -184,6 +186,9 @@ M: source-file fuel-pprint path>> fuel-pprint ;
: fuel-get-vocabs/prefix ( prefix -- ) : fuel-get-vocabs/prefix ( prefix -- )
(fuel-get-vocabs) swap fuel-filter-prefix fuel-eval-set-result ; inline (fuel-get-vocabs) swap fuel-filter-prefix fuel-eval-set-result ; inline
: fuel-vocab-summary ( name -- )
>vocab-link summary fuel-eval-set-result ; inline
MEMO: (fuel-vocab-words) ( name -- seq ) MEMO: (fuel-vocab-words) ( name -- seq )
>vocab-link words [ name>> ] map ; >vocab-link words [ name>> ] map ;
@ -200,7 +205,8 @@ MEMO: (fuel-vocab-words) ( name -- seq )
: fuel-get-words ( prefix names -- ) : fuel-get-words ( prefix names -- )
(fuel-get-words) fuel-eval-set-result ; inline (fuel-get-words) fuel-eval-set-result ; inline
: fuel-run-file ( path -- ) run-file ; inline
! -run=fuel support
: fuel-startup ( -- ) "listener" run-file ; inline : fuel-startup ( -- ) "listener" run-file ; inline

View File

@ -76,12 +76,15 @@
(let ((word (or word (fuel-syntax-symbol-at-point))) (let ((word (or word (fuel-syntax-symbol-at-point)))
(fuel-log--inhibit-p t)) (fuel-log--inhibit-p t))
(when word (when word
(let* ((cmd `(:fuel* (((:quote ,word) synopsis :get)) t)) (let* ((cmd (if (fuel-syntax--in-using)
(ret (fuel-eval--send/wait cmd 20))) `(:fuel* (,word fuel-vocab-summary) t t)
(when (and ret (not (fuel-eval--retort-error ret))) `(:fuel* (((:quote ,word) synopsis :get)) t)))
(ret (fuel-eval--send/wait cmd 20))
(res (fuel-eval--retort-result ret)))
(when (and ret (not (fuel-eval--retort-error ret)) (stringp res))
(if fuel-help-minibuffer-font-lock (if fuel-help-minibuffer-font-lock
(fuel-help--font-lock-str (fuel-eval--retort-result ret)) (fuel-help--font-lock-str res)
(fuel-eval--retort-result ret))))))) res))))))
(make-variable-buffer-local (make-variable-buffer-local
(defvar fuel-autodoc-mode-string " A" (defvar fuel-autodoc-mode-string " A"
@ -234,6 +237,8 @@ buffer."
(define-key map "n" 'fuel-help-next) (define-key map "n" 'fuel-help-next)
(define-key map (kbd "SPC") 'scroll-up) (define-key map (kbd "SPC") 'scroll-up)
(define-key map (kbd "S-SPC") 'scroll-down) (define-key map (kbd "S-SPC") 'scroll-down)
(define-key map "\C-cz" 'run-factor)
(define-key map "\C-c\C-z" 'run-factor)
map)) map))
(defconst fuel-help--headlines (defconst fuel-help--headlines