Merge branch 'autouse-existing-usings' of git@github.com:seckar/factor into cleaner-using-suggestions
commit
86a6b75160
|
@ -1,9 +1,9 @@
|
|||
! Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
|
||||
USING: assocs compiler.units fuel.eval fuel.help fuel.remote fuel.xref
|
||||
help.topics io.pathnames kernel namespaces parser sequences
|
||||
tools.scaffold vocabs.loader ;
|
||||
USING: accessors assocs compiler.units continuations fuel.eval fuel.help
|
||||
fuel.remote fuel.xref help.topics io.pathnames kernel math namespaces parser
|
||||
sequences tools.scaffold vocabs.loader ;
|
||||
|
||||
IN: fuel
|
||||
|
||||
|
@ -28,6 +28,24 @@ IN: fuel
|
|||
<PRIVATE
|
||||
|
||||
SYMBOL: :uses
|
||||
SYMBOL: :uses-suggestions
|
||||
|
||||
: is-use-restart ( restart -- ? )
|
||||
name>> [ "Use the " head? ] [ " vocabulary" tail? ] bi and ;
|
||||
|
||||
: get-restart-vocab ( restart -- vocab )
|
||||
[ "Use the " length ] dip
|
||||
name>> [ length " vocabulary" length - ] keep
|
||||
subseq ;
|
||||
|
||||
: is-suggested-restart ( restart -- ? )
|
||||
dup is-use-restart [
|
||||
get-restart-vocab :uses-suggestions get member?
|
||||
] [ drop f ] if ;
|
||||
|
||||
: try-suggested-restarts ( -- )
|
||||
restarts get [ is-suggested-restart ] filter
|
||||
dup length 1 = [ first restart ] [ drop ] if ;
|
||||
|
||||
: fuel-set-use-hook ( -- )
|
||||
[ amended-use get clone :uses prefix fuel-eval-set-result ]
|
||||
|
@ -38,6 +56,10 @@ SYMBOL: :uses
|
|||
|
||||
PRIVATE>
|
||||
|
||||
: fuel-use-suggested-vocabs ( ... suggestions quot: ( ... -- ... ) -- ... )
|
||||
[ :uses-suggestions set ] dip
|
||||
[ try-suggested-restarts rethrow ] recover ;
|
||||
|
||||
: fuel-run-file ( path -- )
|
||||
[ fuel-set-use-hook run-file ] curry with-scope ; inline
|
||||
|
||||
|
|
|
@ -88,9 +88,16 @@
|
|||
fuel-debug--uses nil
|
||||
fuel-debug--uses-restarts nil))
|
||||
|
||||
(defun fuel-debug--current-usings (file)
|
||||
(with-current-buffer (find-file-noselect file)
|
||||
(sort (fuel-syntax--find-usings t) 'string<)))
|
||||
|
||||
(defun fuel-debug--uses-for-file (file)
|
||||
(let* ((lines (fuel-debug--file-lines file))
|
||||
(cmd `(:fuel ((V{ ,@lines } fuel-get-uses)) t t)))
|
||||
(old-usings (fuel-debug--current-usings file))
|
||||
(cmd `(:fuel ((V{ ,@old-usings }
|
||||
[ V{ ,@lines } fuel-get-uses ]
|
||||
fuel-use-suggested-vocabs)) t t)))
|
||||
(fuel-debug--uses-prepare file)
|
||||
(fuel--with-popup (fuel-debug--uses-buffer)
|
||||
(insert "Asking Factor. Please, wait ...\n")
|
||||
|
@ -105,8 +112,7 @@
|
|||
|
||||
(defun fuel-debug--uses-display (uses)
|
||||
(let* ((inhibit-read-only t)
|
||||
(old (with-current-buffer (find-file-noselect fuel-debug--uses-file)
|
||||
(sort (fuel-syntax--find-usings t) 'string<)))
|
||||
(old (fuel-debug--current-usings fuel-debug--uses-file))
|
||||
(new (sort uses 'string<)))
|
||||
(erase-buffer)
|
||||
(fuel-debug--uses-insert-title)
|
||||
|
|
Loading…
Reference in New Issue