-USING: accessors help.lint.coverage help.lint.coverage.private
-help.markup help.syntax kernel literals math math.matrices
-sequences sorting tools.test vocabs ;
+USING: accessors fuel.help.private help.lint.coverage
+help.lint.coverage.private help.markup help.syntax kernel
+literals math math.matrices sequences sorting tools.test vocabs ;
IN: help.lint.coverage.tests
<PRIVATE
{ { $values $description $examples } } [ \ keep word-defines-sections ] unit-test
{ { $values $contract $examples } } [ \ <word-help-coverage> word-defines-sections ] unit-test
-{ eye } [ "eye" find-word ] unit-test
+{ empty } [ "empty" find-word ] unit-test
{
V{ "[" { $[ "math" dup lookup-vocab ] } "] " { "zero?" zero? } ": " }
-USING: accessors arrays assocs classes classes.error combinators
-continuations english formatting fry generic help
-help.lint.checks help.markup io io.streams.string io.styles
-kernel math namespaces parser sequences sequences.deep sets
-sorting splitting strings summary vocabs vocabs.parser words ;
+USING: accessors arrays classes classes.error combinators
+combinators.short-circuit continuations english eval formatting
+fry fuel.help.private generic help help.lint help.lint.checks help.markup io
+io.streams.string io.styles kernel math namespaces parser
+prettyprint sequences sequences.deep sets sorting splitting strings summary
+vocabs words words.alias ;
FROM: namespaces => set ;
IN: help.lint.coverage
: should-define ( word -- spec )
{
- { [ dup predicate? ] [ drop { } ] } ! predicate?s have generated docs
- { [ dup error-class? ] [ drop { $values $description $error-description } ] }
- { [ dup class? ] [ drop { $class-description } ] }
- { [ dup generic? ] [ drop { $values $contract $examples } ] }
- { [ dup word? ] [ drop { $values $description $examples } ] }
+ ! predicates have generated docs
+ { [ dup predicate? ] [ drop { } ] }
+ ! aliases should describe why they exist but ideally $values should be
+ ! automatically inherited from the aliased word's docs
+ { [ dup alias? ] [ drop { $values $description } ] }
+ { [ dup error-class? ] [ drop { $values $description $error-description } ] }
+ { [ dup class? ] [ drop { $class-description } ] }
+ { [ dup generic? ] [ drop { $values $contract $examples } ] }
+ { [ dup word? ] [ drop { $values $description $examples } ] }
[ drop no-cond ]
} cond ;
: missing-sections ( word -- missing )
[ should-define ] [ word-defines-sections ] bi diff ;
-
-: find-word ( name -- word/f )
- dup words-named dup length {
- { 0 [ 2drop f ] }
- { 1 [ first nip ] }
- [ drop <ambiguous-use-error> throw-restarts ]
- } case ;
-
PRIVATE>
GENERIC: <word-help-coverage> ( word -- coverage )
: word-help-coverage. ( word-spec -- ) <word-help-coverage> help-coverage. ;
: vocab-help-coverage. ( vocab-spec -- ) <vocab-help-coverage> help-coverage. ;
: prefix-help-coverage. ( prefix-spec private? -- ) <prefix-help-coverage> help-coverage. ;
+