@redocly/recheck 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1023 -56
- package/dist/cli.js +40 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/markdoc-schema.d.ts +17 -0
- package/dist/commands/markdoc-schema.d.ts.map +1 -0
- package/dist/commands/markdoc-schema.js +127 -0
- package/dist/commands/markdoc-schema.js.map +1 -0
- package/dist/commands/run.d.ts +2 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +87 -10
- package/dist/commands/run.js.map +1 -1
- package/dist/config/load.d.ts +11 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +12 -2
- package/dist/config/load.js.map +1 -1
- package/dist/config/presets/google.d.ts +3 -0
- package/dist/config/presets/google.d.ts.map +1 -0
- package/dist/config/presets/google.js +1671 -0
- package/dist/config/presets/google.js.map +1 -0
- package/dist/config/presets/inclusive-language.d.ts +3 -0
- package/dist/config/presets/inclusive-language.d.ts.map +1 -0
- package/dist/config/presets/inclusive-language.js +321 -0
- package/dist/config/presets/inclusive-language.js.map +1 -0
- package/dist/config/presets/index.d.ts +67 -0
- package/dist/config/presets/index.d.ts.map +1 -0
- package/dist/config/presets/index.js +137 -0
- package/dist/config/presets/index.js.map +1 -0
- package/dist/config/presets/markdoc.d.ts +21 -0
- package/dist/config/presets/markdoc.d.ts.map +1 -0
- package/dist/config/presets/markdoc.js +101 -0
- package/dist/config/presets/markdoc.js.map +1 -0
- package/dist/config/presets/markdown-relaxed.d.ts +3 -0
- package/dist/config/presets/markdown-relaxed.d.ts.map +1 -0
- package/dist/config/presets/markdown-relaxed.js +98 -0
- package/dist/config/presets/markdown-relaxed.js.map +1 -0
- package/dist/config/presets/markdown.d.ts +43 -0
- package/dist/config/presets/markdown.d.ts.map +1 -0
- package/dist/config/presets/markdown.js +132 -0
- package/dist/config/presets/markdown.js.map +1 -0
- package/dist/config/presets/microsoft.d.ts +3 -0
- package/dist/config/presets/microsoft.d.ts.map +1 -0
- package/dist/config/presets/microsoft.js +2268 -0
- package/dist/config/presets/microsoft.js.map +1 -0
- package/dist/config/presets/minimal.d.ts +3 -0
- package/dist/config/presets/minimal.d.ts.map +1 -0
- package/dist/config/presets/minimal.js +21 -0
- package/dist/config/presets/minimal.js.map +1 -0
- package/dist/config/presets/plain-language.d.ts +3 -0
- package/dist/config/presets/plain-language.d.ts.map +1 -0
- package/dist/config/presets/plain-language.js +351 -0
- package/dist/config/presets/plain-language.js.map +1 -0
- package/dist/config/presets/prose.d.ts +52 -0
- package/dist/config/presets/prose.d.ts.map +1 -0
- package/dist/config/presets/prose.js +138 -0
- package/dist/config/presets/prose.js.map +1 -0
- package/dist/config/schema.d.ts +128 -22
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +105 -21
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validate.d.ts +12 -2
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +1200 -44
- package/dist/config/validate.js.map +1 -1
- package/dist/core/auto-fix.d.ts +8 -13
- package/dist/core/auto-fix.d.ts.map +1 -1
- package/dist/core/auto-fix.js +94 -75
- package/dist/core/auto-fix.js.map +1 -1
- package/dist/core/case-preserve.d.ts +46 -0
- package/dist/core/case-preserve.d.ts.map +1 -0
- package/dist/core/case-preserve.js +57 -0
- package/dist/core/case-preserve.js.map +1 -0
- package/dist/core/directives.d.ts +9 -0
- package/dist/core/directives.d.ts.map +1 -0
- package/dist/core/directives.js +73 -0
- package/dist/core/directives.js.map +1 -0
- package/dist/core/files.d.ts +63 -0
- package/dist/core/files.d.ts.map +1 -1
- package/dist/core/files.js +185 -0
- package/dist/core/files.js.map +1 -1
- package/dist/core/inline-code.d.ts +87 -0
- package/dist/core/inline-code.d.ts.map +1 -0
- package/dist/core/inline-code.js +104 -0
- package/dist/core/inline-code.js.map +1 -0
- package/dist/core/line-endings.d.ts +32 -0
- package/dist/core/line-endings.d.ts.map +1 -0
- package/dist/core/line-endings.js +65 -0
- package/dist/core/line-endings.js.map +1 -0
- package/dist/core/markdoc-tags.d.ts +79 -0
- package/dist/core/markdoc-tags.d.ts.map +1 -0
- package/dist/core/markdoc-tags.js +131 -0
- package/dist/core/markdoc-tags.js.map +1 -0
- package/dist/core/rule-filters.d.ts +17 -0
- package/dist/core/rule-filters.d.ts.map +1 -1
- package/dist/core/rule-filters.js +64 -0
- package/dist/core/rule-filters.js.map +1 -1
- package/dist/core/runner.d.ts +92 -3
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +348 -110
- package/dist/core/runner.js.map +1 -1
- package/dist/core/timing.d.ts.map +1 -1
- package/dist/data/markdoc-realm-schema.d.ts +3 -0
- package/dist/data/markdoc-realm-schema.d.ts.map +1 -0
- package/dist/data/markdoc-realm-schema.js +760 -0
- package/dist/data/markdoc-realm-schema.js.map +1 -0
- package/dist/data/proper-nouns.d.ts +2 -0
- package/dist/data/proper-nouns.d.ts.map +1 -0
- package/dist/data/proper-nouns.js +47 -0
- package/dist/data/proper-nouns.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +152 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/formulas.d.ts +17 -0
- package/dist/metrics/formulas.d.ts.map +1 -0
- package/dist/metrics/formulas.js +70 -0
- package/dist/metrics/formulas.js.map +1 -0
- package/dist/metrics/index.d.ts +5 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +3 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/statistics.d.ts +27 -0
- package/dist/metrics/statistics.d.ts.map +1 -0
- package/dist/metrics/statistics.js +56 -0
- package/dist/metrics/statistics.js.map +1 -0
- package/dist/parser/index.d.ts +18 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +168 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/markdoc/extract-statics.d.ts +45 -0
- package/dist/parser/markdoc/extract-statics.d.ts.map +1 -0
- package/dist/parser/markdoc/extract-statics.js +139 -0
- package/dist/parser/markdoc/extract-statics.js.map +1 -0
- package/dist/parser/markdoc/pairing.d.ts +63 -0
- package/dist/parser/markdoc/pairing.d.ts.map +1 -0
- package/dist/parser/markdoc/pairing.js +94 -0
- package/dist/parser/markdoc/pairing.js.map +1 -0
- package/dist/parser/markdoc/schema.d.ts +85 -0
- package/dist/parser/markdoc/schema.d.ts.map +1 -0
- package/dist/parser/markdoc/schema.js +86 -0
- package/dist/parser/markdoc/schema.js.map +1 -0
- package/dist/parser/markdoc/span.d.ts +64 -0
- package/dist/parser/markdoc/span.d.ts.map +1 -0
- package/dist/parser/markdoc/span.js +729 -0
- package/dist/parser/markdoc/span.js.map +1 -0
- package/dist/parser/markdoc/structure.d.ts +28 -0
- package/dist/parser/markdoc/structure.d.ts.map +1 -0
- package/dist/parser/markdoc/structure.js +153 -0
- package/dist/parser/markdoc/structure.js.map +1 -0
- package/dist/parser/markdoc/syntax.d.ts +44 -0
- package/dist/parser/markdoc/syntax.d.ts.map +1 -0
- package/dist/parser/markdoc/syntax.js +317 -0
- package/dist/parser/markdoc/syntax.js.map +1 -0
- package/dist/parser/types.d.ts +18 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/reporter/fixes.d.ts.map +1 -1
- package/dist/reporter/fixes.js +22 -1
- package/dist/reporter/fixes.js.map +1 -1
- package/dist/reporter/statistics.d.ts +1 -8
- package/dist/reporter/statistics.d.ts.map +1 -1
- package/dist/reporter/statistics.js.map +1 -1
- package/dist/rules/registry.d.ts +15 -0
- package/dist/rules/registry.d.ts.map +1 -0
- package/dist/rules/registry.js +81 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist/rules/scope/capitalization.d.ts +3 -0
- package/dist/rules/scope/capitalization.d.ts.map +1 -0
- package/dist/rules/scope/capitalization.js +163 -0
- package/dist/rules/scope/capitalization.js.map +1 -0
- package/dist/rules/scope/conditional.d.ts +3 -0
- package/dist/rules/scope/conditional.d.ts.map +1 -0
- package/dist/rules/scope/conditional.js +112 -0
- package/dist/rules/scope/conditional.js.map +1 -0
- package/dist/rules/scope/consistency.d.ts +3 -0
- package/dist/rules/scope/consistency.d.ts.map +1 -0
- package/dist/rules/scope/consistency.js +178 -0
- package/dist/rules/scope/consistency.js.map +1 -0
- package/dist/rules/scope/length.d.ts +3 -0
- package/dist/rules/scope/length.d.ts.map +1 -0
- package/dist/rules/scope/length.js +69 -0
- package/dist/rules/scope/length.js.map +1 -0
- package/dist/rules/scope/max-image-size.d.ts +3 -0
- package/dist/rules/scope/max-image-size.d.ts.map +1 -0
- package/dist/rules/scope/max-image-size.js +65 -0
- package/dist/rules/scope/max-image-size.js.map +1 -0
- package/dist/rules/scope/metric.d.ts +17 -0
- package/dist/rules/scope/metric.d.ts.map +1 -0
- package/dist/rules/scope/metric.js +216 -0
- package/dist/rules/scope/metric.js.map +1 -0
- package/dist/rules/scope/occurrence.d.ts +3 -0
- package/dist/rules/scope/occurrence.d.ts.map +1 -0
- package/dist/rules/scope/occurrence.js +48 -0
- package/dist/rules/scope/occurrence.js.map +1 -0
- package/dist/rules/scope/pattern.d.ts +3 -0
- package/dist/rules/scope/pattern.d.ts.map +1 -0
- package/dist/rules/scope/pattern.js +75 -0
- package/dist/rules/scope/pattern.js.map +1 -0
- package/dist/rules/scope/repetition.d.ts +3 -0
- package/dist/rules/scope/repetition.d.ts.map +1 -0
- package/dist/rules/scope/repetition.js +139 -0
- package/dist/rules/scope/repetition.js.map +1 -0
- package/dist/rules/scope/semantic-line-breaks.d.ts +3 -0
- package/dist/rules/scope/semantic-line-breaks.d.ts.map +1 -0
- package/dist/rules/scope/semantic-line-breaks.js +213 -0
- package/dist/rules/scope/semantic-line-breaks.js.map +1 -0
- package/dist/rules/scope/spelling.d.ts +27 -0
- package/dist/rules/scope/spelling.d.ts.map +1 -0
- package/dist/rules/scope/spelling.js +227 -0
- package/dist/rules/scope/spelling.js.map +1 -0
- package/dist/rules/scope/swap.d.ts +3 -0
- package/dist/rules/scope/swap.d.ts.map +1 -0
- package/dist/rules/scope/swap.js +149 -0
- package/dist/rules/scope/swap.js.map +1 -0
- package/dist/rules/scope/title-case.d.ts +46 -0
- package/dist/rules/scope/title-case.d.ts.map +1 -0
- package/dist/rules/scope/title-case.js +301 -0
- package/dist/rules/scope/title-case.js.map +1 -0
- package/dist/rules/token/blanks-around-fences.d.ts +3 -0
- package/dist/rules/token/blanks-around-fences.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-fences.js +44 -0
- package/dist/rules/token/blanks-around-fences.js.map +1 -0
- package/dist/rules/token/blanks-around-headings.d.ts +3 -0
- package/dist/rules/token/blanks-around-headings.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-headings.js +108 -0
- package/dist/rules/token/blanks-around-headings.js.map +1 -0
- package/dist/rules/token/blanks-around-lists.d.ts +3 -0
- package/dist/rules/token/blanks-around-lists.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-lists.js +56 -0
- package/dist/rules/token/blanks-around-lists.js.map +1 -0
- package/dist/rules/token/blanks-around-tables.d.ts +3 -0
- package/dist/rules/token/blanks-around-tables.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-tables.js +42 -0
- package/dist/rules/token/blanks-around-tables.js.map +1 -0
- package/dist/rules/token/code-block-style.d.ts +3 -0
- package/dist/rules/token/code-block-style.d.ts.map +1 -0
- package/dist/rules/token/code-block-style.js +30 -0
- package/dist/rules/token/code-block-style.js.map +1 -0
- package/dist/rules/token/code-fence-style.d.ts +3 -0
- package/dist/rules/token/code-fence-style.d.ts.map +1 -0
- package/dist/rules/token/code-fence-style.js +35 -0
- package/dist/rules/token/code-fence-style.js.map +1 -0
- package/dist/rules/token/commands-show-output.d.ts +3 -0
- package/dist/rules/token/commands-show-output.d.ts.map +1 -0
- package/dist/rules/token/commands-show-output.js +38 -0
- package/dist/rules/token/commands-show-output.js.map +1 -0
- package/dist/rules/token/descriptive-link-text.d.ts +3 -0
- package/dist/rules/token/descriptive-link-text.d.ts.map +1 -0
- package/dist/rules/token/descriptive-link-text.js +53 -0
- package/dist/rules/token/descriptive-link-text.js.map +1 -0
- package/dist/rules/token/emphasis-style.d.ts +3 -0
- package/dist/rules/token/emphasis-style.d.ts.map +1 -0
- package/dist/rules/token/emphasis-style.js +51 -0
- package/dist/rules/token/emphasis-style.js.map +1 -0
- package/dist/rules/token/fenced-code-language.d.ts +3 -0
- package/dist/rules/token/fenced-code-language.d.ts.map +1 -0
- package/dist/rules/token/fenced-code-language.js +35 -0
- package/dist/rules/token/fenced-code-language.js.map +1 -0
- package/dist/rules/token/first-line-h1.d.ts +3 -0
- package/dist/rules/token/first-line-h1.d.ts.map +1 -0
- package/dist/rules/token/first-line-h1.js +107 -0
- package/dist/rules/token/first-line-h1.js.map +1 -0
- package/dist/rules/token/heading-increment.d.ts +3 -0
- package/dist/rules/token/heading-increment.d.ts.map +1 -0
- package/dist/rules/token/heading-increment.js +27 -0
- package/dist/rules/token/heading-increment.js.map +1 -0
- package/dist/rules/token/heading-start-left.d.ts +3 -0
- package/dist/rules/token/heading-start-left.d.ts.map +1 -0
- package/dist/rules/token/heading-start-left.js +31 -0
- package/dist/rules/token/heading-start-left.js.map +1 -0
- package/dist/rules/token/heading-style.d.ts +3 -0
- package/dist/rules/token/heading-style.d.ts.map +1 -0
- package/dist/rules/token/heading-style.js +41 -0
- package/dist/rules/token/heading-style.js.map +1 -0
- package/dist/rules/token/helpers.d.ts +313 -0
- package/dist/rules/token/helpers.d.ts.map +1 -0
- package/dist/rules/token/helpers.js +746 -0
- package/dist/rules/token/helpers.js.map +1 -0
- package/dist/rules/token/hr-style.d.ts +3 -0
- package/dist/rules/token/hr-style.d.ts.map +1 -0
- package/dist/rules/token/hr-style.js +28 -0
- package/dist/rules/token/hr-style.js.map +1 -0
- package/dist/rules/token/index.d.ts +75 -0
- package/dist/rules/token/index.d.ts.map +1 -0
- package/dist/rules/token/index.js +226 -0
- package/dist/rules/token/index.js.map +1 -0
- package/dist/rules/token/line-length.d.ts +3 -0
- package/dist/rules/token/line-length.d.ts.map +1 -0
- package/dist/rules/token/line-length.js +120 -0
- package/dist/rules/token/line-length.js.map +1 -0
- package/dist/rules/token/link-fragments.d.ts +3 -0
- package/dist/rules/token/link-fragments.d.ts.map +1 -0
- package/dist/rules/token/link-fragments.js +145 -0
- package/dist/rules/token/link-fragments.js.map +1 -0
- package/dist/rules/token/link-image-reference-definitions.d.ts +3 -0
- package/dist/rules/token/link-image-reference-definitions.d.ts.map +1 -0
- package/dist/rules/token/link-image-reference-definitions.js +50 -0
- package/dist/rules/token/link-image-reference-definitions.js.map +1 -0
- package/dist/rules/token/link-image-style.d.ts +3 -0
- package/dist/rules/token/link-image-style.d.ts.map +1 -0
- package/dist/rules/token/link-image-style.js +131 -0
- package/dist/rules/token/link-image-style.js.map +1 -0
- package/dist/rules/token/list-indent.d.ts +3 -0
- package/dist/rules/token/list-indent.d.ts.map +1 -0
- package/dist/rules/token/list-indent.js +60 -0
- package/dist/rules/token/list-indent.js.map +1 -0
- package/dist/rules/token/list-length.d.ts +3 -0
- package/dist/rules/token/list-length.d.ts.map +1 -0
- package/dist/rules/token/list-length.js +55 -0
- package/dist/rules/token/list-length.js.map +1 -0
- package/dist/rules/token/list-marker-space.d.ts +3 -0
- package/dist/rules/token/list-marker-space.d.ts.map +1 -0
- package/dist/rules/token/list-marker-space.js +52 -0
- package/dist/rules/token/list-marker-space.js.map +1 -0
- package/dist/rules/token/markdoc-attributes.d.ts +3 -0
- package/dist/rules/token/markdoc-attributes.d.ts.map +1 -0
- package/dist/rules/token/markdoc-attributes.js +269 -0
- package/dist/rules/token/markdoc-attributes.js.map +1 -0
- package/dist/rules/token/markdoc-pairing.d.ts +3 -0
- package/dist/rules/token/markdoc-pairing.d.ts.map +1 -0
- package/dist/rules/token/markdoc-pairing.js +73 -0
- package/dist/rules/token/markdoc-pairing.js.map +1 -0
- package/dist/rules/token/markdoc-syntax.d.ts +3 -0
- package/dist/rules/token/markdoc-syntax.d.ts.map +1 -0
- package/dist/rules/token/markdoc-syntax.js +119 -0
- package/dist/rules/token/markdoc-syntax.js.map +1 -0
- package/dist/rules/token/markdoc-unknown-tag.d.ts +3 -0
- package/dist/rules/token/markdoc-unknown-tag.d.ts.map +1 -0
- package/dist/rules/token/markdoc-unknown-tag.js +64 -0
- package/dist/rules/token/markdoc-unknown-tag.js.map +1 -0
- package/dist/rules/token/messages.d.ts +4 -0
- package/dist/rules/token/messages.d.ts.map +1 -0
- package/dist/rules/token/messages.js +20 -0
- package/dist/rules/token/messages.js.map +1 -0
- package/dist/rules/token/no-alt-text.d.ts +3 -0
- package/dist/rules/token/no-alt-text.d.ts.map +1 -0
- package/dist/rules/token/no-alt-text.js +47 -0
- package/dist/rules/token/no-alt-text.js.map +1 -0
- package/dist/rules/token/no-bare-urls.d.ts +3 -0
- package/dist/rules/token/no-bare-urls.d.ts.map +1 -0
- package/dist/rules/token/no-bare-urls.js +88 -0
- package/dist/rules/token/no-bare-urls.js.map +1 -0
- package/dist/rules/token/no-blanks-blockquote.d.ts +3 -0
- package/dist/rules/token/no-blanks-blockquote.d.ts.map +1 -0
- package/dist/rules/token/no-blanks-blockquote.js +39 -0
- package/dist/rules/token/no-blanks-blockquote.js.map +1 -0
- package/dist/rules/token/no-duplicate-heading.d.ts +3 -0
- package/dist/rules/token/no-duplicate-heading.d.ts.map +1 -0
- package/dist/rules/token/no-duplicate-heading.js +101 -0
- package/dist/rules/token/no-duplicate-heading.js.map +1 -0
- package/dist/rules/token/no-duplicate-link-destinations.d.ts +3 -0
- package/dist/rules/token/no-duplicate-link-destinations.d.ts.map +1 -0
- package/dist/rules/token/no-duplicate-link-destinations.js +65 -0
- package/dist/rules/token/no-duplicate-link-destinations.js.map +1 -0
- package/dist/rules/token/no-emphasis-as-heading.d.ts +3 -0
- package/dist/rules/token/no-emphasis-as-heading.d.ts.map +1 -0
- package/dist/rules/token/no-emphasis-as-heading.js +44 -0
- package/dist/rules/token/no-emphasis-as-heading.js.map +1 -0
- package/dist/rules/token/no-empty-headings.d.ts +3 -0
- package/dist/rules/token/no-empty-headings.d.ts.map +1 -0
- package/dist/rules/token/no-empty-headings.js +28 -0
- package/dist/rules/token/no-empty-headings.js.map +1 -0
- package/dist/rules/token/no-empty-links.d.ts +3 -0
- package/dist/rules/token/no-empty-links.d.ts.map +1 -0
- package/dist/rules/token/no-empty-links.js +67 -0
- package/dist/rules/token/no-empty-links.js.map +1 -0
- package/dist/rules/token/no-hard-tabs.d.ts +3 -0
- package/dist/rules/token/no-hard-tabs.d.ts.map +1 -0
- package/dist/rules/token/no-hard-tabs.js +76 -0
- package/dist/rules/token/no-hard-tabs.js.map +1 -0
- package/dist/rules/token/no-inline-html.d.ts +3 -0
- package/dist/rules/token/no-inline-html.d.ts.map +1 -0
- package/dist/rules/token/no-inline-html.js +45 -0
- package/dist/rules/token/no-inline-html.js.map +1 -0
- package/dist/rules/token/no-missing-space-atx.d.ts +3 -0
- package/dist/rules/token/no-missing-space-atx.d.ts.map +1 -0
- package/dist/rules/token/no-missing-space-atx.js +36 -0
- package/dist/rules/token/no-missing-space-atx.js.map +1 -0
- package/dist/rules/token/no-missing-space-closed-atx.d.ts +3 -0
- package/dist/rules/token/no-missing-space-closed-atx.d.ts.map +1 -0
- package/dist/rules/token/no-missing-space-closed-atx.js +45 -0
- package/dist/rules/token/no-missing-space-closed-atx.js.map +1 -0
- package/dist/rules/token/no-multiple-blanks.d.ts +3 -0
- package/dist/rules/token/no-multiple-blanks.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-blanks.js +35 -0
- package/dist/rules/token/no-multiple-blanks.js.map +1 -0
- package/dist/rules/token/no-multiple-space-atx.d.ts +13 -0
- package/dist/rules/token/no-multiple-space-atx.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-atx.js +50 -0
- package/dist/rules/token/no-multiple-space-atx.js.map +1 -0
- package/dist/rules/token/no-multiple-space-blockquote.d.ts +3 -0
- package/dist/rules/token/no-multiple-space-blockquote.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-blockquote.js +43 -0
- package/dist/rules/token/no-multiple-space-blockquote.js.map +1 -0
- package/dist/rules/token/no-multiple-space-closed-atx.d.ts +3 -0
- package/dist/rules/token/no-multiple-space-closed-atx.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-closed-atx.js +19 -0
- package/dist/rules/token/no-multiple-space-closed-atx.js.map +1 -0
- package/dist/rules/token/no-reversed-links.d.ts +3 -0
- package/dist/rules/token/no-reversed-links.d.ts.map +1 -0
- package/dist/rules/token/no-reversed-links.js +52 -0
- package/dist/rules/token/no-reversed-links.js.map +1 -0
- package/dist/rules/token/no-space-in-code.d.ts +3 -0
- package/dist/rules/token/no-space-in-code.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-code.js +75 -0
- package/dist/rules/token/no-space-in-code.js.map +1 -0
- package/dist/rules/token/no-space-in-emphasis.d.ts +3 -0
- package/dist/rules/token/no-space-in-emphasis.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-emphasis.js +79 -0
- package/dist/rules/token/no-space-in-emphasis.js.map +1 -0
- package/dist/rules/token/no-space-in-links.d.ts +3 -0
- package/dist/rules/token/no-space-in-links.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-links.js +48 -0
- package/dist/rules/token/no-space-in-links.js.map +1 -0
- package/dist/rules/token/no-trailing-punctuation.d.ts +3 -0
- package/dist/rules/token/no-trailing-punctuation.d.ts.map +1 -0
- package/dist/rules/token/no-trailing-punctuation.js +38 -0
- package/dist/rules/token/no-trailing-punctuation.js.map +1 -0
- package/dist/rules/token/no-trailing-spaces.d.ts +3 -0
- package/dist/rules/token/no-trailing-spaces.d.ts.map +1 -0
- package/dist/rules/token/no-trailing-spaces.js +89 -0
- package/dist/rules/token/no-trailing-spaces.js.map +1 -0
- package/dist/rules/token/ol-prefix.d.ts +3 -0
- package/dist/rules/token/ol-prefix.d.ts.map +1 -0
- package/dist/rules/token/ol-prefix.js +70 -0
- package/dist/rules/token/ol-prefix.js.map +1 -0
- package/dist/rules/token/proper-names.d.ts +3 -0
- package/dist/rules/token/proper-names.d.ts.map +1 -0
- package/dist/rules/token/proper-names.js +93 -0
- package/dist/rules/token/proper-names.js.map +1 -0
- package/dist/rules/token/reference-links-images.d.ts +3 -0
- package/dist/rules/token/reference-links-images.d.ts.map +1 -0
- package/dist/rules/token/reference-links-images.js +36 -0
- package/dist/rules/token/reference-links-images.js.map +1 -0
- package/dist/rules/token/required-headings.d.ts +3 -0
- package/dist/rules/token/required-headings.d.ts.map +1 -0
- package/dist/rules/token/required-headings.js +83 -0
- package/dist/rules/token/required-headings.js.map +1 -0
- package/dist/rules/token/single-h1.d.ts +3 -0
- package/dist/rules/token/single-h1.d.ts.map +1 -0
- package/dist/rules/token/single-h1.js +56 -0
- package/dist/rules/token/single-h1.js.map +1 -0
- package/dist/rules/token/single-trailing-newline.d.ts +3 -0
- package/dist/rules/token/single-trailing-newline.d.ts.map +1 -0
- package/dist/rules/token/single-trailing-newline.js +25 -0
- package/dist/rules/token/single-trailing-newline.js.map +1 -0
- package/dist/rules/token/strong-style.d.ts +3 -0
- package/dist/rules/token/strong-style.d.ts.map +1 -0
- package/dist/rules/token/strong-style.js +51 -0
- package/dist/rules/token/strong-style.js.map +1 -0
- package/dist/rules/token/table-column-count.d.ts +3 -0
- package/dist/rules/token/table-column-count.d.ts.map +1 -0
- package/dist/rules/token/table-column-count.js +44 -0
- package/dist/rules/token/table-column-count.js.map +1 -0
- package/dist/rules/token/table-column-style.d.ts +3 -0
- package/dist/rules/token/table-column-style.d.ts.map +1 -0
- package/dist/rules/token/table-column-style.js +179 -0
- package/dist/rules/token/table-column-style.js.map +1 -0
- package/dist/rules/token/table-pipe-style.d.ts +3 -0
- package/dist/rules/token/table-pipe-style.d.ts.map +1 -0
- package/dist/rules/token/table-pipe-style.js +54 -0
- package/dist/rules/token/table-pipe-style.js.map +1 -0
- package/dist/rules/token/ul-indent.d.ts +3 -0
- package/dist/rules/token/ul-indent.d.ts.map +1 -0
- package/dist/rules/token/ul-indent.js +72 -0
- package/dist/rules/token/ul-indent.js.map +1 -0
- package/dist/rules/token/ul-style.d.ts +3 -0
- package/dist/rules/token/ul-style.d.ts.map +1 -0
- package/dist/rules/token/ul-style.js +80 -0
- package/dist/rules/token/ul-style.js.map +1 -0
- package/dist/rules/types.d.ts +81 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +2 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/utils.d.ts +29 -0
- package/dist/rules/utils.d.ts.map +1 -0
- package/dist/{assertions → rules}/utils.js +27 -0
- package/dist/rules/utils.js.map +1 -0
- package/dist/scopes/extractor.d.ts +7 -0
- package/dist/scopes/extractor.d.ts.map +1 -0
- package/dist/scopes/extractor.js +475 -0
- package/dist/scopes/extractor.js.map +1 -0
- package/dist/scopes/selector.d.ts +51 -0
- package/dist/scopes/selector.d.ts.map +1 -0
- package/dist/scopes/selector.js +121 -0
- package/dist/scopes/selector.js.map +1 -0
- package/dist/scopes/sentences.d.ts +15 -0
- package/dist/scopes/sentences.d.ts.map +1 -0
- package/dist/scopes/sentences.js +124 -0
- package/dist/scopes/sentences.js.map +1 -0
- package/dist/scopes/types.d.ts +44 -0
- package/dist/scopes/types.d.ts.map +1 -0
- package/dist/scopes/types.js +2 -0
- package/dist/scopes/types.js.map +1 -0
- package/dist/scopes/vocabulary.d.ts +16 -0
- package/dist/scopes/vocabulary.d.ts.map +1 -0
- package/dist/scopes/vocabulary.js +70 -0
- package/dist/scopes/vocabulary.js.map +1 -0
- package/dist/types/assertions.d.ts +95 -32
- package/dist/types/assertions.d.ts.map +1 -1
- package/dist/types/problems.d.ts +4 -5
- package/dist/types/problems.d.ts.map +1 -1
- package/dist/types/rules.d.ts +4 -6
- package/dist/types/rules.d.ts.map +1 -1
- package/examples/appendices/google.appendix.yaml +91 -0
- package/examples/appendices/inclusive-language.appendix.yaml +61 -0
- package/examples/appendices/microsoft.appendix.yaml +99 -0
- package/examples/appendices/plain-language.appendix.yaml +88 -0
- package/examples/google.yaml +1525 -0
- package/examples/inclusive-language.yaml +304 -0
- package/examples/microsoft.yaml +1542 -0
- package/examples/plain-language.yaml +325 -0
- package/package.json +49 -16
- package/presets/google/PROVENANCE.md +1022 -0
- package/presets/google/sources.json +192 -0
- package/presets/inclusive-language/PROVENANCE.md +174 -0
- package/presets/inclusive-language/sources.json +107 -0
- package/presets/microsoft/PROVENANCE.md +1555 -0
- package/presets/microsoft/sources.json +494 -0
- package/presets/plain-language/PROVENANCE.md +364 -0
- package/presets/plain-language/sources.json +108 -0
- package/dist/assertions/bullet-style.d.ts +0 -3
- package/dist/assertions/bullet-style.d.ts.map +0 -1
- package/dist/assertions/bullet-style.js +0 -60
- package/dist/assertions/bullet-style.js.map +0 -1
- package/dist/assertions/index.d.ts +0 -21
- package/dist/assertions/index.d.ts.map +0 -1
- package/dist/assertions/index.js +0 -30
- package/dist/assertions/index.js.map +0 -1
- package/dist/assertions/max-image-size.d.ts +0 -3
- package/dist/assertions/max-image-size.d.ts.map +0 -1
- package/dist/assertions/max-image-size.js +0 -73
- package/dist/assertions/max-image-size.js.map +0 -1
- package/dist/assertions/max-line-length.d.ts +0 -3
- package/dist/assertions/max-line-length.d.ts.map +0 -1
- package/dist/assertions/max-line-length.js +0 -68
- package/dist/assertions/max-line-length.js.map +0 -1
- package/dist/assertions/no-broken-fragment-links.d.ts +0 -3
- package/dist/assertions/no-broken-fragment-links.d.ts.map +0 -1
- package/dist/assertions/no-broken-fragment-links.js +0 -79
- package/dist/assertions/no-broken-fragment-links.js.map +0 -1
- package/dist/assertions/no-duplicate-headings.d.ts +0 -3
- package/dist/assertions/no-duplicate-headings.d.ts.map +0 -1
- package/dist/assertions/no-duplicate-headings.js +0 -66
- package/dist/assertions/no-duplicate-headings.js.map +0 -1
- package/dist/assertions/no-hard-tabs.d.ts +0 -3
- package/dist/assertions/no-hard-tabs.d.ts.map +0 -1
- package/dist/assertions/no-hard-tabs.js +0 -63
- package/dist/assertions/no-hard-tabs.js.map +0 -1
- package/dist/assertions/no-trailing-spaces.d.ts +0 -3
- package/dist/assertions/no-trailing-spaces.d.ts.map +0 -1
- package/dist/assertions/no-trailing-spaces.js +0 -72
- package/dist/assertions/no-trailing-spaces.js.map +0 -1
- package/dist/assertions/pattern.d.ts +0 -3
- package/dist/assertions/pattern.d.ts.map +0 -1
- package/dist/assertions/pattern.js +0 -39
- package/dist/assertions/pattern.js.map +0 -1
- package/dist/assertions/semantic-line-breaks.d.ts +0 -3
- package/dist/assertions/semantic-line-breaks.d.ts.map +0 -1
- package/dist/assertions/semantic-line-breaks.js +0 -152
- package/dist/assertions/semantic-line-breaks.js.map +0 -1
- package/dist/assertions/swap.d.ts +0 -3
- package/dist/assertions/swap.d.ts.map +0 -1
- package/dist/assertions/swap.js +0 -39
- package/dist/assertions/swap.js.map +0 -1
- package/dist/assertions/utils.d.ts +0 -8
- package/dist/assertions/utils.d.ts.map +0 -1
- package/dist/assertions/utils.js.map +0 -1
- package/dist/core/scope-parser.d.ts +0 -26
- package/dist/core/scope-parser.d.ts.map +0 -1
- package/dist/core/scope-parser.js +0 -110
- package/dist/core/scope-parser.js.map +0 -1
- package/dist/files.d.ts +0 -2
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js +0 -39
- package/dist/files.js.map +0 -1
- package/dist/load-config.d.ts +0 -25
- package/dist/load-config.d.ts.map +0 -1
- package/dist/load-config.js +0 -104
- package/dist/load-config.js.map +0 -1
- package/dist/load.d.ts +0 -25
- package/dist/load.d.ts.map +0 -1
- package/dist/load.js +0 -112
- package/dist/load.js.map +0 -1
- package/dist/scope.d.ts +0 -26
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js +0 -110
- package/dist/scope.js.map +0 -1
- package/dist/types.d.ts +0 -109
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate.d.ts +0 -31
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -154
- package/dist/validate.js.map +0 -1
- /package/dist/{types.js → parser/types.js} +0 -0
|
@@ -0,0 +1,1542 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# recheck/microsoft — Microsoft Writing Style Guide, as a config
|
|
3
|
+
# ==============================================================================
|
|
4
|
+
# Source: Microsoft Writing Style Guide
|
|
5
|
+
# https://learn.microsoft.com/en-us/style-guide/welcome/
|
|
6
|
+
# License: CC BY 4.0 — granted by the guide's backing GitHub repository,
|
|
7
|
+
# NOT by any learn.microsoft.com page (none states a licence):
|
|
8
|
+
# https://github.com/MicrosoftDocs/microsoft-style-guide/blob/main/LICENSE
|
|
9
|
+
# Synced: 2026-07-29
|
|
10
|
+
# Provenance: packages/recheck/presets/microsoft/PROVENANCE.md
|
|
11
|
+
#
|
|
12
|
+
# Rules are adapted to Recheck's own assertion vocabulary (swap, pattern,
|
|
13
|
+
# capitalization, length, occurrence); wording is paraphrased in each rule's
|
|
14
|
+
# `message`, never quoted verbatim from the guide.
|
|
15
|
+
#
|
|
16
|
+
# Generated file — do not hand-edit. Regenerate with `pnpm examples:generate`
|
|
17
|
+
# after changing src/config/presets/microsoft.ts or this file's appendix
|
|
18
|
+
# (examples/appendices/microsoft.appendix.yaml).
|
|
19
|
+
|
|
20
|
+
# ------------------------------------------------------------------------------
|
|
21
|
+
# What to paste
|
|
22
|
+
# ------------------------------------------------------------------------------
|
|
23
|
+
# This is the entire adoption cost: two lines. `recheck/markdown` is the
|
|
24
|
+
# 53-rule markdownlint-parity structural set; `recheck/microsoft` layers the
|
|
25
|
+
# Writing Style Guide's own opinions on top — it ships its own
|
|
26
|
+
# heading/list/table/alt-text structural rules too, so the two are
|
|
27
|
+
# complementary, not duplicates.
|
|
28
|
+
|
|
29
|
+
extends:
|
|
30
|
+
- recheck/markdown
|
|
31
|
+
- recheck/microsoft
|
|
32
|
+
|
|
33
|
+
# ------------------------------------------------------------------------------
|
|
34
|
+
# How to tune it
|
|
35
|
+
# ------------------------------------------------------------------------------
|
|
36
|
+
# Your own rule keys always win over the preset's (`extends` resolves
|
|
37
|
+
# first, then your top-level keys are merged on top, per rule key).
|
|
38
|
+
#
|
|
39
|
+
# Turn a rule off entirely:
|
|
40
|
+
#
|
|
41
|
+
# microsoft/az-navigation:
|
|
42
|
+
# severity: off
|
|
43
|
+
#
|
|
44
|
+
# Downgrade an error to a warning:
|
|
45
|
+
#
|
|
46
|
+
# microsoft/heading-sentence-case:
|
|
47
|
+
# severity: warn
|
|
48
|
+
#
|
|
49
|
+
# Silence one occurrence instead of the whole rule, with an inline HTML
|
|
50
|
+
# comment directive — works on any rule, from any preset:
|
|
51
|
+
#
|
|
52
|
+
# <!-- recheck-disable-next-line microsoft/az-navigation -->
|
|
53
|
+
# Click the hot link to continue.
|
|
54
|
+
#
|
|
55
|
+
# <!-- recheck-disable microsoft/az-navigation -->
|
|
56
|
+
# ...several occurrences here are all silenced...
|
|
57
|
+
# <!-- recheck-enable microsoft/az-navigation -->
|
|
58
|
+
#
|
|
59
|
+
# <!-- recheck-disable-file -->
|
|
60
|
+
#
|
|
61
|
+
# THE SHARP EDGE — read this before reaching for a per-term override.
|
|
62
|
+
# Merging happens per ASSERTION ID, not per option inside it.
|
|
63
|
+
# Setting:
|
|
64
|
+
#
|
|
65
|
+
# microsoft/spelling-hyphenation:
|
|
66
|
+
# assertions:
|
|
67
|
+
# swap:
|
|
68
|
+
# ignoreCase: false
|
|
69
|
+
#
|
|
70
|
+
# does not just flip `ignoreCase` — it REPLACES the whole `swap` assertion
|
|
71
|
+
# object, silently dropping the preset's 25-entry `pairs` map along with
|
|
72
|
+
# it, and the config then fails validation outright:
|
|
73
|
+
#
|
|
74
|
+
# Rule "microsoft/spelling-hyphenation": swap requires a "pairs" object
|
|
75
|
+
# mapping find -> replace strings
|
|
76
|
+
#
|
|
77
|
+
# (verified against this exact rule).
|
|
78
|
+
# So today, to reject one term out of a bundled swap/pattern rule, your
|
|
79
|
+
# options are: turn the whole rule off, restate its entire pairs/tokens
|
|
80
|
+
# yourself, or inline-disable each occurrence as shown above. A per-term
|
|
81
|
+
# opt-out for swap/pattern is a known follow-up, not a promise.
|
|
82
|
+
#
|
|
83
|
+
# Two assertion types DO already have a per-term escape hatch:
|
|
84
|
+
# `capitalization`'s `exceptions` (an array of allowed terms that COMPOSES
|
|
85
|
+
# with the built-in technical-proper-noun vocabulary and anything else you
|
|
86
|
+
# add — it does not replace either) and `spelling`'s `ignore` (spelling
|
|
87
|
+
# itself isn't shipped by any of these four presets — see the README's
|
|
88
|
+
# "Opt-in prose assertions").
|
|
89
|
+
# For example, to stop this preset's own sentence-case rule from flagging
|
|
90
|
+
# your product's name:
|
|
91
|
+
#
|
|
92
|
+
# microsoft/heading-sentence-case:
|
|
93
|
+
# assertions:
|
|
94
|
+
# capitalization:
|
|
95
|
+
# match: $sentence
|
|
96
|
+
# exceptions: [Your Product Name]
|
|
97
|
+
#
|
|
98
|
+
# Verified: this reports zero findings on a heading using "Your Product
|
|
99
|
+
# Name" while every other sentence-case violation still fires normally.
|
|
100
|
+
|
|
101
|
+
# ------------------------------------------------------------------------------
|
|
102
|
+
# Full expansion (reference)
|
|
103
|
+
# ------------------------------------------------------------------------------
|
|
104
|
+
# This is what `extends: [recheck/microsoft]` resolves to today: all 93 rules,
|
|
105
|
+
# alphabetized by rule id, generated straight from the live preset (`pnpm
|
|
106
|
+
# examples:generate`). You do not need to copy any of it — the extends
|
|
107
|
+
# block above already gives you all of this. Read it to see exactly what
|
|
108
|
+
# you are adopting, or as a starting point if you would rather pin or fork
|
|
109
|
+
# specific rules into your own config instead of extending the preset.
|
|
110
|
+
#
|
|
111
|
+
# `fix: false` on every rule below means what it says: detection-only, no
|
|
112
|
+
# exceptions — see "How to tune it" above and PROVENANCE.md for why.
|
|
113
|
+
|
|
114
|
+
microsoft/accessibility-terms:
|
|
115
|
+
severity: error
|
|
116
|
+
message: Use people-first language instead of "%s" — see the accessibility term collection (Microsoft).
|
|
117
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms
|
|
118
|
+
scope: summary
|
|
119
|
+
fix: false
|
|
120
|
+
assertions:
|
|
121
|
+
pattern:
|
|
122
|
+
tokens:
|
|
123
|
+
- \bcrippled\b
|
|
124
|
+
- \bhandicapped\b
|
|
125
|
+
- \bthe handicapped\b
|
|
126
|
+
- \bpeople with handicaps\b
|
|
127
|
+
- \bslow learner\b
|
|
128
|
+
- \bmentally handicapped\b
|
|
129
|
+
- \bdifferently abled\b
|
|
130
|
+
- \bspecial needs\b
|
|
131
|
+
- \baffected by\b
|
|
132
|
+
- \bstricken with\b
|
|
133
|
+
- \bsuffers from\b
|
|
134
|
+
- \ba victim of\b
|
|
135
|
+
- \bsight-impaired\b
|
|
136
|
+
- \bvision-impaired\b
|
|
137
|
+
- \bhearing-impaired\b
|
|
138
|
+
- \bnon-verbal\b
|
|
139
|
+
- \bmaimed\b
|
|
140
|
+
- \bmissing a limb\b
|
|
141
|
+
- \bbirth defect\b
|
|
142
|
+
- \bSpecial Ed person\b
|
|
143
|
+
- \bnormal person\b
|
|
144
|
+
- \bhealthy person\b
|
|
145
|
+
- \bAsperger['’]s\b
|
|
146
|
+
- \bdumb\b
|
|
147
|
+
- \b(?:is|was|are|were|being|been)\s+mute\b
|
|
148
|
+
- \bdeaf and mute\b
|
|
149
|
+
- \bdeaf-mute\b
|
|
150
|
+
- \blame\b
|
|
151
|
+
- \bstupid\b
|
|
152
|
+
- \ban epileptic\b(?!\s+(?:seizure|episode|fit|attack|event))
|
|
153
|
+
ignoreCase: true
|
|
154
|
+
microsoft/actionable:
|
|
155
|
+
severity: warn
|
|
156
|
+
message: Avoid "%s"; rewrite using "that you can act on" (Microsoft).
|
|
157
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/actionable
|
|
158
|
+
scope: summary
|
|
159
|
+
fix: false
|
|
160
|
+
assertions:
|
|
161
|
+
pattern:
|
|
162
|
+
tokens:
|
|
163
|
+
- \bactionable\b
|
|
164
|
+
ignoreCase: true
|
|
165
|
+
microsoft/alt-text-format:
|
|
166
|
+
severity: warn
|
|
167
|
+
message: Alt text should start with a capital letter and end with a period (Microsoft).
|
|
168
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text
|
|
169
|
+
scope: alt
|
|
170
|
+
fix: false
|
|
171
|
+
assertions:
|
|
172
|
+
capitalization:
|
|
173
|
+
match: ^[A-Z].*\.$
|
|
174
|
+
microsoft/alt-text-generic-opener:
|
|
175
|
+
severity: warn
|
|
176
|
+
message: Don't start alt text with a generic word such as "%s" (Microsoft).
|
|
177
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text
|
|
178
|
+
scope: alt
|
|
179
|
+
fix: false
|
|
180
|
+
assertions:
|
|
181
|
+
pattern:
|
|
182
|
+
tokens:
|
|
183
|
+
- ^(?:Image|Icon|Graphic|Button|Link)\b
|
|
184
|
+
ignoreCase: true
|
|
185
|
+
microsoft/alt-text-length:
|
|
186
|
+
severity: warn
|
|
187
|
+
message: Alt text is %s %s long; Microsoft limits it to 150 characters (max %s).
|
|
188
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text
|
|
189
|
+
scope: alt
|
|
190
|
+
fix: false
|
|
191
|
+
assertions:
|
|
192
|
+
length:
|
|
193
|
+
unit: characters
|
|
194
|
+
max: 150
|
|
195
|
+
microsoft/alt-text-no-filename:
|
|
196
|
+
severity: warn
|
|
197
|
+
message: Don't use an image's file name as its alt text (Microsoft).
|
|
198
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text
|
|
199
|
+
scope: alt
|
|
200
|
+
fix: false
|
|
201
|
+
assertions:
|
|
202
|
+
pattern:
|
|
203
|
+
tokens:
|
|
204
|
+
- \.(?:png|jpe?g|gif|svg|webp)$
|
|
205
|
+
ignoreCase: true
|
|
206
|
+
microsoft/article-before-acronym:
|
|
207
|
+
severity: warn
|
|
208
|
+
message: 'Use "%s" instead of "%s" (Microsoft: article choice follows pronunciation).'
|
|
209
|
+
link: https://learn.microsoft.com/en-us/style-guide/acronyms
|
|
210
|
+
scope: summary
|
|
211
|
+
fix: false
|
|
212
|
+
assertions:
|
|
213
|
+
swap:
|
|
214
|
+
pairs:
|
|
215
|
+
an URL: a URL
|
|
216
|
+
a ISP: an ISP
|
|
217
|
+
an SQL database: a SQL database
|
|
218
|
+
an SQL: a SQL
|
|
219
|
+
ignoreCase: true
|
|
220
|
+
wordBoundary: true
|
|
221
|
+
microsoft/avoid-please:
|
|
222
|
+
severity: warn
|
|
223
|
+
message: Avoid "%s" except when asking the customer to do something inconvenient (Microsoft).
|
|
224
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/p/please
|
|
225
|
+
scope: summary
|
|
226
|
+
fix: false
|
|
227
|
+
assertions:
|
|
228
|
+
pattern:
|
|
229
|
+
tokens:
|
|
230
|
+
- \bplease\b
|
|
231
|
+
ignoreCase: true
|
|
232
|
+
microsoft/az-abbreviations-names:
|
|
233
|
+
severity: error
|
|
234
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
235
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hexadecimal
|
|
236
|
+
scope: summary
|
|
237
|
+
fix: false
|
|
238
|
+
assertions:
|
|
239
|
+
swap:
|
|
240
|
+
pairs:
|
|
241
|
+
defrag: defragment
|
|
242
|
+
okay: OK
|
|
243
|
+
ignoreCase: true
|
|
244
|
+
wordBoundary: true
|
|
245
|
+
microsoft/az-abbreviations-names-detect:
|
|
246
|
+
severity: error
|
|
247
|
+
message: 'Microsoft style: use "number sign" instead of "%s" — except for the literal phone-keypad key (Microsoft).'
|
|
248
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/n/number-sign
|
|
249
|
+
scope: summary
|
|
250
|
+
fix: false
|
|
251
|
+
assertions:
|
|
252
|
+
pattern:
|
|
253
|
+
tokens:
|
|
254
|
+
- \bpound sign\b
|
|
255
|
+
ignoreCase: true
|
|
256
|
+
microsoft/az-abbreviations-substitutions:
|
|
257
|
+
severity: warn
|
|
258
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
259
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hexadecimal
|
|
260
|
+
scope: summary
|
|
261
|
+
fix: false
|
|
262
|
+
assertions:
|
|
263
|
+
swap:
|
|
264
|
+
pairs:
|
|
265
|
+
hex: hexadecimal
|
|
266
|
+
(?<!\bon\s)\bspec\b: specification
|
|
267
|
+
MSFT: Microsoft
|
|
268
|
+
alright: OK
|
|
269
|
+
all right: OK
|
|
270
|
+
ignoreCase: true
|
|
271
|
+
wordBoundary: true
|
|
272
|
+
keysAreRegex: true
|
|
273
|
+
microsoft/az-case-fixable:
|
|
274
|
+
severity: error
|
|
275
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
276
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/i/internet-intranet-extranet
|
|
277
|
+
scope: summary
|
|
278
|
+
fix: false
|
|
279
|
+
assertions:
|
|
280
|
+
swap:
|
|
281
|
+
pairs:
|
|
282
|
+
Big Data: big data
|
|
283
|
+
Dark Mode: dark mode
|
|
284
|
+
darkmode: dark mode
|
|
285
|
+
Devops: DevOps
|
|
286
|
+
devops: DevOps
|
|
287
|
+
bluetooth: Bluetooth
|
|
288
|
+
Javascript: JavaScript
|
|
289
|
+
javascript: JavaScript
|
|
290
|
+
ignoreCase: false
|
|
291
|
+
wordBoundary: true
|
|
292
|
+
microsoft/az-case-fixable-detect:
|
|
293
|
+
severity: error
|
|
294
|
+
message: Use "%s" instead of "%s" (Microsoft) in ordinary prose -- but lowercase "boolean" is correct and expected when naming the OpenAPI/JSON Schema type.
|
|
295
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/i/internet-intranet-extranet
|
|
296
|
+
scope: summary
|
|
297
|
+
fix: false
|
|
298
|
+
assertions:
|
|
299
|
+
swap:
|
|
300
|
+
pairs:
|
|
301
|
+
boolean: Boolean
|
|
302
|
+
ignoreCase: false
|
|
303
|
+
wordBoundary: true
|
|
304
|
+
microsoft/az-case-only:
|
|
305
|
+
severity: error
|
|
306
|
+
message: 'Use "%s" instead of "%s" (Microsoft): rewrite, this fix would silently no-op.'
|
|
307
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/i/internet-intranet-extranet
|
|
308
|
+
scope: summary
|
|
309
|
+
fix: false
|
|
310
|
+
assertions:
|
|
311
|
+
swap:
|
|
312
|
+
pairs:
|
|
313
|
+
Internet: internet
|
|
314
|
+
Intranet: intranet
|
|
315
|
+
Extranet: extranet
|
|
316
|
+
Euro: euro
|
|
317
|
+
WWW: www
|
|
318
|
+
Registry: registry
|
|
319
|
+
Spam: spam
|
|
320
|
+
ignoreCase: false
|
|
321
|
+
wordBoundary: true
|
|
322
|
+
microsoft/az-direction-layout:
|
|
323
|
+
severity: warn
|
|
324
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
325
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/far-left-far-right
|
|
326
|
+
scope: summary
|
|
327
|
+
fix: false
|
|
328
|
+
assertions:
|
|
329
|
+
swap:
|
|
330
|
+
pairs:
|
|
331
|
+
top left: upper left
|
|
332
|
+
top right: upper right
|
|
333
|
+
far-left: leftmost
|
|
334
|
+
far-right: rightmost
|
|
335
|
+
left-justified: left-aligned
|
|
336
|
+
right-justified: right-aligned
|
|
337
|
+
ragged right: left-aligned
|
|
338
|
+
ignoreCase: true
|
|
339
|
+
wordBoundary: true
|
|
340
|
+
microsoft/az-direction-layout-detect:
|
|
341
|
+
severity: error
|
|
342
|
+
message: 'Microsoft style: use "lower left"/"lower right" instead of "%s" — except when discussing the BottomLeft/BottomRight API properties (Microsoft).'
|
|
343
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/bottom-left-bottom-right
|
|
344
|
+
scope: summary
|
|
345
|
+
fix: false
|
|
346
|
+
assertions:
|
|
347
|
+
pattern:
|
|
348
|
+
tokens:
|
|
349
|
+
- \bbottom left\b
|
|
350
|
+
- \bbottom right\b
|
|
351
|
+
ignoreCase: true
|
|
352
|
+
microsoft/az-filesystem:
|
|
353
|
+
severity: warn
|
|
354
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
355
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/c/child-folder
|
|
356
|
+
scope: summary
|
|
357
|
+
fix: false
|
|
358
|
+
assertions:
|
|
359
|
+
swap:
|
|
360
|
+
pairs:
|
|
361
|
+
child folder: subfolder
|
|
362
|
+
\bhome directory\b(?!\s+for\s+(?:its|the|your|his|her|their)?\s*config): root directory
|
|
363
|
+
graphics adapter: video card
|
|
364
|
+
display adapter: video card
|
|
365
|
+
video adapter: video card
|
|
366
|
+
graphics card: video card
|
|
367
|
+
display driver: video driver
|
|
368
|
+
graphics driver: video driver
|
|
369
|
+
remote drive: network drive
|
|
370
|
+
ignoreCase: true
|
|
371
|
+
wordBoundary: true
|
|
372
|
+
keysAreRegex: true
|
|
373
|
+
microsoft/az-geography:
|
|
374
|
+
severity: warn
|
|
375
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
376
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/far-east
|
|
377
|
+
scope: summary
|
|
378
|
+
fix: false
|
|
379
|
+
assertions:
|
|
380
|
+
swap:
|
|
381
|
+
pairs:
|
|
382
|
+
\bFar East\b: East Asia
|
|
383
|
+
ignoreCase: true
|
|
384
|
+
wordBoundary: false
|
|
385
|
+
keysAreRegex: true
|
|
386
|
+
microsoft/az-geography-detect:
|
|
387
|
+
severity: error
|
|
388
|
+
message: 'Microsoft style: prefer "thanks" over "%s" in most content — see the a-z word list for the formal/serious-content exception.'
|
|
389
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/t/thanks-thank-you
|
|
390
|
+
scope: summary
|
|
391
|
+
fix: false
|
|
392
|
+
assertions:
|
|
393
|
+
pattern:
|
|
394
|
+
tokens:
|
|
395
|
+
- \bthank you\b
|
|
396
|
+
ignoreCase: true
|
|
397
|
+
microsoft/az-grammar-usage:
|
|
398
|
+
severity: error
|
|
399
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
400
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/as-well-as
|
|
401
|
+
scope: summary
|
|
402
|
+
fix: false
|
|
403
|
+
assertions:
|
|
404
|
+
swap:
|
|
405
|
+
pairs:
|
|
406
|
+
towards: toward
|
|
407
|
+
upwards: upward
|
|
408
|
+
afterwards: afterward
|
|
409
|
+
useable: usable
|
|
410
|
+
moveable: movable
|
|
411
|
+
broadcasted: broadcast
|
|
412
|
+
matrixes: matrices
|
|
413
|
+
appendixes: appendices
|
|
414
|
+
zeroes: zeros
|
|
415
|
+
ignoreCase: true
|
|
416
|
+
wordBoundary: true
|
|
417
|
+
microsoft/az-grammar-usage-detect:
|
|
418
|
+
severity: error
|
|
419
|
+
message: 'Microsoft style: "%s" needs a context-specific rewrite, not a blind substitution — "as well as" is a caution against treating it as a synonym for "and", not an instruction to replace it; "or greater/higher/lower" only becomes "or later/earlier" when identifying program or app version numbers, not general magnitude (Microsoft).'
|
|
420
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/as-well-as
|
|
421
|
+
scope: summary
|
|
422
|
+
fix: false
|
|
423
|
+
assertions:
|
|
424
|
+
pattern:
|
|
425
|
+
tokens:
|
|
426
|
+
- \bas well as\b
|
|
427
|
+
- \bor greater\b
|
|
428
|
+
- \bor higher\b
|
|
429
|
+
- \bor lower\b
|
|
430
|
+
ignoreCase: true
|
|
431
|
+
microsoft/az-grammar-usage-substitutions:
|
|
432
|
+
severity: warn
|
|
433
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
434
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/as-well-as
|
|
435
|
+
scope: summary
|
|
436
|
+
fix: false
|
|
437
|
+
assertions:
|
|
438
|
+
swap:
|
|
439
|
+
pairs:
|
|
440
|
+
whether or not: whether
|
|
441
|
+
center around: center on
|
|
442
|
+
different to: different from
|
|
443
|
+
inside of: inside
|
|
444
|
+
outside of: outside
|
|
445
|
+
off of: 'off'
|
|
446
|
+
administrate: administer
|
|
447
|
+
alphabetic: alphabetical
|
|
448
|
+
mathematic: mathematical
|
|
449
|
+
numerical: numeric
|
|
450
|
+
ignoreCase: true
|
|
451
|
+
wordBoundary: true
|
|
452
|
+
microsoft/az-judgment-words:
|
|
453
|
+
severity: warn
|
|
454
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
455
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/finalize
|
|
456
|
+
scope: summary
|
|
457
|
+
fix: false
|
|
458
|
+
assertions:
|
|
459
|
+
swap:
|
|
460
|
+
pairs:
|
|
461
|
+
\bfinalize\b: finish
|
|
462
|
+
\bbug fix\b: software update
|
|
463
|
+
\bbeta\b(?!\s+(?:distribution|function|coefficient|particle|blocker|decay)\b): preview
|
|
464
|
+
\bEULA\b: license terms
|
|
465
|
+
\bEnd-User License Agreement\b: license terms
|
|
466
|
+
ignoreCase: true
|
|
467
|
+
wordBoundary: false
|
|
468
|
+
keysAreRegex: true
|
|
469
|
+
microsoft/az-lifecycle-verbs:
|
|
470
|
+
severity: warn
|
|
471
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
472
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/boot
|
|
473
|
+
scope: summary
|
|
474
|
+
fix: false
|
|
475
|
+
assertions:
|
|
476
|
+
swap:
|
|
477
|
+
pairs:
|
|
478
|
+
\bcarry out\b: run
|
|
479
|
+
(?<!\b(?:the|an|no|emergency)\s)\bexit\b(?!\s+(?:code|status|button|sign|strategy|interview|poll|ramp|velocity|row)\b): close
|
|
480
|
+
(?<!\b(?:product|software|game|website|app|feature|rocket|mission)\s)\blaunch\b(?!\s+(?:date|event|party|window|site|pad|day|plan|schedule|announcement)\b): open
|
|
481
|
+
\bboot\b(?!\s+(?:disk|sector|loader|sequence|process|time|options?|record|partition|menu|order|camera)\b): turn on
|
|
482
|
+
\bundelete\b: restore
|
|
483
|
+
\binstantiate\b: create an instance of
|
|
484
|
+
\biconize\b: minimize
|
|
485
|
+
ignoreCase: true
|
|
486
|
+
wordBoundary: false
|
|
487
|
+
keysAreRegex: true
|
|
488
|
+
microsoft/az-lifecycle-verbs-detect:
|
|
489
|
+
severity: error
|
|
490
|
+
message: 'Microsoft style: "%s" needs a context-specific replacement or carries a conditional exception — see the a-z word list before rewriting.'
|
|
491
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/q/quit
|
|
492
|
+
scope: summary
|
|
493
|
+
fix: false
|
|
494
|
+
assertions:
|
|
495
|
+
pattern:
|
|
496
|
+
tokens:
|
|
497
|
+
- \bquit\b
|
|
498
|
+
- \bdeinstall\b
|
|
499
|
+
- \breinitialize\b
|
|
500
|
+
ignoreCase: true
|
|
501
|
+
microsoft/az-navigation:
|
|
502
|
+
severity: warn
|
|
503
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
504
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/v/visit
|
|
505
|
+
scope: summary
|
|
506
|
+
fix: false
|
|
507
|
+
assertions:
|
|
508
|
+
swap:
|
|
509
|
+
pairs:
|
|
510
|
+
\bhot link\b: link
|
|
511
|
+
ignoreCase: true
|
|
512
|
+
wordBoundary: false
|
|
513
|
+
keysAreRegex: true
|
|
514
|
+
microsoft/az-navigation-detect:
|
|
515
|
+
severity: error
|
|
516
|
+
message: 'Microsoft style: use "go to" instead of "%s" in most cases — but "visit" is OK for a suggestion/browsing tone (Microsoft); see the a-z word list before rewriting.'
|
|
517
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/v/visit
|
|
518
|
+
scope: summary
|
|
519
|
+
fix: false
|
|
520
|
+
assertions:
|
|
521
|
+
pattern:
|
|
522
|
+
tokens:
|
|
523
|
+
- \bvisit\b(?!\s+(?:count|counts|duration|frequency|history|log|data)\b)
|
|
524
|
+
ignoreCase: true
|
|
525
|
+
microsoft/az-no-replacement:
|
|
526
|
+
severity: error
|
|
527
|
+
message: Don't use "%s" (Microsoft); be specific instead.
|
|
528
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/black-box
|
|
529
|
+
scope: summary
|
|
530
|
+
fix: false
|
|
531
|
+
assertions:
|
|
532
|
+
pattern:
|
|
533
|
+
tokens:
|
|
534
|
+
- \bblack box\b
|
|
535
|
+
- \bdot-com\b
|
|
536
|
+
- \bedutainment\b
|
|
537
|
+
- \bhoneypot\b
|
|
538
|
+
- \bbackbone\b
|
|
539
|
+
- \bwordwrap\b
|
|
540
|
+
- \bnatural user interface\b
|
|
541
|
+
- \bNUI\b
|
|
542
|
+
- \bsubaddress\b
|
|
543
|
+
ignoreCase: true
|
|
544
|
+
microsoft/az-real-replacements:
|
|
545
|
+
severity: warn
|
|
546
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
547
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/friendly-name
|
|
548
|
+
scope: summary
|
|
549
|
+
fix: false
|
|
550
|
+
assertions:
|
|
551
|
+
swap:
|
|
552
|
+
pairs:
|
|
553
|
+
\bfriendly name\b: display name
|
|
554
|
+
\bprint queue\b: list of documents
|
|
555
|
+
\bprinter queue\b: list of documents
|
|
556
|
+
\bdata record\b: record
|
|
557
|
+
\be-form\b: form
|
|
558
|
+
\bupsize\b: scale up
|
|
559
|
+
\bworking memory\b: available memory
|
|
560
|
+
\bsoft copy\b: file
|
|
561
|
+
(?<!\b(?:a|an|the|this|that|your|my|its|his|her|their|our)\s)\bprint out\b(?!\s+of\b): print
|
|
562
|
+
\bsearch and replace\b: find and replace
|
|
563
|
+
\btarget drive\b: destination drive
|
|
564
|
+
\btarget file\b: destination file
|
|
565
|
+
ignoreCase: true
|
|
566
|
+
wordBoundary: false
|
|
567
|
+
keysAreRegex: true
|
|
568
|
+
microsoft/az-state-failure:
|
|
569
|
+
severity: warn
|
|
570
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
571
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hang
|
|
572
|
+
scope: summary
|
|
573
|
+
fix: false
|
|
574
|
+
assertions:
|
|
575
|
+
swap:
|
|
576
|
+
pairs:
|
|
577
|
+
\bhangs\b(?!\s+(?:on|up|around|out|together|of|in|tight|loose|fire|from|over)\b): stops responding
|
|
578
|
+
\bhang\b(?!\s+(?:on|up|around|out|together|of|in|tight|loose|fire|from|over)\b): stop responding
|
|
579
|
+
ignoreCase: true
|
|
580
|
+
wordBoundary: false
|
|
581
|
+
keysAreRegex: true
|
|
582
|
+
microsoft/az-state-failure-detect:
|
|
583
|
+
severity: error
|
|
584
|
+
message: 'Microsoft style: "%s" needs a context-specific replacement (fail for hardware, stop responding for programs).'
|
|
585
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/c/crash
|
|
586
|
+
scope: summary
|
|
587
|
+
fix: false
|
|
588
|
+
assertions:
|
|
589
|
+
pattern:
|
|
590
|
+
tokens:
|
|
591
|
+
- \bcrash\b(?!\s+(?:dump|report|log|course|test|site)\b)
|
|
592
|
+
- \block up\b
|
|
593
|
+
ignoreCase: true
|
|
594
|
+
microsoft/az-typography:
|
|
595
|
+
severity: warn
|
|
596
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
597
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/r/roman
|
|
598
|
+
scope: summary
|
|
599
|
+
fix: false
|
|
600
|
+
assertions:
|
|
601
|
+
swap:
|
|
602
|
+
pairs:
|
|
603
|
+
\btypeface\b: font
|
|
604
|
+
\btype style\b: font style
|
|
605
|
+
\bbolded\b: bold
|
|
606
|
+
\bboldface\b: bold
|
|
607
|
+
\broman\b(?!\s+(?:numeral|numerals|empire|alphabet|calendar|law|catholic|republic|mythology|god|gods|ruins?|coins?|holiday|road|roads|bath|baths|army|legion|forum|senate|aqueduct)\b): regular type
|
|
608
|
+
ignoreCase: true
|
|
609
|
+
wordBoundary: false
|
|
610
|
+
keysAreRegex: true
|
|
611
|
+
microsoft/az-ui-nouns:
|
|
612
|
+
severity: warn
|
|
613
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
614
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/blade
|
|
615
|
+
scope: summary
|
|
616
|
+
fix: false
|
|
617
|
+
assertions:
|
|
618
|
+
swap:
|
|
619
|
+
pairs:
|
|
620
|
+
\bblade\b(?!\s+(?:server|servers|enclosure|chassis|centers?|centres?)\b): pane
|
|
621
|
+
\binsertion point\b: pointer
|
|
622
|
+
ignoreCase: true
|
|
623
|
+
wordBoundary: false
|
|
624
|
+
keysAreRegex: true
|
|
625
|
+
microsoft/az-ui-nouns-detect:
|
|
626
|
+
severity: error
|
|
627
|
+
message: 'Microsoft style: "%s" carries a conditional exception — see the a-z word list before rewriting.'
|
|
628
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hierarchical-menu
|
|
629
|
+
scope: summary
|
|
630
|
+
fix: false
|
|
631
|
+
assertions:
|
|
632
|
+
pattern:
|
|
633
|
+
tokens:
|
|
634
|
+
- \bhierarchical menu\b
|
|
635
|
+
- \bsecondary menu\b
|
|
636
|
+
- \brunning head\b
|
|
637
|
+
- \brunning foot\b
|
|
638
|
+
ignoreCase: true
|
|
639
|
+
microsoft/az-verb-able:
|
|
640
|
+
severity: error
|
|
641
|
+
message: 'Rewrite "%s" using "%s" (Microsoft): a direct substitution may be ungrammatical.'
|
|
642
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/blacklist
|
|
643
|
+
scope: summary
|
|
644
|
+
fix: false
|
|
645
|
+
assertions:
|
|
646
|
+
swap:
|
|
647
|
+
pairs:
|
|
648
|
+
blacklist: block list
|
|
649
|
+
whitelist: allow list
|
|
650
|
+
allowlist: allow list
|
|
651
|
+
blocklist: block list
|
|
652
|
+
ignoreCase: true
|
|
653
|
+
wordBoundary: true
|
|
654
|
+
microsoft/bias-free-terms:
|
|
655
|
+
severity: error
|
|
656
|
+
message: 'Use "%s" instead of "%s" (Microsoft: bias-free communication).'
|
|
657
|
+
link: https://learn.microsoft.com/en-us/style-guide/bias-free-communication
|
|
658
|
+
scope: summary
|
|
659
|
+
fix: false
|
|
660
|
+
assertions:
|
|
661
|
+
swap:
|
|
662
|
+
pairs:
|
|
663
|
+
chairman: chair
|
|
664
|
+
chairwoman: chair
|
|
665
|
+
mankind: humanity
|
|
666
|
+
manmade: synthetic
|
|
667
|
+
man-made: synthetic
|
|
668
|
+
manpower: workforce
|
|
669
|
+
salesman: sales representative
|
|
670
|
+
salesmen: sales representatives
|
|
671
|
+
demilitarized zone: perimeter network
|
|
672
|
+
\bDMZ\b(?!\s+(?:dividing|between|separating)\b): perimeter network
|
|
673
|
+
screened subnet: perimeter network
|
|
674
|
+
ignoreCase: true
|
|
675
|
+
wordBoundary: true
|
|
676
|
+
keysAreRegex: true
|
|
677
|
+
microsoft/bookmark-favorite:
|
|
678
|
+
severity: error
|
|
679
|
+
message: 'Rewrite "%s" using "%s" (Microsoft): a direct substitution may be ungrammatical.'
|
|
680
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/bookmark
|
|
681
|
+
scope: summary
|
|
682
|
+
fix: false
|
|
683
|
+
assertions:
|
|
684
|
+
swap:
|
|
685
|
+
pairs:
|
|
686
|
+
bookmark: favorite
|
|
687
|
+
ignoreCase: true
|
|
688
|
+
wordBoundary: true
|
|
689
|
+
microsoft/bucketize:
|
|
690
|
+
severity: warn
|
|
691
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
692
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/dont-use-common-words-in-new-ways
|
|
693
|
+
scope: summary
|
|
694
|
+
fix: false
|
|
695
|
+
assertions:
|
|
696
|
+
swap:
|
|
697
|
+
pairs:
|
|
698
|
+
bucketize: group
|
|
699
|
+
ignoreCase: true
|
|
700
|
+
wordBoundary: true
|
|
701
|
+
microsoft/capitalize-after-heading-colon:
|
|
702
|
+
severity: warn
|
|
703
|
+
message: Capitalize the first word after a colon in a heading (Microsoft).
|
|
704
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/colons
|
|
705
|
+
scope: heading
|
|
706
|
+
fix: false
|
|
707
|
+
assertions:
|
|
708
|
+
pattern:
|
|
709
|
+
tokens:
|
|
710
|
+
- ':\s+[a-z]'
|
|
711
|
+
microsoft/checkbox-verbs:
|
|
712
|
+
severity: warn
|
|
713
|
+
message: Use "%s" instead of "%s" for checkboxes (Microsoft).
|
|
714
|
+
link: https://learn.microsoft.com/en-us/style-guide/procedures-instructions/describing-interactions-with-ui
|
|
715
|
+
scope: summary
|
|
716
|
+
fix: false
|
|
717
|
+
assertions:
|
|
718
|
+
swap:
|
|
719
|
+
pairs:
|
|
720
|
+
uncheck: clear
|
|
721
|
+
unmark: clear
|
|
722
|
+
unselect: clear
|
|
723
|
+
ignoreCase: true
|
|
724
|
+
wordBoundary: true
|
|
725
|
+
microsoft/comma-density:
|
|
726
|
+
severity: warn
|
|
727
|
+
message: Sentence has %s commas; Microsoft suggests at most %s.
|
|
728
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/
|
|
729
|
+
scope: sentence
|
|
730
|
+
fix: false
|
|
731
|
+
assertions:
|
|
732
|
+
occurrence:
|
|
733
|
+
pattern: ','
|
|
734
|
+
max: 2
|
|
735
|
+
microsoft/contraction-consistency:
|
|
736
|
+
severity: warn
|
|
737
|
+
message: '"%s" conflicts with the first-used form "%s" in this file (Microsoft).'
|
|
738
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-contractions
|
|
739
|
+
scope: summary
|
|
740
|
+
fix: false
|
|
741
|
+
assertions:
|
|
742
|
+
consistency:
|
|
743
|
+
ignoreCase: true
|
|
744
|
+
either:
|
|
745
|
+
can't: cannot
|
|
746
|
+
don't: do not
|
|
747
|
+
won't: will not
|
|
748
|
+
isn't: is not
|
|
749
|
+
it's: it is
|
|
750
|
+
microsoft/cyberattack-spelling:
|
|
751
|
+
severity: error
|
|
752
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
753
|
+
link: https://learn.microsoft.com/en-us/style-guide/militaristic-language
|
|
754
|
+
scope: summary
|
|
755
|
+
fix: false
|
|
756
|
+
assertions:
|
|
757
|
+
swap:
|
|
758
|
+
pairs:
|
|
759
|
+
cyber attack: cyberattack
|
|
760
|
+
cyber-attack: cyberattack
|
|
761
|
+
cyber threat: cyberthreat
|
|
762
|
+
cyber-threat: cyberthreat
|
|
763
|
+
ignoreCase: true
|
|
764
|
+
wordBoundary: true
|
|
765
|
+
microsoft/descriptive-link-text:
|
|
766
|
+
severity: error
|
|
767
|
+
message: Link text should be descriptive, not a generic phrase (Microsoft).
|
|
768
|
+
link: https://learn.microsoft.com/en-us/style-guide/urls-web-addresses
|
|
769
|
+
scope: all
|
|
770
|
+
fix: false
|
|
771
|
+
assertions:
|
|
772
|
+
descriptive-link-text: {}
|
|
773
|
+
microsoft/dialog-terminology:
|
|
774
|
+
severity: warn
|
|
775
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
776
|
+
link: https://learn.microsoft.com/en-us/style-guide/procedures-instructions/formatting-text-in-instructions
|
|
777
|
+
scope: summary
|
|
778
|
+
fix: false
|
|
779
|
+
assertions:
|
|
780
|
+
swap:
|
|
781
|
+
pairs:
|
|
782
|
+
pop-up window: dialog
|
|
783
|
+
dialog box: dialog
|
|
784
|
+
dialogue box: dialog
|
|
785
|
+
ignoreCase: true
|
|
786
|
+
wordBoundary: true
|
|
787
|
+
microsoft/glyph:
|
|
788
|
+
severity: error
|
|
789
|
+
message: Use "%s" instead of "%s" (Microsoft) when referring generically to a UI icon/image — but it's OK to use "glyph" in a technical discussion of fonts and characters.
|
|
790
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/avoid-jargon
|
|
791
|
+
scope: summary
|
|
792
|
+
fix: false
|
|
793
|
+
assertions:
|
|
794
|
+
swap:
|
|
795
|
+
pairs:
|
|
796
|
+
glyph: symbol
|
|
797
|
+
ignoreCase: true
|
|
798
|
+
wordBoundary: true
|
|
799
|
+
microsoft/heading-sentence-case:
|
|
800
|
+
severity: error
|
|
801
|
+
message: '"%s" should use %s capitalization (Microsoft: sentence case for headings).'
|
|
802
|
+
link: https://learn.microsoft.com/en-us/style-guide/capitalization
|
|
803
|
+
scope: heading
|
|
804
|
+
fix: false
|
|
805
|
+
assertions:
|
|
806
|
+
capitalization:
|
|
807
|
+
match: $sentence
|
|
808
|
+
microsoft/impact-verb:
|
|
809
|
+
severity: warn
|
|
810
|
+
message: 'Use "affect" instead of "impact" as a verb (Microsoft): "%s"'
|
|
811
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/dont-use-common-words-in-new-ways
|
|
812
|
+
scope: summary
|
|
813
|
+
fix: false
|
|
814
|
+
assertions:
|
|
815
|
+
pattern:
|
|
816
|
+
tokens:
|
|
817
|
+
- \bimpact(?:s|ed|ing)?\s+(?:performance|productivity|quality|reliability|availability|latency|throughput)\b
|
|
818
|
+
microsoft/italic-as-noun:
|
|
819
|
+
severity: error
|
|
820
|
+
message: Avoid "%s"; rewrite using "italic" as an adjective, e.g. "italic text" (Microsoft).
|
|
821
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/i/italic
|
|
822
|
+
scope: summary
|
|
823
|
+
fix: false
|
|
824
|
+
assertions:
|
|
825
|
+
pattern:
|
|
826
|
+
tokens:
|
|
827
|
+
- \bitalics\b
|
|
828
|
+
- \bitalicized\b
|
|
829
|
+
ignoreCase: true
|
|
830
|
+
microsoft/keyboard-shortcut-plus-spacing:
|
|
831
|
+
severity: warn
|
|
832
|
+
message: 'Don''t put a space around "+" in a keyboard shortcut (Microsoft): "%s"'
|
|
833
|
+
link: https://learn.microsoft.com/en-us/style-guide/procedures-instructions/formatting-text-in-instructions
|
|
834
|
+
scope: summary
|
|
835
|
+
fix: false
|
|
836
|
+
assertions:
|
|
837
|
+
pattern:
|
|
838
|
+
tokens:
|
|
839
|
+
- \b(?:Ctrl|Alt|Shift|Cmd)\s+\+\s+
|
|
840
|
+
microsoft/left-hand-right-hand:
|
|
841
|
+
severity: error
|
|
842
|
+
message: 'Rewrite "%s" using "%s" (Microsoft): no replacement is stated for the modifier sense.'
|
|
843
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/l/left-leftmost-left-hand
|
|
844
|
+
scope: summary
|
|
845
|
+
fix: false
|
|
846
|
+
assertions:
|
|
847
|
+
swap:
|
|
848
|
+
pairs:
|
|
849
|
+
left-hand: left
|
|
850
|
+
right-hand: right
|
|
851
|
+
ignoreCase: true
|
|
852
|
+
wordBoundary: true
|
|
853
|
+
microsoft/leverage:
|
|
854
|
+
severity: error
|
|
855
|
+
message: 'Rewrite "%s" using "%s" (Microsoft): only the VERB sense ("leverage the API") is targeted — "leverage"/"leveraged" are also common, correct nouns/adjectives ("financial leverage", "a leveraged buyout") a blind substitution would corrupt.'
|
|
856
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/avoid-jargon
|
|
857
|
+
scope: summary
|
|
858
|
+
fix: false
|
|
859
|
+
assertions:
|
|
860
|
+
swap:
|
|
861
|
+
pairs:
|
|
862
|
+
leverage: use
|
|
863
|
+
leveraging: using
|
|
864
|
+
leveraged: used
|
|
865
|
+
ignoreCase: true
|
|
866
|
+
wordBoundary: true
|
|
867
|
+
microsoft/list-item-capital:
|
|
868
|
+
severity: error
|
|
869
|
+
message: '"%s" should start with a capital letter (Microsoft).'
|
|
870
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/lists
|
|
871
|
+
scope: list-item
|
|
872
|
+
fix: false
|
|
873
|
+
assertions:
|
|
874
|
+
capitalization:
|
|
875
|
+
match: ^[^a-z].*
|
|
876
|
+
microsoft/list-length:
|
|
877
|
+
severity: warn
|
|
878
|
+
message: List has %s item(s); Microsoft recommends 2-7 (Microsoft).
|
|
879
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/lists
|
|
880
|
+
scope: all
|
|
881
|
+
fix: false
|
|
882
|
+
assertions:
|
|
883
|
+
list-length:
|
|
884
|
+
min: 2
|
|
885
|
+
max: 7
|
|
886
|
+
microsoft/master-slave:
|
|
887
|
+
severity: error
|
|
888
|
+
message: 'Avoid "%s" (Microsoft): the guide''s two pages disagree on the replacement — use "primary/subordinate" (bias-free-communication) or "primary/replica" (also acceptable: primary/secondary, principal/agent, controller/worker; a-z/master-slave) depending on context.'
|
|
889
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/m/master-slave
|
|
890
|
+
scope: summary
|
|
891
|
+
fix: false
|
|
892
|
+
assertions:
|
|
893
|
+
pattern:
|
|
894
|
+
tokens:
|
|
895
|
+
- \bmaster\s*/\s*slave\b
|
|
896
|
+
- \bmaster-slave\b
|
|
897
|
+
ignoreCase: true
|
|
898
|
+
microsoft/mouse-over:
|
|
899
|
+
severity: warn
|
|
900
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
901
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/mouse-mouse-interaction-terms
|
|
902
|
+
scope: summary
|
|
903
|
+
fix: false
|
|
904
|
+
assertions:
|
|
905
|
+
swap:
|
|
906
|
+
pairs:
|
|
907
|
+
mouse over: hover over
|
|
908
|
+
ignoreCase: true
|
|
909
|
+
wordBoundary: true
|
|
910
|
+
microsoft/no-alt-text:
|
|
911
|
+
severity: error
|
|
912
|
+
message: 'Every image needs alt text (Microsoft: accessibility).'
|
|
913
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/alternative-text
|
|
914
|
+
scope: all
|
|
915
|
+
fix: false
|
|
916
|
+
assertions:
|
|
917
|
+
no-alt-text: {}
|
|
918
|
+
microsoft/no-ampersand-in-headings:
|
|
919
|
+
severity: warn
|
|
920
|
+
message: Spell out "and"; avoid & and + in headings (Microsoft).
|
|
921
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/headings
|
|
922
|
+
scope: heading
|
|
923
|
+
exceptions:
|
|
924
|
+
lines:
|
|
925
|
+
- C++
|
|
926
|
+
- A+
|
|
927
|
+
- .NET
|
|
928
|
+
fix: false
|
|
929
|
+
assertions:
|
|
930
|
+
pattern:
|
|
931
|
+
tokens:
|
|
932
|
+
- '&(?!amp;|nbsp;|lt;|gt;|quot;|#)'
|
|
933
|
+
- \+
|
|
934
|
+
microsoft/no-apostrophe-plural-decade:
|
|
935
|
+
severity: warn
|
|
936
|
+
message: 'Don''t use an apostrophe to form a plural decade (Microsoft): "%s"'
|
|
937
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/apostrophes
|
|
938
|
+
scope: summary
|
|
939
|
+
fix: false
|
|
940
|
+
assertions:
|
|
941
|
+
pattern:
|
|
942
|
+
tokens:
|
|
943
|
+
- \b(?:19|20)\d0['’]s\b
|
|
944
|
+
microsoft/no-awkward-contractions:
|
|
945
|
+
severity: warn
|
|
946
|
+
message: Avoid the ambiguous contraction "%s" (Microsoft).
|
|
947
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-contractions
|
|
948
|
+
scope: summary
|
|
949
|
+
fix: false
|
|
950
|
+
assertions:
|
|
951
|
+
pattern:
|
|
952
|
+
tokens:
|
|
953
|
+
- \b(?:there['’]d|it['’]ll|they['’]d|that['’]ll|there['’]ll)\b
|
|
954
|
+
ignoreCase: true
|
|
955
|
+
microsoft/no-blank-table-cell:
|
|
956
|
+
severity: warn
|
|
957
|
+
message: Use "Not applicable" or "None" instead of an em dash in a table cell (Microsoft).
|
|
958
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/tables
|
|
959
|
+
scope: table.cell
|
|
960
|
+
fix: false
|
|
961
|
+
assertions:
|
|
962
|
+
pattern:
|
|
963
|
+
tokens:
|
|
964
|
+
- ^\s*(?:—\s*)?$
|
|
965
|
+
microsoft/no-click:
|
|
966
|
+
severity: warn
|
|
967
|
+
message: 'Use "%s" instead of "%s" (Microsoft: avoid input-specific verbs).'
|
|
968
|
+
link: https://learn.microsoft.com/en-us/style-guide/procedures-instructions/describing-interactions-with-ui
|
|
969
|
+
scope: summary
|
|
970
|
+
fix: false
|
|
971
|
+
assertions:
|
|
972
|
+
swap:
|
|
973
|
+
pairs:
|
|
974
|
+
click on: select
|
|
975
|
+
(?<![\w-])click(?![a-zA-Z])(?!\s+(?:count|counts|rate|rates|event|events|tracking|data|metrics?|history|id|ids|per)\b): select
|
|
976
|
+
(?<![\w-])clicks(?![a-zA-Z])(?!\s+(?:count|counts|rate|rates|event|events|tracking|data|metrics?|history|per)\b): selects
|
|
977
|
+
(?<![\w-])clicking(?![a-zA-Z]): selecting
|
|
978
|
+
(?<![\w-])clicked(?![a-zA-Z]): selected
|
|
979
|
+
ignoreCase: true
|
|
980
|
+
wordBoundary: false
|
|
981
|
+
keysAreRegex: true
|
|
982
|
+
microsoft/no-derogatory-slang:
|
|
983
|
+
severity: error
|
|
984
|
+
message: Avoid the derogatory or culturally appropriative term "%s" (Microsoft).
|
|
985
|
+
link: https://learn.microsoft.com/en-us/style-guide/bias-free-communication
|
|
986
|
+
scope: summary
|
|
987
|
+
fix: false
|
|
988
|
+
assertions:
|
|
989
|
+
pattern:
|
|
990
|
+
tokens:
|
|
991
|
+
- \bpimp\b
|
|
992
|
+
- \bbitch\b
|
|
993
|
+
- \bspirit animal\b
|
|
994
|
+
ignoreCase: true
|
|
995
|
+
microsoft/no-ellipsis-column-header:
|
|
996
|
+
severity: warn
|
|
997
|
+
message: 'Don''t end a table column header with an ellipsis (Microsoft): "%s"'
|
|
998
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/tables
|
|
999
|
+
scope: table.header
|
|
1000
|
+
fix: false
|
|
1001
|
+
assertions:
|
|
1002
|
+
pattern:
|
|
1003
|
+
tokens:
|
|
1004
|
+
- (?:\.\.\.|…)$
|
|
1005
|
+
microsoft/no-emphasis-as-heading:
|
|
1006
|
+
severity: error
|
|
1007
|
+
message: Use a heading level, not bold or italic text, to show hierarchy (Microsoft).
|
|
1008
|
+
link: https://learn.microsoft.com/en-us/style-guide/accessibility/writing-all-abilities
|
|
1009
|
+
scope: all
|
|
1010
|
+
fix: false
|
|
1011
|
+
assertions:
|
|
1012
|
+
no-emphasis-as-heading: {}
|
|
1013
|
+
microsoft/no-from-before-en-dash-range:
|
|
1014
|
+
severity: warn
|
|
1015
|
+
message: 'Don''t use "from" before an en-dash number range (Microsoft): "%s"'
|
|
1016
|
+
link: https://learn.microsoft.com/en-us/style-guide/numbers
|
|
1017
|
+
scope: summary
|
|
1018
|
+
fix: false
|
|
1019
|
+
assertions:
|
|
1020
|
+
pattern:
|
|
1021
|
+
tokens:
|
|
1022
|
+
- \bfrom\s+\d+\s*[–—]\s*\d+
|
|
1023
|
+
microsoft/no-latin-abbreviations:
|
|
1024
|
+
severity: warn
|
|
1025
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
1026
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words
|
|
1027
|
+
scope: summary
|
|
1028
|
+
fix: false
|
|
1029
|
+
assertions:
|
|
1030
|
+
swap:
|
|
1031
|
+
pairs:
|
|
1032
|
+
\be\.g\.,?: for example
|
|
1033
|
+
\bi\.e\.,?: that is
|
|
1034
|
+
\bviz\.: namely
|
|
1035
|
+
\bergo\b: therefore
|
|
1036
|
+
ignoreCase: true
|
|
1037
|
+
wordBoundary: false
|
|
1038
|
+
keysAreRegex: true
|
|
1039
|
+
microsoft/no-latin-abbreviations-detect:
|
|
1040
|
+
severity: error
|
|
1041
|
+
message: 'Microsoft style: avoid the non-English phrase "%s" — no single replacement is prescribed; rewrite for the context (Microsoft).'
|
|
1042
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words
|
|
1043
|
+
scope: summary
|
|
1044
|
+
fix: false
|
|
1045
|
+
assertions:
|
|
1046
|
+
pattern:
|
|
1047
|
+
tokens:
|
|
1048
|
+
- \bde facto\b
|
|
1049
|
+
- \bad hoc\b
|
|
1050
|
+
- \bvis-[àa]-vis\b
|
|
1051
|
+
ignoreCase: true
|
|
1052
|
+
microsoft/no-multiple-blanks:
|
|
1053
|
+
severity: error
|
|
1054
|
+
message: Don't use extra blank lines to create heading spacing (Microsoft).
|
|
1055
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/headings
|
|
1056
|
+
scope: all
|
|
1057
|
+
fix: false
|
|
1058
|
+
assertions:
|
|
1059
|
+
no-multiple-blanks: {}
|
|
1060
|
+
microsoft/no-space-around-em-dash:
|
|
1061
|
+
severity: warn
|
|
1062
|
+
message: Don't use spaces around an em dash (Microsoft).
|
|
1063
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/
|
|
1064
|
+
scope: summary
|
|
1065
|
+
fix: false
|
|
1066
|
+
assertions:
|
|
1067
|
+
pattern:
|
|
1068
|
+
tokens:
|
|
1069
|
+
- \s—\s
|
|
1070
|
+
microsoft/no-trailing-conjunction-list:
|
|
1071
|
+
severity: warn
|
|
1072
|
+
message: 'Don''t end a list item with a semicolon, comma, or conjunction (Microsoft): "%s"'
|
|
1073
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/lists
|
|
1074
|
+
scope: list-item
|
|
1075
|
+
fix: false
|
|
1076
|
+
assertions:
|
|
1077
|
+
pattern:
|
|
1078
|
+
tokens:
|
|
1079
|
+
- '[,;]$'
|
|
1080
|
+
- \b(?:and|or)$
|
|
1081
|
+
ignoreCase: true
|
|
1082
|
+
microsoft/no-trailing-punctuation:
|
|
1083
|
+
severity: error
|
|
1084
|
+
message: Don't end headings with punctuation (Microsoft).
|
|
1085
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/headings
|
|
1086
|
+
scope: all
|
|
1087
|
+
fix: false
|
|
1088
|
+
assertions:
|
|
1089
|
+
no-trailing-punctuation: {}
|
|
1090
|
+
microsoft/no-weak-phrasing:
|
|
1091
|
+
severity: warn
|
|
1092
|
+
message: Avoid weak phrasing such as "%s"; start the sentence with a verb (Microsoft).
|
|
1093
|
+
link: https://learn.microsoft.com/en-us/style-guide/top-10-tips-style-voice
|
|
1094
|
+
scope:
|
|
1095
|
+
- paragraph
|
|
1096
|
+
- list-item
|
|
1097
|
+
fix: false
|
|
1098
|
+
assertions:
|
|
1099
|
+
pattern:
|
|
1100
|
+
tokens:
|
|
1101
|
+
- \bthere (?:is|are|was|were)\b
|
|
1102
|
+
ignoreCase: true
|
|
1103
|
+
microsoft/noon-midnight:
|
|
1104
|
+
severity: warn
|
|
1105
|
+
message: Use "noon" or "midnight" instead of "%s" (Microsoft).
|
|
1106
|
+
link: https://learn.microsoft.com/en-us/style-guide/numbers
|
|
1107
|
+
scope: summary
|
|
1108
|
+
fix: false
|
|
1109
|
+
assertions:
|
|
1110
|
+
pattern:
|
|
1111
|
+
tokens:
|
|
1112
|
+
- \b12:00\s*(?:AM|PM|am|pm)\b
|
|
1113
|
+
microsoft/ordinal-no-ly:
|
|
1114
|
+
severity: warn
|
|
1115
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
1116
|
+
link: https://learn.microsoft.com/en-us/style-guide/numbers
|
|
1117
|
+
scope: summary
|
|
1118
|
+
fix: false
|
|
1119
|
+
assertions:
|
|
1120
|
+
swap:
|
|
1121
|
+
pairs:
|
|
1122
|
+
firstly: first
|
|
1123
|
+
secondly: second
|
|
1124
|
+
thirdly: third
|
|
1125
|
+
ignoreCase: true
|
|
1126
|
+
wordBoundary: true
|
|
1127
|
+
microsoft/paragraph-length:
|
|
1128
|
+
severity: warn
|
|
1129
|
+
message: Paragraph is %s %s long; Microsoft suggests at most 7 (sentences, as a proxy for lines).
|
|
1130
|
+
link: https://learn.microsoft.com/en-us/style-guide/scannable-content/
|
|
1131
|
+
scope: paragraph
|
|
1132
|
+
fix: false
|
|
1133
|
+
assertions:
|
|
1134
|
+
length:
|
|
1135
|
+
unit: sentences
|
|
1136
|
+
max: 7
|
|
1137
|
+
microsoft/press-key-verb:
|
|
1138
|
+
severity: warn
|
|
1139
|
+
message: Use "select" to describe pressing a key, not "%s" (Microsoft).
|
|
1140
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/h/hit
|
|
1141
|
+
scope: summary
|
|
1142
|
+
fix: false
|
|
1143
|
+
assertions:
|
|
1144
|
+
pattern:
|
|
1145
|
+
tokens:
|
|
1146
|
+
- \b(?:press|hit|strike)\s+(?:the\s+)?(?:Enter|Tab|Esc|Escape|Delete|Backspace|spacebar|Ctrl|Shift|Alt)\b
|
|
1147
|
+
- \b(?:press|hit|strike)\s+the\s+\S+\s+key\b
|
|
1148
|
+
ignoreCase: true
|
|
1149
|
+
microsoft/racial-ethnic-capitalization:
|
|
1150
|
+
severity: error
|
|
1151
|
+
message: 'Use title-style capitalization: "%s" instead of "%s" (Microsoft).'
|
|
1152
|
+
link: https://learn.microsoft.com/en-us/style-guide/bias-free-communication
|
|
1153
|
+
scope: summary
|
|
1154
|
+
fix: false
|
|
1155
|
+
assertions:
|
|
1156
|
+
swap:
|
|
1157
|
+
pairs:
|
|
1158
|
+
asian: Asian
|
|
1159
|
+
black and african american: Black and African American
|
|
1160
|
+
hispanic and latinx: Hispanic and Latinx
|
|
1161
|
+
native american: Native American
|
|
1162
|
+
alaska native: Alaska Native
|
|
1163
|
+
native hawaiian: Native Hawaiian
|
|
1164
|
+
pacific islander: Pacific Islander
|
|
1165
|
+
indigenous peoples: Indigenous Peoples
|
|
1166
|
+
ignoreCase: false
|
|
1167
|
+
wordBoundary: true
|
|
1168
|
+
microsoft/sign-in-sign-out:
|
|
1169
|
+
severity: warn
|
|
1170
|
+
message: 'Rewrite "%s" as "%s" (Microsoft): "login"/"logon" as a noun needs a sentence rewrite.'
|
|
1171
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/l/log-on-log-off
|
|
1172
|
+
scope: summary
|
|
1173
|
+
fix: false
|
|
1174
|
+
assertions:
|
|
1175
|
+
swap:
|
|
1176
|
+
pairs:
|
|
1177
|
+
log into: sign in to
|
|
1178
|
+
log onto: sign in to
|
|
1179
|
+
log in: sign in
|
|
1180
|
+
login: sign in
|
|
1181
|
+
log on: sign in
|
|
1182
|
+
logon: sign in
|
|
1183
|
+
log off: sign out
|
|
1184
|
+
log out: sign out
|
|
1185
|
+
logout: sign out
|
|
1186
|
+
sign into: sign in to
|
|
1187
|
+
signin: sign in
|
|
1188
|
+
sign off: sign out
|
|
1189
|
+
ignoreCase: true
|
|
1190
|
+
wordBoundary: true
|
|
1191
|
+
microsoft/simple-words:
|
|
1192
|
+
severity: warn
|
|
1193
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
1194
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences
|
|
1195
|
+
scope: summary
|
|
1196
|
+
fix: false
|
|
1197
|
+
assertions:
|
|
1198
|
+
swap:
|
|
1199
|
+
pairs:
|
|
1200
|
+
\butilize\b: use
|
|
1201
|
+
\butilise\b: use
|
|
1202
|
+
\bmake use of\b: use
|
|
1203
|
+
\bin order to\b: to
|
|
1204
|
+
\bas a means to\b: to
|
|
1205
|
+
\bin addition\b(?!\s+to\b): also
|
|
1206
|
+
\bestablish connectivity\b: connect
|
|
1207
|
+
\binform\b: tell
|
|
1208
|
+
ignoreCase: true
|
|
1209
|
+
wordBoundary: false
|
|
1210
|
+
keysAreRegex: true
|
|
1211
|
+
microsoft/single-space-after-punctuation:
|
|
1212
|
+
severity: warn
|
|
1213
|
+
message: Use one space, not two, after end punctuation (Microsoft).
|
|
1214
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/periods
|
|
1215
|
+
scope: summary
|
|
1216
|
+
fix: false
|
|
1217
|
+
assertions:
|
|
1218
|
+
pattern:
|
|
1219
|
+
tokens:
|
|
1220
|
+
- '[.!?:]\s{2,}(?=[A-Z])'
|
|
1221
|
+
microsoft/spell-out-ordinals:
|
|
1222
|
+
severity: warn
|
|
1223
|
+
message: Spell out ordinal numbers; avoid "%s" (Microsoft).
|
|
1224
|
+
link: https://learn.microsoft.com/en-us/style-guide/numbers
|
|
1225
|
+
scope: summary
|
|
1226
|
+
fix: false
|
|
1227
|
+
assertions:
|
|
1228
|
+
pattern:
|
|
1229
|
+
tokens:
|
|
1230
|
+
- \b\d+(?:st|nd|rd|th)\b
|
|
1231
|
+
microsoft/spelling-hyphenation:
|
|
1232
|
+
severity: error
|
|
1233
|
+
message: Microsoft style spells this "%s", not "%s".
|
|
1234
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/e/email
|
|
1235
|
+
scope: summary
|
|
1236
|
+
fix: false
|
|
1237
|
+
assertions:
|
|
1238
|
+
swap:
|
|
1239
|
+
pairs:
|
|
1240
|
+
\be-?mail\b(?<!email): email
|
|
1241
|
+
\bdata ?base\b(?<!database): database
|
|
1242
|
+
\bend ?point\b(?<!endpoint): endpoint
|
|
1243
|
+
\bweb ?site\b(?<!website): website
|
|
1244
|
+
\bweb ?page\b(?<!webpage): webpage
|
|
1245
|
+
\bwork ?station\b(?<!workstation): workstation
|
|
1246
|
+
\bscreen ?shot\b(?<!screenshot): screenshot
|
|
1247
|
+
\btask ?bar\b(?<!taskbar): taskbar
|
|
1248
|
+
\bname ?space\b(?<!namespace): namespace
|
|
1249
|
+
\bplug-in\b: plugin
|
|
1250
|
+
\becommerce\b: e-commerce
|
|
1251
|
+
\belearning\b: e-learning
|
|
1252
|
+
\bebook\b: e-book
|
|
1253
|
+
\bcyber-security\b: cybersecurity
|
|
1254
|
+
\bco-author\b: coauthor
|
|
1255
|
+
\bdial ?up\b: dial-up
|
|
1256
|
+
\bread only\b: read-only
|
|
1257
|
+
\bcontext sensitive\b: context-sensitive
|
|
1258
|
+
\bsingle sign ?on\b: single sign-on
|
|
1259
|
+
\bmulti-factor\b: multifactor
|
|
1260
|
+
\bmulti-cloud\b: multicloud
|
|
1261
|
+
\bmulti-tenant\b: multitenant
|
|
1262
|
+
\bwell-being\b: wellbeing
|
|
1263
|
+
\btool ?tip\b(?<!tooltip): tooltip
|
|
1264
|
+
\bimbed\b: embed
|
|
1265
|
+
ignoreCase: true
|
|
1266
|
+
wordBoundary: false
|
|
1267
|
+
keysAreRegex: true
|
|
1268
|
+
microsoft/straight-quotes:
|
|
1269
|
+
severity: warn
|
|
1270
|
+
message: Use straight quotation marks, not curly ones (Microsoft).
|
|
1271
|
+
link: https://learn.microsoft.com/en-us/style-guide/punctuation/quotation-marks
|
|
1272
|
+
scope: summary
|
|
1273
|
+
fix: false
|
|
1274
|
+
assertions:
|
|
1275
|
+
swap:
|
|
1276
|
+
pairs:
|
|
1277
|
+
“: '"'
|
|
1278
|
+
”: '"'
|
|
1279
|
+
‘: "'"
|
|
1280
|
+
’: "'"
|
|
1281
|
+
microsoft/the-ask:
|
|
1282
|
+
severity: warn
|
|
1283
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
1284
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/dont-use-common-words-in-new-ways
|
|
1285
|
+
scope: summary
|
|
1286
|
+
fix: false
|
|
1287
|
+
assertions:
|
|
1288
|
+
swap:
|
|
1289
|
+
pairs:
|
|
1290
|
+
\bthe ask\b(?!\s+(?:tick|ticks|price|prices|spread|spreads|size|quote|quotes)\b): the request
|
|
1291
|
+
ignoreCase: true
|
|
1292
|
+
wordBoundary: false
|
|
1293
|
+
keysAreRegex: true
|
|
1294
|
+
microsoft/tooltip-capitalization:
|
|
1295
|
+
severity: error
|
|
1296
|
+
message: 'Use "%s", not "%s" (Microsoft: tooltip is one word, lowercase).'
|
|
1297
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/t/tooltip
|
|
1298
|
+
scope: summary
|
|
1299
|
+
fix: false
|
|
1300
|
+
assertions:
|
|
1301
|
+
swap:
|
|
1302
|
+
pairs:
|
|
1303
|
+
ToolTip: tooltip
|
|
1304
|
+
ignoreCase: false
|
|
1305
|
+
wordBoundary: true
|
|
1306
|
+
microsoft/us-spelling:
|
|
1307
|
+
severity: error
|
|
1308
|
+
message: Use the US spelling "%s" instead of "%s" (Microsoft).
|
|
1309
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words
|
|
1310
|
+
scope: summary
|
|
1311
|
+
fix: false
|
|
1312
|
+
assertions:
|
|
1313
|
+
swap:
|
|
1314
|
+
pairs:
|
|
1315
|
+
\bcentred\b: centered
|
|
1316
|
+
\bcentring\b: centering
|
|
1317
|
+
\bcatalogued\b: cataloged
|
|
1318
|
+
\bcataloguing\b: cataloging
|
|
1319
|
+
\bcancelled\b: canceled
|
|
1320
|
+
\bcancelling\b: canceling
|
|
1321
|
+
\bfavourite\b: favorite
|
|
1322
|
+
\bauthorise\b: authorize
|
|
1323
|
+
\bauthorises\b: authorizes
|
|
1324
|
+
\bauthorised\b: authorized
|
|
1325
|
+
\bauthorising\b: authorizing
|
|
1326
|
+
\bauthorisation\b: authorization
|
|
1327
|
+
\bcustomise\b: customize
|
|
1328
|
+
\bcustomises\b: customizes
|
|
1329
|
+
\bcustomised\b: customized
|
|
1330
|
+
\bcustomising\b: customizing
|
|
1331
|
+
\bcustomisation\b: customization
|
|
1332
|
+
\blabelled\b: labeled
|
|
1333
|
+
\blabelling\b: labeling
|
|
1334
|
+
\bmodelled\b: modeled
|
|
1335
|
+
\bmodelling\b: modeling
|
|
1336
|
+
ignoreCase: true
|
|
1337
|
+
wordBoundary: false
|
|
1338
|
+
keysAreRegex: true
|
|
1339
|
+
microsoft/us-spelling-detect:
|
|
1340
|
+
severity: error
|
|
1341
|
+
message: Use the US spelling "%s" instead of "%s" (Microsoft).
|
|
1342
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words
|
|
1343
|
+
scope: summary
|
|
1344
|
+
fix: false
|
|
1345
|
+
assertions:
|
|
1346
|
+
swap:
|
|
1347
|
+
pairs:
|
|
1348
|
+
\bcentre\b: center
|
|
1349
|
+
\bcentres\b: centers
|
|
1350
|
+
\bcatalogue\b: catalog
|
|
1351
|
+
\bcatalogues\b: catalogs
|
|
1352
|
+
ignoreCase: true
|
|
1353
|
+
wordBoundary: false
|
|
1354
|
+
keysAreRegex: true
|
|
1355
|
+
microsoft/usa-abbreviation:
|
|
1356
|
+
severity: warn
|
|
1357
|
+
message: 'Microsoft style: use "%s" instead of "%s".'
|
|
1358
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/f/far-east
|
|
1359
|
+
scope: summary
|
|
1360
|
+
fix: false
|
|
1361
|
+
assertions:
|
|
1362
|
+
swap:
|
|
1363
|
+
pairs:
|
|
1364
|
+
\bUSA\b: US
|
|
1365
|
+
\bU\.S\.A\.: US
|
|
1366
|
+
\bU\.S\.: US
|
|
1367
|
+
ignoreCase: true
|
|
1368
|
+
wordBoundary: false
|
|
1369
|
+
keysAreRegex: true
|
|
1370
|
+
microsoft/use-contractions:
|
|
1371
|
+
severity: warn
|
|
1372
|
+
message: Microsoft style prefers the contraction "%s" over "%s".
|
|
1373
|
+
link: https://learn.microsoft.com/en-us/style-guide/word-choice/use-contractions
|
|
1374
|
+
scope: summary
|
|
1375
|
+
fix: false
|
|
1376
|
+
assertions:
|
|
1377
|
+
swap:
|
|
1378
|
+
pairs:
|
|
1379
|
+
cannot: can't
|
|
1380
|
+
can not: can't
|
|
1381
|
+
do not: don't
|
|
1382
|
+
does not: doesn't
|
|
1383
|
+
did not: didn't
|
|
1384
|
+
is not: isn't
|
|
1385
|
+
are not: aren't
|
|
1386
|
+
was not: wasn't
|
|
1387
|
+
were not: weren't
|
|
1388
|
+
will not: won't
|
|
1389
|
+
would not: wouldn't
|
|
1390
|
+
should not: shouldn't
|
|
1391
|
+
could not: couldn't
|
|
1392
|
+
have not: haven't
|
|
1393
|
+
has not: hasn't
|
|
1394
|
+
had not: hadn't
|
|
1395
|
+
it is: it's
|
|
1396
|
+
you are: you're
|
|
1397
|
+
we are: we're
|
|
1398
|
+
they are: they're
|
|
1399
|
+
you will: you'll
|
|
1400
|
+
let us: let's
|
|
1401
|
+
ignoreCase: true
|
|
1402
|
+
wordBoundary: true
|
|
1403
|
+
microsoft/versus-in-text:
|
|
1404
|
+
severity: warn
|
|
1405
|
+
message: Use "%s" instead of "%s" in body text (Microsoft).
|
|
1406
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/v/versus-vs
|
|
1407
|
+
scope:
|
|
1408
|
+
- paragraph
|
|
1409
|
+
- list-item
|
|
1410
|
+
- table.cell
|
|
1411
|
+
fix: false
|
|
1412
|
+
assertions:
|
|
1413
|
+
swap:
|
|
1414
|
+
pairs:
|
|
1415
|
+
\bvs\.: versus
|
|
1416
|
+
ignoreCase: true
|
|
1417
|
+
wordBoundary: false
|
|
1418
|
+
keysAreRegex: true
|
|
1419
|
+
microsoft/vs-in-headings:
|
|
1420
|
+
severity: warn
|
|
1421
|
+
message: Use "%s" instead of "%s" in headings (Microsoft).
|
|
1422
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/v/versus-vs
|
|
1423
|
+
scope: heading
|
|
1424
|
+
fix: false
|
|
1425
|
+
assertions:
|
|
1426
|
+
swap:
|
|
1427
|
+
pairs:
|
|
1428
|
+
versus: vs.
|
|
1429
|
+
ignoreCase: true
|
|
1430
|
+
wordBoundary: true
|
|
1431
|
+
microsoft/world-wide-web:
|
|
1432
|
+
severity: warn
|
|
1433
|
+
message: Use "%s" instead of "%s" (Microsoft).
|
|
1434
|
+
link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/i/internet-intranet-extranet
|
|
1435
|
+
scope: summary
|
|
1436
|
+
fix: false
|
|
1437
|
+
assertions:
|
|
1438
|
+
swap:
|
|
1439
|
+
pairs:
|
|
1440
|
+
World Wide Web: web
|
|
1441
|
+
ignoreCase: false
|
|
1442
|
+
wordBoundary: true
|
|
1443
|
+
|
|
1444
|
+
# ==============================================================================
|
|
1445
|
+
# Appendix — candidates NOT shipped by recheck/microsoft (hand-maintained)
|
|
1446
|
+
# ==============================================================================
|
|
1447
|
+
# This file is appended verbatim to the generated example above by
|
|
1448
|
+
# `pnpm examples:generate` (see scripts/generate-examples.mjs). Editing it
|
|
1449
|
+
# makes examples/microsoft.yaml stale until you regenerate — the drift
|
|
1450
|
+
# test's failure message says so, so this doesn't read as a generator bug.
|
|
1451
|
+
#
|
|
1452
|
+
# Full detail, every candidate, and why: packages/recheck/presets/microsoft/PROVENANCE.md
|
|
1453
|
+
#
|
|
1454
|
+
# ------------------------------------------------------------------------------
|
|
1455
|
+
# TOO-RISKY / NOISY — real, guide-confirmed content, judged too broad or too
|
|
1456
|
+
# audience-conditional to enforce mechanically. Shown here as the rule it
|
|
1457
|
+
# WOULD be if shipped, commented out, so you can see the shape being avoided.
|
|
1458
|
+
# ------------------------------------------------------------------------------
|
|
1459
|
+
|
|
1460
|
+
# TOO-RISKY: "deprecated" is confirmed guide content ("avoid in content for a
|
|
1461
|
+
# technical audience"), but it's itself load-bearing OpenAPI vocabulary (the
|
|
1462
|
+
# `deprecated: true` field) — shipping this would misfire on Redocly's own
|
|
1463
|
+
# API-documentation domain.
|
|
1464
|
+
# microsoft/deprecated-obsolete:
|
|
1465
|
+
# severity: warn
|
|
1466
|
+
# message: 'Use "%s" instead of "%s" (Microsoft).'
|
|
1467
|
+
# assertions:
|
|
1468
|
+
# swap:
|
|
1469
|
+
# ignoreCase: true
|
|
1470
|
+
# wordBoundary: true
|
|
1471
|
+
# pairs: { deprecated: obsolete }
|
|
1472
|
+
|
|
1473
|
+
# TOO-RISKY: Microsoft's own page carves out exactly Redocly's audience —
|
|
1474
|
+
# "it's OK to use header as a short form of file header, as in HTML header"
|
|
1475
|
+
# — the standard, correct term for an HTTP/API header throughout API docs.
|
|
1476
|
+
# microsoft/header-heading:
|
|
1477
|
+
# severity: warn
|
|
1478
|
+
# message: 'Use "%s" instead of "%s" (Microsoft) — except in developer content.'
|
|
1479
|
+
# assertions:
|
|
1480
|
+
# swap:
|
|
1481
|
+
# ignoreCase: true
|
|
1482
|
+
# wordBoundary: true
|
|
1483
|
+
# pairs: { header: heading }
|
|
1484
|
+
|
|
1485
|
+
# TOO-RISKY: "context menu" is developer-audience-conditional per Microsoft's
|
|
1486
|
+
# own page ("use context menu only in content for developers") — Redocly's
|
|
1487
|
+
# docs ARE developer content, so this would misfire if shipped unconditionally.
|
|
1488
|
+
# microsoft/context-menu:
|
|
1489
|
+
# severity: warn
|
|
1490
|
+
# message: 'Use "%s" instead of "%s" (Microsoft) — except in developer content.'
|
|
1491
|
+
# assertions:
|
|
1492
|
+
# swap:
|
|
1493
|
+
# ignoreCase: true
|
|
1494
|
+
# wordBoundary: true
|
|
1495
|
+
# pairs: { context menu: shortcut menu }
|
|
1496
|
+
|
|
1497
|
+
# TOO-RISKY: "that" referring to people is one of the most common words in
|
|
1498
|
+
# English; only a small fraction of occurrences refer to people at all, so a
|
|
1499
|
+
# literal swap toward "who" would be extraordinarily noisy.
|
|
1500
|
+
# microsoft/that-who:
|
|
1501
|
+
# severity: warn
|
|
1502
|
+
# message: 'Consider "%s" instead of "%s" when referring to a person (Microsoft).'
|
|
1503
|
+
# assertions:
|
|
1504
|
+
# pattern:
|
|
1505
|
+
# tokens: ['\bthat\b']
|
|
1506
|
+
|
|
1507
|
+
# TOO-RISKY: "star" is an ordinary English word (star rating, star
|
|
1508
|
+
# performer) with a narrow, Microsoft-documented exception (OK for a
|
|
1509
|
+
# phone-keypad key) a blanket swap would miss in both directions.
|
|
1510
|
+
# microsoft/star-asterisk:
|
|
1511
|
+
# severity: warn
|
|
1512
|
+
# message: 'Use "%s" instead of "%s" (Microsoft), except for the phone-keypad key.'
|
|
1513
|
+
# assertions:
|
|
1514
|
+
# swap:
|
|
1515
|
+
# ignoreCase: true
|
|
1516
|
+
# wordBoundary: true
|
|
1517
|
+
# pairs: { star: asterisk }
|
|
1518
|
+
|
|
1519
|
+
# ------------------------------------------------------------------------------
|
|
1520
|
+
# NEEDS HUMAN REVIEW — real guide content with no safe mechanical detection
|
|
1521
|
+
# (NOT-ENFORCEABLE). Recheck cannot check these; review them yourself:
|
|
1522
|
+
# ------------------------------------------------------------------------------
|
|
1523
|
+
# [ ] Active voice, subjunctive mood, verb-first sentences, modifier
|
|
1524
|
+
# stacks, that/who omission — all require POS tagging or grammatical-
|
|
1525
|
+
# role judgment beyond regex/AST primitives
|
|
1526
|
+
# [ ] Table cells in sentence case — reference tables are dense with
|
|
1527
|
+
# identifiers and proper nouns that don't fit cleanly
|
|
1528
|
+
# [ ] "Name" as a column header — genuinely correct in many API reference
|
|
1529
|
+
# tables; Microsoft's own objection needs context this preset doesn't have
|
|
1530
|
+
# [ ] Second-level headings need at least two siblings; no two headings in
|
|
1531
|
+
# a row; list-item parallelism
|
|
1532
|
+
# [ ] En dash for a minus sign; "from"/"through" ranges; closing-quote
|
|
1533
|
+
# placement; mid-sentence colon rules
|
|
1534
|
+
# [ ] Spell out single-digit numbers; no sentence-initial numerals; no
|
|
1535
|
+
# K/M/B abbreviations; spell out months
|
|
1536
|
+
# [ ] Bare-URL/link-formatting rules (available generically via
|
|
1537
|
+
# `recheck/markdown`'s `no-bare-urls` if you want them, just not
|
|
1538
|
+
# attributed to Microsoft specifically here)
|
|
1539
|
+
# [ ] House-rule structural conventions (link fragments, fenced-code
|
|
1540
|
+
# language, single H1, consistent bullet/fence/emphasis style) — real
|
|
1541
|
+
# and worth having, but the guide itself never states them, so they
|
|
1542
|
+
# don't ship under a Microsoft attribution
|