274 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			274 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			Factor
		
	
	
USING: help help.lint.coverage help.lint.coverage.private
 | 
						|
help.markup help.syntax io kernel sequences strings vocabs words ;
 | 
						|
IN: help.lint.coverage
 | 
						|
 | 
						|
<PRIVATE
 | 
						|
: $related-subsections ( element -- )
 | 
						|
    [ related-words ] [ $subsections ] bi ;
 | 
						|
PRIVATE>
 | 
						|
 | 
						|
ABOUT: "help.lint.coverage"
 | 
						|
 | 
						|
ARTICLE: "help.lint.coverage" "Help coverage linting"
 | 
						|
"The " { $vocab-link "help.lint.coverage" } " vocabulary implements a very pedantic documentation completeness checker."
 | 
						|
$nl
 | 
						|
"The documentation coverage linter requires most words to have " { $link POSTPONE: HELP: } " declarations defining some of the "
 | 
						|
{ $links $values $description $error-description $class-description $examples } " sections (see " { $links "element-types" } ")."
 | 
						|
$nl
 | 
						|
"This vocabulary is intended to be used alongside and after " { $vocab-link "help.lint" } ", not as a replacement for it."
 | 
						|
$nl
 | 
						|
"These words are provided to aid in writing more complete documentation:"
 | 
						|
{ $related-subsections
 | 
						|
    word-help-coverage.
 | 
						|
    vocab-help-coverage.
 | 
						|
    prefix-help-coverage.
 | 
						|
}
 | 
						|
 | 
						|
"Coverage report objects:"
 | 
						|
{ $related-subsections
 | 
						|
    word-help-coverage
 | 
						|
    help-coverage.
 | 
						|
}
 | 
						|
 | 
						|
"Raw report generation:"
 | 
						|
{ $related-subsections
 | 
						|
    <word-help-coverage>
 | 
						|
    <vocab-help-coverage>
 | 
						|
    <prefix-help-coverage>
 | 
						|
} ;
 | 
						|
 | 
						|
{ word-help-coverage word-help-coverage. <word-help-coverage> <vocab-help-coverage> <prefix-help-coverage> }
 | 
						|
related-words
 | 
						|
 | 
						|
HELP: word-help-coverage
 | 
						|
{ $class-description "A documentation coverage report for a single word." } ;
 | 
						|
 | 
						|
HELP: help-coverage.
 | 
						|
{ $values { "coverage" word-help-coverage } }
 | 
						|
{ $contract "Displays a coverage object." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage ;"
 | 
						|
        "\\ <word-help-coverage> <word-help-coverage> help-coverage."
 | 
						|
        "[help.lint.coverage] <word-help-coverage>: full help coverage"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: word-help-coverage.
 | 
						|
{ $values { "word-spec" { $or word string } } }
 | 
						|
{ $description "Prettyprints a help coverage report of " { $snippet "word-spec" } " to " { $link output-stream } "." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: sequences help.lint.coverage ;"
 | 
						|
        "\\ map word-help-coverage."
 | 
						|
        "[sequences] map: needs help section: $examples"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: vocab-help-coverage.
 | 
						|
{ $values { "vocab-spec" { $or vocab string } } }
 | 
						|
{ $description "Prettyprints a help coverage report of " { $snippet "vocab-spec" } " to " { $link output-stream } "." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage ;"
 | 
						|
        "\"english\" vocab-help-coverage."
 | 
						|
"[english] $or-markup-example: full help coverage
 | 
						|
[english] ?plural-article: full help coverage
 | 
						|
[english] ?pluralize: full help coverage
 | 
						|
[english] a/an: full help coverage
 | 
						|
[english] a10n: full help coverage
 | 
						|
[english] comma-list: full help coverage
 | 
						|
[english] count-of-things: full help coverage
 | 
						|
[english] or-markup-example: full help coverage
 | 
						|
[english] plural?: full help coverage
 | 
						|
[english] pluralize: full help coverage
 | 
						|
[english] singular?: full help coverage
 | 
						|
[english] singularize: full help coverage
 | 
						|
 | 
						|
100.0% of words have complete documentation"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: prefix-help-coverage.
 | 
						|
{ $values { "prefix-spec" { $or vocab string } } { "private?" boolean } }
 | 
						|
{ $description "Prettyprints a help coverage report of " { $snippet "prefix-spec" } " to " { $link output-stream } "." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage ;"
 | 
						|
        "\"english\" t prefix-help-coverage."
 | 
						|
"[english] $or-markup-example: full help coverage
 | 
						|
[english] ?plural-article: full help coverage
 | 
						|
[english] ?pluralize: full help coverage
 | 
						|
[english] a/an: full help coverage
 | 
						|
[english] a10n: full help coverage
 | 
						|
[english] comma-list: full help coverage
 | 
						|
[english] count-of-things: full help coverage
 | 
						|
[english] or-markup-example: full help coverage
 | 
						|
[english] plural?: full help coverage
 | 
						|
[english] pluralize: full help coverage
 | 
						|
[english] singular?: full help coverage
 | 
						|
[english] singularize: full help coverage
 | 
						|
[english.private] $0-plurality: needs help sections: $description and $examples
 | 
						|
[english.private] $keep-case: needs help sections: $description and $examples
 | 
						|
[english.private] match-case: needs help sections: $description and $examples
 | 
						|
[english.private] plural-to-singular: needs help sections: $description and $examples
 | 
						|
[english.private] singular-to-plural: needs help sections: $description and $examples
 | 
						|
 | 
						|
70.6% of words have complete documentation"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: <prefix-help-coverage>
 | 
						|
{ $values { "prefix" string } { "private?" boolean } { "coverage" sequence } }
 | 
						|
{ $description "Runs the help coverage checker on every child vocabulary of the given " { $snippet "prefix" } ", including the base vocabulary. If " { $snippet "private?" } " is " { $snippet "f" } ", the prefix's child " { $snippet ".private" } " vocabularies are not checked. If " { $snippet "private?" } " is " { $snippet "t" } ", " { $emphasis "all" } " child vocabularies are checked." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage prettyprint ;"
 | 
						|
        "\"english\" t <prefix-help-coverage> ..."
 | 
						|
"{
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name $or-markup-example }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name ?plural-article }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name ?pluralize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name a/an }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name a10n }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name comma-list }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name count-of-things }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name or-markup-example }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name plural? }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name pluralize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name singular? }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name singularize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name $0-plurality }
 | 
						|
        { omitted-sections { $description $examples } }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name $keep-case }
 | 
						|
        { omitted-sections { $description $examples } }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name match-case }
 | 
						|
        { omitted-sections { $description $examples } }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name plural-to-singular }
 | 
						|
        { omitted-sections { $description $examples } }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name singular-to-plural }
 | 
						|
        { omitted-sections { $description $examples } }
 | 
						|
    }
 | 
						|
}"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: <word-help-coverage>
 | 
						|
{ $values { "word" { $or string word } } { "coverage" word-help-coverage } }
 | 
						|
{ $contract "Looks up a word in the current scope and generates a documentation coverage report for it."}
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage prettyprint ;"
 | 
						|
        "\\ <word-help-coverage> <word-help-coverage> ..."
 | 
						|
"T{ word-help-coverage
 | 
						|
    { word-name <word-help-coverage> }
 | 
						|
    { 100%-coverage? t }
 | 
						|
}"
 | 
						|
    }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: <vocab-help-coverage>
 | 
						|
{ $values { "vocab-spec" { $or vocab string } } { "coverage" sequence } }
 | 
						|
{ $description "Runs the help coverage checker on the vocabulary in the given " { $snippet "vocab-spec" } "." }
 | 
						|
{ $examples
 | 
						|
    { $example
 | 
						|
        "USING: help.lint.coverage prettyprint ;"
 | 
						|
        "\"english\" <vocab-help-coverage> ..."
 | 
						|
"{
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name $or-markup-example }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name ?plural-article }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name ?pluralize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name a/an }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name a10n }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name comma-list }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name count-of-things }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name or-markup-example }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name plural? }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name pluralize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name singular? }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
    T{ word-help-coverage
 | 
						|
        { word-name singularize }
 | 
						|
        { 100%-coverage? t }
 | 
						|
    }
 | 
						|
}"
 | 
						|
    }
 | 
						|
} ;
 |