FUEL: fallback to the all-words algorithm when search doesnt work
It's to hard to figure out the correct "in" and "usings" values for fuel-eval-in-context when *fuel help* is looking at articles. Instead of trying, fallback on the less precise word lookup algorith and accept that it sometimes will lead you wrong.db4
parent
368abbe777
commit
b9082ca7b1
|
@ -1,9 +1,9 @@
|
||||||
! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
|
! Copyright (C) 2009 Jose Antonio Ortega Ruiz.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
|
||||||
USING: accessors arrays assocs combinators fuel.eval help help.crossref
|
USING: accessors arrays assocs combinators combinators.short-circuit fry
|
||||||
help.markup help.topics io io.streams.string kernel make namespaces
|
fuel.eval help help.crossref help.markup help.topics io io.streams.string
|
||||||
parser prettyprint sequences summary help.vocabs
|
kernel make namespaces parser prettyprint sequences summary help.vocabs
|
||||||
vocabs vocabs.loader vocabs.hierarchy vocabs.metadata vocabs.parser words see
|
vocabs vocabs.loader vocabs.hierarchy vocabs.metadata vocabs.parser words see
|
||||||
listener sets ;
|
listener sets ;
|
||||||
FROM: vocabs.hierarchy => child-vocabs ;
|
FROM: vocabs.hierarchy => child-vocabs ;
|
||||||
|
@ -11,6 +11,11 @@ IN: fuel.help
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
|
! Prefer to use search which takes the execution context into
|
||||||
|
! account. If that fails, fall back on a search of all words.
|
||||||
|
: fuel-find-word ( name -- word/f )
|
||||||
|
{ [ search ] [ '[ name>> _ = ] all-words swap find nip ] } 1|| ;
|
||||||
|
|
||||||
: fuel-value-str ( word -- str )
|
: fuel-value-str ( word -- str )
|
||||||
[ pprint-short ] with-string-writer ; inline
|
[ pprint-short ] with-string-writer ; inline
|
||||||
|
|
||||||
|
@ -88,16 +93,18 @@ SYMBOL: describe-words
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: (fuel-word-help) ( name -- elem )
|
: (fuel-word-help) ( name -- elem )
|
||||||
search [ [ auto-use? on (fuel-word-element) ] with-scope ] [ f ] if* ;
|
fuel-find-word [
|
||||||
|
[ auto-use? on (fuel-word-element) ] with-scope
|
||||||
|
] [ f ] if* ;
|
||||||
|
|
||||||
: (fuel-word-synopsis) ( word usings -- str/f )
|
: (fuel-word-synopsis) ( word usings -- str/f )
|
||||||
[
|
[
|
||||||
[ lookup-vocab ] filter interactive-vocabs [ append ] change
|
[ lookup-vocab ] filter interactive-vocabs [ append ] change
|
||||||
search [ synopsis ] [ f ] if*
|
fuel-find-word [ synopsis ] [ f ] if*
|
||||||
] with-scope ;
|
] with-scope ;
|
||||||
|
|
||||||
: (fuel-word-def) ( name -- str )
|
: (fuel-word-def) ( name -- str )
|
||||||
search [ [ def>> pprint ] with-string-writer ] [ f ] if* ; inline
|
fuel-find-word [ [ def>> pprint ] with-string-writer ] [ f ] if* ; inline
|
||||||
|
|
||||||
: (fuel-vocab-summary) ( name -- str ) >vocab-link summary ; inline
|
: (fuel-vocab-summary) ( name -- str ) >vocab-link summary ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue