FUEL: improved fuel-get-uses

The path to the source file needs to be set when parsing, in case a
syntax word uses 'where' or some similar word.
factor-shell
Björn Lindqvist 2018-01-28 03:48:09 +01:00
parent d95d9e0ec8
commit 5709e0b621
2 changed files with 14 additions and 13 deletions

View File

@ -1,8 +1,8 @@
! Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs compiler.units continuations fuel.eval
USING: accessors assocs compiler.units continuations fry fuel.eval
fuel.help fuel.xref help.topics io.pathnames kernel namespaces parser
parser.notes sequences tools.scaffold vocabs vocabs.files
parser.notes sequences source-files tools.scaffold vocabs vocabs.files
vocabs.hierarchy vocabs.loader vocabs.metadata vocabs.parser words ;
IN: fuel
@ -48,12 +48,6 @@ SYMBOL: :uses-suggestions
[ manifest get auto-used>> clone :uses prefix fuel-eval-set-result ]
print-use-hook set ;
: get-uses ( lines -- )
[
parser-quiet? on
parse-fresh drop
] curry with-compilation-unit ; inline
PRIVATE>
: fuel-use-suggested-vocabs ( ..a suggestions quot: ( ..a -- ..b ) -- ..b )
@ -61,13 +55,20 @@ PRIVATE>
[ try-suggested-restarts rethrow ] recover ; inline
: fuel-run-file ( path -- )
[ set-use-hook run-file ] curry with-scope ; inline
'[ _ set-use-hook run-file ] with-scope ; inline
: fuel-with-autouse ( ..a quot: ( ..a -- ..b ) -- ..b )
[ set-use-hook call ] curry with-scope ; inline
'[ _ set-use-hook call ] with-scope ; inline
: fuel-get-uses ( lines -- )
[ get-uses ] curry fuel-with-autouse ;
: fuel-get-uses ( name lines -- )
'[
[
_ [
parser-quiet? on
_ parse-fresh drop
] with-source-file
] with-compilation-unit
] fuel-with-autouse ;
! Edit locations

View File

@ -109,7 +109,7 @@
(let* ((lines (fuel-debug--file-lines file))
(old-usings (fuel-debug--current-usings file))
(cmd `(:fuel ((V{ ,@old-usings }
[ V{ ,@lines } fuel-get-uses ]
[ ,file V{ ,@lines } fuel-get-uses ]
fuel-use-suggested-vocabs)) t t)))
(fuel-debug--uses-prepare file)
(with-current-buffer (fuel-debug--uses-buffer)