eval help io io.files io.pathnames io.streams.string kernel
lexer listener listener.private make math memoize namespaces
parser prettyprint prettyprint.config quotations sequences sets
-sorting source-files strings summary tools.vocabs vectors
-vocabs vocabs.loader ;
+sorting source-files strings tools.vocabs vectors vocabs
- vocabs.loader vocabs.parser ;
++vocabs.loader vocabs.parser summary ;
IN: fuel
: fuel-end-eval ( -- ) [ ] (fuel-end-eval) ; inline
+ : fuel-run-file ( path -- ) run-file ; inline
+
+ ! Edit locations
+
: fuel-get-edit-location ( defspec -- )
where [
first2 [ (normalize-path) ] dip 2array fuel-eval-set-result
: fuel-get-vocab-location ( vocab -- )
>vocab-link fuel-get-edit-location ; inline
+ ! Completion support
+
+ : fuel-filter-prefix ( seq prefix -- seq )
+ [ drop-prefix nip length 0 = ] curry filter prune ; inline
+
: (fuel-get-vocabs) ( -- seq )
all-vocabs-seq [ vocab-name ] map ; inline
: fuel-get-vocabs ( -- )
(fuel-get-vocabs) fuel-eval-set-result ; inline
+ : fuel-get-vocabs/prefix ( prefix -- )
+ (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 )
>vocab-link words [ name>> ] map ;
: (fuel-get-words) ( prefix names/f -- seq )
[ fuel-vocabs-words ] [ fuel-current-words ] if* natural-sort
- swap [ drop-prefix nip length 0 = ] curry filter ;
+ swap fuel-filter-prefix ;
: fuel-get-words ( prefix names -- )
(fuel-get-words) fuel-eval-set-result ; inline
- : fuel-run-file ( path -- ) run-file ; inline
+
+ ! -run=fuel support
: fuel-startup ( -- ) "listener" run-file ; inline