diff --git a/basis/tools/scaffold/scaffold.factor b/basis/tools/scaffold/scaffold.factor index 571266d0ef..7f55d0a217 100644 --- a/basis/tools/scaffold/scaffold.factor +++ b/basis/tools/scaffold/scaffold.factor @@ -4,19 +4,20 @@ USING: assocs io.files hashtables kernel namespaces sequences vocabs.loader io combinators io.encodings.utf8 calendar accessors math.parser io.streams.string ui.tools.operations quotations strings arrays prettyprint words vocabs sorting sets cords -sequences.lib combinators.lib ; +classes sequences.lib combinators.lib ; IN: tools.scaffold SYMBOL: developer-name SYMBOL: using ERROR: not-a-vocab-root string ; +ERROR: vocab-name-contains-separator path ; +ERROR: vocab-name-contains-dot path ; : root? ( string -- ? ) vocab-roots get member? ; -ERROR: vocab-name-contains-separator path ; -ERROR: vocab-name-contains-dot path ; +> using get conjoin ; + vocabulary>> using get [ conjoin ] [ drop ] if* ; : ($values.) ( array -- ) [ @@ -144,10 +145,12 @@ ERROR: vocab-name-contains-dot path ; : help-header. ( word -- ) "HELP: " write name>> print ; +PRIVATE> : help. ( word -- ) [ help-header. ] [ $values. ] [ $description. ] tri ; + : scaffold-help ( vocab-root string -- ) [ @@ -189,11 +193,9 @@ ERROR: vocab-name-contains-dot path ; ] with-scaffold ; : scaffold-undocumented ( string -- ) - [ - words - [ "help" word-prop not ] filter - natural-sort [ help. nl ] each - ] with-scaffold ; + words + [ [ "help" word-prop ] [ predicate? ] bi or not ] filter + natural-sort [ help. nl ] each ; : scaffold-vocab ( vocab-root string -- ) prepare-scaffold