Recent vocabs.parser change had a regression: vocabs with no roots (scratchpad) were excluded from default use list. Also move with-interactive-vocabs to listener vocab
parent
d93093a1cf
commit
c491d05763
|
@ -3,7 +3,7 @@
|
|||
USING: assocs continuations fry help help.lint.checks
|
||||
help.topics io kernel namespaces parser sequences
|
||||
source-files.errors vocabs.hierarchy vocabs words classes
|
||||
locals tools.errors ;
|
||||
locals tools.errors listener ;
|
||||
FROM: help.lint.checks => all-vocabs ;
|
||||
IN: help.lint
|
||||
|
||||
|
|
|
@ -13,6 +13,10 @@ ARTICLE: "listener-watch" "Watching variables in the listener"
|
|||
"Hiding all visible variables:"
|
||||
{ $subsection hide-all-vars } ;
|
||||
|
||||
HELP: only-use-vocabs
|
||||
{ $values { "vocabs" "a sequence of vocabulary specifiers" } }
|
||||
{ $description "Replaces the current manifest's vocabulary search path with the given set of vocabularies." } ;
|
||||
|
||||
HELP: show-var
|
||||
{ $values { "var" "a variable name" } }
|
||||
{ $description "Adds a variable to the watch list; its value will be printed by the listener after every expression." } ;
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: arrays hashtables io kernel math math.parser memory
|
|||
namespaces parser lexer sequences strings io.styles
|
||||
vectors words generic system combinators continuations debugger
|
||||
definitions compiler.units accessors colors prettyprint fry
|
||||
sets vocabs.parser source-files.errors locals ;
|
||||
sets vocabs.parser source-files.errors locals vocabs vocabs.loader ;
|
||||
IN: listener
|
||||
|
||||
GENERIC: stream-read-quot ( stream -- quot/f )
|
||||
|
@ -124,6 +124,78 @@ t error-summary? set-global
|
|||
|
||||
PRIVATE>
|
||||
|
||||
SYMBOL: interactive-vocabs
|
||||
|
||||
{
|
||||
"accessors"
|
||||
"arrays"
|
||||
"assocs"
|
||||
"combinators"
|
||||
"compiler"
|
||||
"compiler.errors"
|
||||
"compiler.units"
|
||||
"continuations"
|
||||
"debugger"
|
||||
"definitions"
|
||||
"editors"
|
||||
"help"
|
||||
"help.apropos"
|
||||
"help.lint"
|
||||
"help.vocabs"
|
||||
"inspector"
|
||||
"io"
|
||||
"io.files"
|
||||
"io.pathnames"
|
||||
"kernel"
|
||||
"listener"
|
||||
"math"
|
||||
"math.order"
|
||||
"memory"
|
||||
"namespaces"
|
||||
"parser"
|
||||
"prettyprint"
|
||||
"see"
|
||||
"sequences"
|
||||
"slicing"
|
||||
"sorting"
|
||||
"stack-checker"
|
||||
"strings"
|
||||
"syntax"
|
||||
"tools.annotations"
|
||||
"tools.crossref"
|
||||
"tools.disassembler"
|
||||
"tools.errors"
|
||||
"tools.memory"
|
||||
"tools.profiler"
|
||||
"tools.test"
|
||||
"tools.threads"
|
||||
"tools.time"
|
||||
"vocabs"
|
||||
"vocabs.loader"
|
||||
"vocabs.refresh"
|
||||
"vocabs.hierarchy"
|
||||
"words"
|
||||
"scratchpad"
|
||||
} interactive-vocabs set-global
|
||||
|
||||
: only-use-vocabs ( vocabs -- )
|
||||
clear-manifest
|
||||
[ vocab ] filter
|
||||
[
|
||||
vocab
|
||||
[ find-vocab-root not ]
|
||||
[ source-loaded?>> +done+ eq? ] bi or
|
||||
] filter
|
||||
[ use-vocab ] each ;
|
||||
|
||||
: with-interactive-vocabs ( quot -- )
|
||||
[
|
||||
<manifest> manifest set
|
||||
"scratchpad" set-current-vocab
|
||||
interactive-vocabs get only-use-vocabs
|
||||
call
|
||||
] with-scope ; inline
|
||||
|
||||
: listener ( -- )
|
||||
[ [ { } (listener) ] with-interactive-vocabs ] with-return ;
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@ kernel math namespaces parser prettyprint prettyprint.config
|
|||
prettyprint.sections sequences tools.test vectors words
|
||||
effects splitting generic.standard prettyprint.private
|
||||
continuations generic compiler.units tools.continuations
|
||||
tools.continuations.private eval accessors make vocabs.parser see ;
|
||||
tools.continuations.private eval accessors make vocabs.parser see
|
||||
listener ;
|
||||
IN: prettyprint.tests
|
||||
|
||||
[ "4" ] [ 4 unparse ] unit-test
|
||||
|
|
|
@ -112,68 +112,6 @@ SYMBOL: bootstrap-syntax
|
|||
call
|
||||
] with-scope ; inline
|
||||
|
||||
SYMBOL: interactive-vocabs
|
||||
|
||||
{
|
||||
"accessors"
|
||||
"arrays"
|
||||
"assocs"
|
||||
"combinators"
|
||||
"compiler"
|
||||
"compiler.errors"
|
||||
"compiler.units"
|
||||
"continuations"
|
||||
"debugger"
|
||||
"definitions"
|
||||
"editors"
|
||||
"help"
|
||||
"help.apropos"
|
||||
"help.lint"
|
||||
"help.vocabs"
|
||||
"inspector"
|
||||
"io"
|
||||
"io.files"
|
||||
"io.pathnames"
|
||||
"kernel"
|
||||
"listener"
|
||||
"math"
|
||||
"math.order"
|
||||
"memory"
|
||||
"namespaces"
|
||||
"parser"
|
||||
"prettyprint"
|
||||
"see"
|
||||
"sequences"
|
||||
"slicing"
|
||||
"sorting"
|
||||
"stack-checker"
|
||||
"strings"
|
||||
"syntax"
|
||||
"tools.annotations"
|
||||
"tools.crossref"
|
||||
"tools.disassembler"
|
||||
"tools.errors"
|
||||
"tools.memory"
|
||||
"tools.profiler"
|
||||
"tools.test"
|
||||
"tools.threads"
|
||||
"tools.time"
|
||||
"vocabs"
|
||||
"vocabs.loader"
|
||||
"vocabs.refresh"
|
||||
"vocabs.hierarchy"
|
||||
"words"
|
||||
"scratchpad"
|
||||
} interactive-vocabs set-global
|
||||
|
||||
: with-interactive-vocabs ( quot -- )
|
||||
[
|
||||
<manifest> manifest set
|
||||
"scratchpad" set-current-vocab
|
||||
interactive-vocabs get only-use-vocabs
|
||||
call
|
||||
] with-scope ; inline
|
||||
|
||||
SYMBOL: print-use-hook
|
||||
|
||||
print-use-hook [ [ ] ] initialize
|
||||
|
|
|
@ -65,7 +65,6 @@ $nl
|
|||
"Words for working with the current manifest:"
|
||||
{ $subsection use-vocab }
|
||||
{ $subsection unuse-vocab }
|
||||
{ $subsection only-use-vocabs }
|
||||
{ $subsection add-qualified }
|
||||
{ $subsection add-words-from }
|
||||
{ $subsection add-words-excluding }
|
||||
|
@ -117,10 +116,6 @@ HELP: unuse-vocab
|
|||
{ $description "Removes a vocabulary from the current manifest." }
|
||||
{ $notes "This word is used to implement " { $link POSTPONE: UNUSE: } "." } ;
|
||||
|
||||
HELP: only-use-vocabs
|
||||
{ $values { "vocabs" "a sequence of vocabulary specifiers" } }
|
||||
{ $description "Replaces the current manifest's vocabulary search path with the given set of vocabularies." } ;
|
||||
|
||||
HELP: add-qualified
|
||||
{ $values { "vocab" "a vocabulary specifier" } { "prefix" string } }
|
||||
{ $description "Adds the vocabulary's words, prefixed with the given string, to the current manifest." }
|
||||
|
|
|
@ -52,8 +52,6 @@ M: extra-words equal?
|
|||
|
||||
C: <extra-words> extra-words
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: clear-manifest ( -- )
|
||||
manifest get
|
||||
[ search-vocab-names>> clear-assoc ]
|
||||
|
@ -61,6 +59,8 @@ C: <extra-words> extra-words
|
|||
[ qualified-vocabs>> delete-all ]
|
||||
tri ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: (add-qualified) ( qualified -- )
|
||||
manifest get qualified-vocabs>> push ;
|
||||
|
||||
|
@ -126,12 +126,6 @@ TUPLE: no-current-vocab ;
|
|||
2bi
|
||||
] [ drop ] if ;
|
||||
|
||||
: only-use-vocabs ( vocabs -- )
|
||||
clear-manifest
|
||||
[ vocab ] filter
|
||||
[ vocab source-loaded?>> +done+ eq? ] filter
|
||||
[ use-vocab ] each ;
|
||||
|
||||
TUPLE: qualified vocab prefix words ;
|
||||
|
||||
: <qualified> ( vocab prefix -- qualified )
|
||||
|
|
Loading…
Reference in New Issue