From 9c9ca8269d07eeb98a8b8f9fffd703742456e758 Mon Sep 17 00:00:00 2001 From: Joseph Kato Date: Thu, 6 Aug 2020 20:01:41 -0700 Subject: [PATCH] Add `Microsoft` and `Vocab` --- styles/Microsoft/AMPM.yml | 10 + styles/Microsoft/Accessibility.yml | 26 +++ styles/Microsoft/Acronyms.yml | 65 ++++++ styles/Microsoft/Adverbs.yml | 271 ++++++++++++++++++++++++ styles/Microsoft/Auto.yml | 12 ++ styles/Microsoft/Avoid.yml | 19 ++ styles/Microsoft/Backend.yml | 13 ++ styles/Microsoft/ComplexWords.yml | 121 +++++++++++ styles/Microsoft/Contractions.yml | 31 +++ styles/Microsoft/Dashes.yml | 14 ++ styles/Microsoft/DateFormat.yml | 9 + styles/Microsoft/DateNumbers.yml | 41 ++++ styles/Microsoft/DateOrder.yml | 9 + styles/Microsoft/Ellipses.yml | 10 + styles/Microsoft/FirstPerson.yml | 14 ++ styles/Microsoft/Foreign.yml | 13 ++ styles/Microsoft/Gender.yml | 9 + styles/Microsoft/GenderBias.yml | 45 ++++ styles/Microsoft/GeneralURL.yml | 12 ++ styles/Microsoft/HeadingAcronyms.yml | 7 + styles/Microsoft/HeadingColons.yml | 8 + styles/Microsoft/HeadingPunctuation.yml | 13 ++ styles/Microsoft/Headings.yml | 28 +++ styles/Microsoft/Hyphens.yml | 15 ++ styles/Microsoft/Negative.yml | 14 ++ styles/Microsoft/Ordinal.yml | 14 ++ styles/Microsoft/OxfordComma.yml | 7 + styles/Microsoft/Passive.yml | 184 ++++++++++++++++ styles/Microsoft/Percentages.yml | 8 + styles/Microsoft/Quotes.yml | 8 + styles/Microsoft/RangeFormat.yml | 14 ++ styles/Microsoft/RangeTime.yml | 14 ++ styles/Microsoft/Ranges.yml | 8 + styles/Microsoft/Semicolon.yml | 8 + styles/Microsoft/SentenceLength.yml | 7 + styles/Microsoft/Spacing.yml | 9 + styles/Microsoft/Suspended.yml | 8 + styles/Microsoft/Terms.yml | 44 ++++ styles/Microsoft/URLFormat.yml | 11 + styles/Microsoft/Units.yml | 17 ++ styles/Microsoft/Vocab.yml | 24 +++ styles/Microsoft/We.yml | 12 ++ styles/Microsoft/Wordiness.yml | 123 +++++++++++ styles/Microsoft/meta.json | 4 + styles/Vocab/Blog/accept.txt | 0 styles/Vocab/Blog/reject.txt | 0 styles/Vocab/Marketing/accept.txt | 0 styles/Vocab/Marketing/reject.txt | 0 48 files changed, 1353 insertions(+) create mode 100644 styles/Microsoft/AMPM.yml create mode 100644 styles/Microsoft/Accessibility.yml create mode 100644 styles/Microsoft/Acronyms.yml create mode 100644 styles/Microsoft/Adverbs.yml create mode 100644 styles/Microsoft/Auto.yml create mode 100644 styles/Microsoft/Avoid.yml create mode 100644 styles/Microsoft/Backend.yml create mode 100644 styles/Microsoft/ComplexWords.yml create mode 100644 styles/Microsoft/Contractions.yml create mode 100644 styles/Microsoft/Dashes.yml create mode 100644 styles/Microsoft/DateFormat.yml create mode 100644 styles/Microsoft/DateNumbers.yml create mode 100644 styles/Microsoft/DateOrder.yml create mode 100644 styles/Microsoft/Ellipses.yml create mode 100644 styles/Microsoft/FirstPerson.yml create mode 100644 styles/Microsoft/Foreign.yml create mode 100644 styles/Microsoft/Gender.yml create mode 100644 styles/Microsoft/GenderBias.yml create mode 100644 styles/Microsoft/GeneralURL.yml create mode 100644 styles/Microsoft/HeadingAcronyms.yml create mode 100644 styles/Microsoft/HeadingColons.yml create mode 100644 styles/Microsoft/HeadingPunctuation.yml create mode 100644 styles/Microsoft/Headings.yml create mode 100644 styles/Microsoft/Hyphens.yml create mode 100644 styles/Microsoft/Negative.yml create mode 100644 styles/Microsoft/Ordinal.yml create mode 100644 styles/Microsoft/OxfordComma.yml create mode 100644 styles/Microsoft/Passive.yml create mode 100644 styles/Microsoft/Percentages.yml create mode 100644 styles/Microsoft/Quotes.yml create mode 100644 styles/Microsoft/RangeFormat.yml create mode 100644 styles/Microsoft/RangeTime.yml create mode 100644 styles/Microsoft/Ranges.yml create mode 100644 styles/Microsoft/Semicolon.yml create mode 100644 styles/Microsoft/SentenceLength.yml create mode 100644 styles/Microsoft/Spacing.yml create mode 100644 styles/Microsoft/Suspended.yml create mode 100644 styles/Microsoft/Terms.yml create mode 100644 styles/Microsoft/URLFormat.yml create mode 100644 styles/Microsoft/Units.yml create mode 100644 styles/Microsoft/Vocab.yml create mode 100644 styles/Microsoft/We.yml create mode 100644 styles/Microsoft/Wordiness.yml create mode 100644 styles/Microsoft/meta.json create mode 100644 styles/Vocab/Blog/accept.txt create mode 100644 styles/Vocab/Blog/reject.txt create mode 100644 styles/Vocab/Marketing/accept.txt create mode 100644 styles/Vocab/Marketing/reject.txt diff --git a/styles/Microsoft/AMPM.yml b/styles/Microsoft/AMPM.yml new file mode 100644 index 0000000..fbcbadc --- /dev/null +++ b/styles/Microsoft/AMPM.yml @@ -0,0 +1,10 @@ +extends: existence +message: Use 'AM' or 'PM' (preceded by a space). +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms +level: error + +nonword: true +tokens: + - '\d{1,2}[AP]M' + - '\d{1,2} ?[ap]m' + - '\d{1,2} ?[aApP]\.[mM]\.' diff --git a/styles/Microsoft/Accessibility.yml b/styles/Microsoft/Accessibility.yml new file mode 100644 index 0000000..4d0fa5d --- /dev/null +++ b/styles/Microsoft/Accessibility.yml @@ -0,0 +1,26 @@ +extends: existence +message: "Don't use language (such as '%s') that defines people by their disability." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms + +level: suggestion +ignorecase: true +tokens: + - a victim of + - able-bodied + - affected by + - an epileptic + - crippled + - disabled + - dumb + - handicapped + - handicaps + - healthy + - lame + - maimed + - missing a limb + - mute + - normal + - sight-impaired + - stricken with + - suffers from + - vision-impaired diff --git a/styles/Microsoft/Acronyms.yml b/styles/Microsoft/Acronyms.yml new file mode 100644 index 0000000..f25ed87 --- /dev/null +++ b/styles/Microsoft/Acronyms.yml @@ -0,0 +1,65 @@ +extends: conditional +message: "'%s' has no definition." +link: https://docs.microsoft.com/en-us/style-guide/acronyms + +level: suggestion +ignorecase: false +# Ensures that the existence of 'first' implies the existence of 'second'. +first: '\b([A-Z]{3,5})\b' +second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)' +# ... with the exception of these: +exceptions: + - API + - ASP + - CLI + - CPU + - CSS + - CSV + - DEBUG + - DOM + - DPI + - FAQ + - GCC + - GDB + - GET + - GPU + - GTK + - GUI + - HTML + - HTTP + - HTTPS + - IDE + - JAR + - JSON + - JSX + - LESS + - LLDB + - NET + - NOTE + - NVDA + - OSS + - PATH + - PDF + - PHP + - POST + - RAM + - REPL + - RSA + - SCM + - SCSS + - SDK + - SQL + - SSH + - SSL + - SVG + - TBD + - TCP + - TODO + - URI + - URL + - USB + - UTF + - XML + - XSS + - YAML + - ZIP diff --git a/styles/Microsoft/Adverbs.yml b/styles/Microsoft/Adverbs.yml new file mode 100644 index 0000000..81c6718 --- /dev/null +++ b/styles/Microsoft/Adverbs.yml @@ -0,0 +1,271 @@ +extends: existence +message: "Consider removing '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences +ignorecase: true + +level: warning +action: + name: remove +tokens: + - abnormally + - absentmindedly + - accidentally + - adventurously + - anxiously + - arrogantly + - awkwardly + - bashfully + - beautifully + - bitterly + - bleakly + - blindly + - blissfully + - boastfully + - boldly + - bravely + - briefly + - brightly + - briskly + - broadly + - busily + - calmly + - carefully + - carelessly + - cautiously + - cheerfully + - cleverly + - closely + - coaxingly + - colorfully + - continually + - coolly + - courageously + - crossly + - cruelly + - curiously + - daintily + - dearly + - deceivingly + - deeply + - defiantly + - deliberately + - delightfully + - diligently + - dimly + - doubtfully + - dreamily + - easily + - elegantly + - energetically + - enormously + - enthusiastically + - excitedly + - extremely + - fairly + - faithfully + - famously + - ferociously + - fervently + - fiercely + - fondly + - foolishly + - fortunately + - frankly + - frantically + - freely + - frenetically + - frightfully + - furiously + - generally + - generously + - gently + - gladly + - gleefully + - gracefully + - gratefully + - greatly + - greedily + - happily + - hastily + - healthily + - heavily + - helplessly + - honestly + - hopelessly + - hungrily + - innocently + - inquisitively + - intensely + - intently + - interestingly + - inwardly + - irritably + - jaggedly + - jealously + - jovially + - joyfully + - joyously + - jubilantly + - judgmentally + - justly + - keenly + - kiddingly + - kindheartedly + - knavishly + - knowingly + - knowledgeably + - lazily + - lightly + - limply + - lively + - loftily + - longingly + - loosely + - loudly + - lovingly + - loyally + - madly + - majestically + - meaningfully + - mechanically + - merrily + - miserably + - mockingly + - mortally + - mysteriously + - naturally + - nearly + - neatly + - nervously + - nicely + - noisily + - obediently + - obnoxiously + - oddly + - offensively + - optimistically + - overconfidently + - painfully + - partially + - patiently + - perfectly + - playfully + - politely + - poorly + - positively + - potentially + - powerfully + - promptly + - properly + - punctually + - quaintly + - queasily + - queerly + - questionably + - quickly + - quietly + - quirkily + - quizzically + - randomly + - rapidly + - rarely + - readily + - really + - reassuringly + - recklessly + - regularly + - reluctantly + - repeatedly + - reproachfully + - restfully + - righteously + - rightfully + - rigidly + - roughly + - rudely + - safely + - scarcely + - scarily + - searchingly + - sedately + - seemingly + - selfishly + - separately + - seriously + - shakily + - sharply + - sheepishly + - shrilly + - shyly + - silently + - sleepily + - slowly + - smoothly + - softly + - solemnly + - solidly + - speedily + - stealthily + - sternly + - strictly + - suddenly + - supposedly + - surprisingly + - suspiciously + - sweetly + - swiftly + - sympathetically + - tenderly + - tensely + - terribly + - thankfully + - thoroughly + - thoughtfully + - tightly + - tremendously + - triumphantly + - truthfully + - ultimately + - unabashedly + - unaccountably + - unbearably + - unethically + - unexpectedly + - unfortunately + - unimpressively + - unnaturally + - unnecessarily + - urgently + - usefully + - uselessly + - utterly + - vacantly + - vaguely + - vainly + - valiantly + - vastly + - verbally + - very + - viciously + - victoriously + - violently + - vivaciously + - voluntarily + - warmly + - weakly + - wearily + - wetly + - wholly + - wildly + - willfully + - wisely + - woefully + - wonderfully + - worriedly + - yawningly + - yearningly + - yieldingly + - youthfully + - zealously + - zestfully + - zestily diff --git a/styles/Microsoft/Auto.yml b/styles/Microsoft/Auto.yml new file mode 100644 index 0000000..3380af0 --- /dev/null +++ b/styles/Microsoft/Auto.yml @@ -0,0 +1,12 @@ +extends: existence +message: "In general, don't hyphenate '%s'." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/auto +ignorecase: true + +level: error +action: + name: convert + params: + - simple +tokens: + - 'auto-\w+' diff --git a/styles/Microsoft/Avoid.yml b/styles/Microsoft/Avoid.yml new file mode 100644 index 0000000..d1203fb --- /dev/null +++ b/styles/Microsoft/Avoid.yml @@ -0,0 +1,19 @@ +extends: existence +message: "Don't use '%s'." +link: https://docs.microsoft.com/en-us/style-guide +ignorecase: true + +level: error +tokens: + - abortion + - and so on + - and/or + - app developer + - app(?:lication)? file + - application developer + - application program + - applications developer + - as well as + - ask + - backbone + - backend diff --git a/styles/Microsoft/Backend.yml b/styles/Microsoft/Backend.yml new file mode 100644 index 0000000..fdaf9f5 --- /dev/null +++ b/styles/Microsoft/Backend.yml @@ -0,0 +1,13 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +level: warning + +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/b/back-end +# Use 'back end' (noun) or 'back-end' (adj). +pos: 'back-end/NN|backend/(?:JJ|NN)|back/\w+ end/JJ|back/(?:JJ|RB) end/\w+' +ignorecase: true +action: + name: replace +swap: + back-end: back end + back end: back-end diff --git a/styles/Microsoft/ComplexWords.yml b/styles/Microsoft/ComplexWords.yml new file mode 100644 index 0000000..8daa1b9 --- /dev/null +++ b/styles/Microsoft/ComplexWords.yml @@ -0,0 +1,121 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences +ignorecase: true +level: suggestion + +action: + name: replace +swap: + "approximate(?:ly)?": about + abundance: plenty + accelerate: speed up + accentuate: stress + accompany: go with + accomplish: carry out|do + accorded: given + accordingly: so + accrue: add + accurate: right|exact + acquiesce: agree + acquire: get|buy + additional: more|extra + address: discuss + addressees: you + adjacent to: next to + adjustment: change + admissible: allowed + advantageous: helpful + advise: tell + aggregate: total + aircraft: plane + alleviate: ease + allocate: assign|divide + alternatively: or + alternatives: choices|options + ameliorate: improve + amend: change + anticipate: expect + apparent: clear|plain + ascertain: discover|find out + assistance: help + attain: meet + attempt: try + authorize: allow + belated: late + bestow: give + cease: stop|end + collaborate: work together + commence: begin + compensate: pay + component: part + comprise: form|include + concept: idea + concerning: about + confer: give|award + consequently: so + consolidate: merge + constitutes: forms + contains: has + convene: meet + demonstrate: show|prove + depart: leave + designate: choose + desire: want|wish + determine: decide|find + detrimental: bad|harmful + disclose: share|tell + discontinue: stop + disseminate: send|give + eliminate: end + elucidate: explain + employ: use + enclosed: inside|included + encounter: meet + endeavor: try + enumerate: count + equitable: fair + equivalent: equal + exclusively: only + expedite: hurry + facilitate: ease + females: women + finalize: complete|finish + frequently: often + identical: same + incorrect: wrong + indication: sign + initiate: start|begin + itemized: listed + jeopardize: risk + liaise: work with|partner with + maintain: keep|support + methodology: method + modify: change + monitor: check|watch + multiple: many + necessitate: cause + notify: tell + numerous: many + objective: aim|goal + obligate: bind|compel + optimum: best|most + permit: let + portion: part + possess: own + previous: earlier + previously: before + prioritize: rank + procure: buy + provide: give|offer + purchase: buy + relocate: move + solicit: request + state-of-the-art: latest + subsequent: later|next + substantial: large + sufficient: enough + terminate: end + transmit: send + utilization: use + utilize: use diff --git a/styles/Microsoft/Contractions.yml b/styles/Microsoft/Contractions.yml new file mode 100644 index 0000000..7fbaf1c --- /dev/null +++ b/styles/Microsoft/Contractions.yml @@ -0,0 +1,31 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-contractions +level: error + +ignorecase: true +action: + name: replace +swap: + are not: aren't + cannot: can't + could not: couldn't + did not: didn't + do not: don't + does not: doesn't + has not: hasn't + have not: haven't + how is: how's + is not: isn't + it is: it's + should not: shouldn't + that is: that's + they are: they're + was not: wasn't + we are: we're + we have: we've + were not: weren't + what is: what's + when is: when's + where is: where's + will not: won't diff --git a/styles/Microsoft/Dashes.yml b/styles/Microsoft/Dashes.yml new file mode 100644 index 0000000..90ef7bc --- /dev/null +++ b/styles/Microsoft/Dashes.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Remove the spaces around '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/emes +ignorecase: true +nonword: true + +level: error +action: + name: edit + params: + - remove + - ' ' +tokens: + - '\s[—–]\s' diff --git a/styles/Microsoft/DateFormat.yml b/styles/Microsoft/DateFormat.yml new file mode 100644 index 0000000..e343bd2 --- /dev/null +++ b/styles/Microsoft/DateFormat.yml @@ -0,0 +1,9 @@ +extends: existence +message: Use 'July 31, 2016' format, not '%s'. +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms +ignorecase: true +level: error + +nonword: true +tokens: + - '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}' diff --git a/styles/Microsoft/DateNumbers.yml b/styles/Microsoft/DateNumbers.yml new file mode 100644 index 0000000..a60317f --- /dev/null +++ b/styles/Microsoft/DateNumbers.yml @@ -0,0 +1,41 @@ +extends: existence +message: "Don't use ordinal numbers for dates." +link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates +level: error +nonword: true +ignorecase: true + +raw: + - \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?)\b\s* +tokens: + - first + - second + - third + - fourth + - fifth + - sixth + - seventh + - eighth + - ninth + - tenth + - eleventh + - twelfth + - thirteenth + - fourteenth + - fifteenth + - sixteenth + - seventeenth + - eighteenth + - nineteenth + - twentieth + - twenty-first + - twenty-second + - twenty-third + - twenty-fourth + - twenty-fifth + - twenty-sixth + - twenty-seventh + - twenty-eighth + - twenty-ninth + - thirtieth + - thirty-first diff --git a/styles/Microsoft/DateOrder.yml b/styles/Microsoft/DateOrder.yml new file mode 100644 index 0000000..e71fb92 --- /dev/null +++ b/styles/Microsoft/DateOrder.yml @@ -0,0 +1,9 @@ +extends: existence +message: "Always spell out the name of the month." +link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates +ignorecase: true +level: error +nonword: true + +tokens: + - '\b\d{1,2}/\d{1,2}/(?:\d{4}|\d{2})\b' diff --git a/styles/Microsoft/Ellipses.yml b/styles/Microsoft/Ellipses.yml new file mode 100644 index 0000000..4085270 --- /dev/null +++ b/styles/Microsoft/Ellipses.yml @@ -0,0 +1,10 @@ +extends: existence +message: "In general, don't use an ellipsis." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/ellipses +nonword: true +level: warning + +action: + name: remove +tokens: + - '\.\.\.' diff --git a/styles/Microsoft/FirstPerson.yml b/styles/Microsoft/FirstPerson.yml new file mode 100644 index 0000000..bf46d7c --- /dev/null +++ b/styles/Microsoft/FirstPerson.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Use first person (such as '%s') sparingly." +link: https://docs.microsoft.com/en-us/style-guide/grammar/person +ignorecase: true +level: warning +nonword: true + +tokens: + - (?:^|\s)I\s + - (?:^|\s)I,\s + - \bI'm\b + - \bme\b + - \bmy\b + - \bmine\b diff --git a/styles/Microsoft/Foreign.yml b/styles/Microsoft/Foreign.yml new file mode 100644 index 0000000..d981004 --- /dev/null +++ b/styles/Microsoft/Foreign.yml @@ -0,0 +1,13 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words +ignorecase: true +level: error +nonword: true + +action: + name: replace +swap: + '\b(?:eg|e\.g\.)[\s,]': for example + '\b(?:ie|i\.e\.)[\s,]': that is + diff --git a/styles/Microsoft/Gender.yml b/styles/Microsoft/Gender.yml new file mode 100644 index 0000000..084eb41 --- /dev/null +++ b/styles/Microsoft/Gender.yml @@ -0,0 +1,9 @@ +extends: existence +message: "Don't use '%s'." +link: https://github.com/MicrosoftDocs/microsoft-style-guide/blob/master/styleguide/grammar/nouns-pronouns.md#pronouns-and-gender +level: error +ignorecase: true + +tokens: + - he/she + - s/he diff --git a/styles/Microsoft/GenderBias.yml b/styles/Microsoft/GenderBias.yml new file mode 100644 index 0000000..dc5a0ff --- /dev/null +++ b/styles/Microsoft/GenderBias.yml @@ -0,0 +1,45 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'." +ignorecase: true +level: error + +swap: + (?:alumna|alumnus): graduate + (?:alumnae|alumni): graduates + air(?:m[ae]n|wom[ae]n): pilot(s) + anchor(?:m[ae]n|wom[ae]n): anchor(s) + authoress: author + camera(?:m[ae]n|wom[ae]n): camera operator(s) + chair(?:m[ae]n|wom[ae]n): chair(s) + congress(?:m[ae]n|wom[ae]n): member(s) of congress + door(?:m[ae]|wom[ae]n): concierge(s) + draft(?:m[ae]n|wom[ae]n): drafter(s) + fire(?:m[ae]n|wom[ae]n): firefighter(s) + fisher(?:m[ae]n|wom[ae]n): fisher(s) + fresh(?:m[ae]n|wom[ae]n): first-year student(s) + garbage(?:m[ae]n|wom[ae]n): waste collector(s) + lady lawyer: lawyer + ladylike: courteous + landlord: building manager + mail(?:m[ae]n|wom[ae]n): mail carriers + man and wife: husband and wife + man enough: strong enough + mankind: human kind + manmade: manufactured + manpower: personnel + men and girls: men and women + middle(?:m[ae]n|wom[ae]n): intermediary + news(?:m[ae]n|wom[ae]n): journalist(s) + ombuds(?:man|woman): ombuds + oneupmanship: upstaging + poetess: poet + police(?:m[ae]n|wom[ae]n): police officer(s) + repair(?:m[ae]n|wom[ae]n): technician(s) + sales(?:m[ae]n|wom[ae]n): salesperson or sales people + service(?:m[ae]n|wom[ae]n): soldier(s) + steward(?:ess)?: flight attendant + tribes(?:m[ae]n|wom[ae]n): tribe member(s) + waitress: waiter + woman doctor: doctor + woman scientist[s]?: scientist(s) + work(?:m[ae]n|wom[ae]n): worker(s) diff --git a/styles/Microsoft/GeneralURL.yml b/styles/Microsoft/GeneralURL.yml new file mode 100644 index 0000000..08ca18b --- /dev/null +++ b/styles/Microsoft/GeneralURL.yml @@ -0,0 +1,12 @@ +extends: existence +message: "For a general audience, use 'address' rather than 'URL'." +link: https://docs.microsoft.com/en-us/style-guide/urls-web-addresses +level: warning + +action: + name: replace + params: + - URL + - address +tokens: + - URL diff --git a/styles/Microsoft/HeadingAcronyms.yml b/styles/Microsoft/HeadingAcronyms.yml new file mode 100644 index 0000000..9dc3b6c --- /dev/null +++ b/styles/Microsoft/HeadingAcronyms.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Avoid using acronyms in a title or heading." +link: https://docs.microsoft.com/en-us/style-guide/acronyms#be-careful-with-acronyms-in-titles-and-headings +level: warning +scope: heading +tokens: + - '[A-Z]{2,4}' diff --git a/styles/Microsoft/HeadingColons.yml b/styles/Microsoft/HeadingColons.yml new file mode 100644 index 0000000..7013c39 --- /dev/null +++ b/styles/Microsoft/HeadingColons.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Capitalize '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/colons +nonword: true +level: error +scope: heading +tokens: + - ':\s[a-z]' diff --git a/styles/Microsoft/HeadingPunctuation.yml b/styles/Microsoft/HeadingPunctuation.yml new file mode 100644 index 0000000..7873a91 --- /dev/null +++ b/styles/Microsoft/HeadingPunctuation.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Don't use end punctuation in headings." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods +nonword: true +level: warning +scope: heading +action: + name: edit + params: + - remove + - '.?!' +tokens: + - '[a-z0-9][.?!](?:\s|$)' diff --git a/styles/Microsoft/Headings.yml b/styles/Microsoft/Headings.yml new file mode 100644 index 0000000..63624ed --- /dev/null +++ b/styles/Microsoft/Headings.yml @@ -0,0 +1,28 @@ +extends: capitalization +message: "'%s' should use sentence-style capitalization." +link: https://docs.microsoft.com/en-us/style-guide/capitalization +level: suggestion +scope: heading +match: $sentence +indicators: + - ':' +exceptions: + - Azure + - CLI + - Code + - Cosmos + - Docker + - Emmet + - I + - Kubernetes + - Linux + - macOS + - Marketplace + - MongoDB + - REPL + - Studio + - TypeScript + - URLs + - Visual + - VS + - Windows diff --git a/styles/Microsoft/Hyphens.yml b/styles/Microsoft/Hyphens.yml new file mode 100644 index 0000000..7c6bb44 --- /dev/null +++ b/styles/Microsoft/Hyphens.yml @@ -0,0 +1,15 @@ +extends: existence +message: "'%s' doesn't need a hyphen." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens +level: warning + +ignorecase: false +nonword: true +action: + name: edit + params: + - replace + - '-' + - ' ' +tokens: + - '\s[^\s-]+ly-' diff --git a/styles/Microsoft/Negative.yml b/styles/Microsoft/Negative.yml new file mode 100644 index 0000000..30b3d96 --- /dev/null +++ b/styles/Microsoft/Negative.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Form a negative number with an en dash, not a hyphen." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true + +level: error +action: + name: edit + params: + - replace + - '-' + - '–' +tokens: + - '\s-\d+\s' diff --git a/styles/Microsoft/Ordinal.yml b/styles/Microsoft/Ordinal.yml new file mode 100644 index 0000000..496e0bc --- /dev/null +++ b/styles/Microsoft/Ordinal.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Don't add -ly to an ordinal number." +link: https://docs.microsoft.com/en-us/style-guide/numbers +level: error + +action: + name: edit + params: + - trim + - ly +tokens: + - firstly + - secondly + - thirdly diff --git a/styles/Microsoft/OxfordComma.yml b/styles/Microsoft/OxfordComma.yml new file mode 100644 index 0000000..9d4b79b --- /dev/null +++ b/styles/Microsoft/OxfordComma.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Use the Oxford comma in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas +scope: sentence +level: warning +tokens: + - '(?:[^,]+,){1,}\s\w+\sand' diff --git a/styles/Microsoft/Passive.yml b/styles/Microsoft/Passive.yml new file mode 100644 index 0000000..6183a2b --- /dev/null +++ b/styles/Microsoft/Passive.yml @@ -0,0 +1,184 @@ +extends: existence +message: "'%s' looks like passive voice." +ignorecase: true +level: suggestion + +raw: + - \b(am|are|were|being|is|been|was|be)\b\s* +tokens: + - '[\w]+ed' + - awoken + - beat + - become + - been + - begun + - bent + - beset + - bet + - bid + - bidden + - bitten + - bled + - blown + - born + - bought + - bound + - bred + - broadcast + - broken + - brought + - built + - burnt + - burst + - cast + - caught + - chosen + - clung + - come + - cost + - crept + - cut + - dealt + - dived + - done + - drawn + - dreamt + - driven + - drunk + - dug + - eaten + - fallen + - fed + - felt + - fit + - fled + - flown + - flung + - forbidden + - foregone + - forgiven + - forgotten + - forsaken + - fought + - found + - frozen + - given + - gone + - gotten + - ground + - grown + - heard + - held + - hidden + - hit + - hung + - hurt + - kept + - knelt + - knit + - known + - laid + - lain + - leapt + - learnt + - led + - left + - lent + - let + - lighted + - lost + - made + - meant + - met + - misspelt + - mistaken + - mown + - overcome + - overdone + - overtaken + - overthrown + - paid + - pled + - proven + - put + - quit + - read + - rid + - ridden + - risen + - run + - rung + - said + - sat + - sawn + - seen + - sent + - set + - sewn + - shaken + - shaven + - shed + - shod + - shone + - shorn + - shot + - shown + - shrunk + - shut + - slain + - slept + - slid + - slit + - slung + - smitten + - sold + - sought + - sown + - sped + - spent + - spilt + - spit + - split + - spoken + - spread + - sprung + - spun + - stolen + - stood + - stridden + - striven + - struck + - strung + - stuck + - stung + - stunk + - sung + - sunk + - swept + - swollen + - sworn + - swum + - swung + - taken + - taught + - thought + - thrived + - thrown + - thrust + - told + - torn + - trodden + - understood + - upheld + - upset + - wed + - wept + - withheld + - withstood + - woken + - won + - worn + - wound + - woven + - written + - wrung diff --git a/styles/Microsoft/Percentages.yml b/styles/Microsoft/Percentages.yml new file mode 100644 index 0000000..45d66b6 --- /dev/null +++ b/styles/Microsoft/Percentages.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Use a numeral plus the units." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error + +tokens: + - '\b[a-zA-z]+\spercent\b' diff --git a/styles/Microsoft/Quotes.yml b/styles/Microsoft/Quotes.yml new file mode 100644 index 0000000..d6eeadd --- /dev/null +++ b/styles/Microsoft/Quotes.yml @@ -0,0 +1,8 @@ +extends: existence +message: 'Punctuation should be inside the quotes.' +link: https://docs.microsoft.com/en-us/style-guide/punctuation/quotation-marks +level: error +nonword: true + +tokens: + - '["“][^"”“]+["”][.,]' diff --git a/styles/Microsoft/RangeFormat.yml b/styles/Microsoft/RangeFormat.yml new file mode 100644 index 0000000..951dcb8 --- /dev/null +++ b/styles/Microsoft/RangeFormat.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Use an en dash in a range of numbers." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error + +action: + name: edit + params: + - replace + - '-' + - '–' +tokens: + - '\b\d+\s?[-]\s?\d+\b' diff --git a/styles/Microsoft/RangeTime.yml b/styles/Microsoft/RangeTime.yml new file mode 100644 index 0000000..d385d14 --- /dev/null +++ b/styles/Microsoft/RangeTime.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Use 'to' instead of a dash in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error + +action: + name: edit + params: + - replace + - '[-–]' + - 'to' +tokens: + - '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b' diff --git a/styles/Microsoft/Ranges.yml b/styles/Microsoft/Ranges.yml new file mode 100644 index 0000000..4f3327e --- /dev/null +++ b/styles/Microsoft/Ranges.yml @@ -0,0 +1,8 @@ +extends: existence +message: "In most cases, use 'from' or 'through' to describe a range of numbers." +link: 'https://docs.microsoft.com/en-us/style-guide/numbers' +nonword: true +level: warning + +tokens: + - '\b\d+\s?[-–]\s?\d+\b' diff --git a/styles/Microsoft/Semicolon.yml b/styles/Microsoft/Semicolon.yml new file mode 100644 index 0000000..4d90546 --- /dev/null +++ b/styles/Microsoft/Semicolon.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Try to simplify this sentence." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/semicolons +nonword: true +scope: sentence +level: suggestion +tokens: + - ';' diff --git a/styles/Microsoft/SentenceLength.yml b/styles/Microsoft/SentenceLength.yml new file mode 100644 index 0000000..f248cf0 --- /dev/null +++ b/styles/Microsoft/SentenceLength.yml @@ -0,0 +1,7 @@ +extends: occurrence +message: "Try to keep sentences short (< 30 words)." +scope: sentence +level: suggestion +max: 30 +token: \b(\w+)\b + diff --git a/styles/Microsoft/Spacing.yml b/styles/Microsoft/Spacing.yml new file mode 100644 index 0000000..ccc89ea --- /dev/null +++ b/styles/Microsoft/Spacing.yml @@ -0,0 +1,9 @@ +extends: existence +message: "'%s' should have one space." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods +level: error +nonword: true + +tokens: + - '[a-z][.?!] {2,}[A-Z]' + - '[a-z][.?!][A-Z]' diff --git a/styles/Microsoft/Suspended.yml b/styles/Microsoft/Suspended.yml new file mode 100644 index 0000000..3b54bc4 --- /dev/null +++ b/styles/Microsoft/Suspended.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Don't use '%s' unless space is limited." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens +ignorecase: true +level: warning + +tokens: + - '\w+- and \w+-' diff --git a/styles/Microsoft/Terms.yml b/styles/Microsoft/Terms.yml new file mode 100644 index 0000000..5c86d21 --- /dev/null +++ b/styles/Microsoft/Terms.yml @@ -0,0 +1,44 @@ +extends: substitution +message: "Prefer '%s' over '%s'." +level: warning +ignorecase: true + +action: + name: replace +swap: + '(?:agent|virtual assistant|intelligent personal assistant)': personal digital assistant + '(?:drive C:|drive C>|C: drive)': drive C + '(?:internet bot|web robot)s?': bot(s) + '(?:microsoft cloud|the cloud)': cloud + '(?:mobile|smart) ?phone': phone + '24/7': every day + 'audio(?:-| )book': audiobook + 'back(?:-| )light': backlight + 'chat ?bots?': chatbot(s) + adaptor: adapter + administrate: administer + afterwards: afterward + alphabetic: alphabetical + alphanumerical: alphanumeric + anti-aliasing: antialiasing + anti-malware: antimalware + anti-spyware: antispyware + anti-virus: antivirus + appendixes: appendices + artificial intelligence: artificial intelligence + assembler: assembly language + bpp: bpp + bps: bps + caap: CaaP + conversation-as-a-platform: conversation as a platform + eb: EB + gb: GB + gbps: Gbps + kb: KB + keypress: keystroke + mb: MB + pb: PB + tb: TB + zb: ZB + viz: namely + ergo: therefore diff --git a/styles/Microsoft/URLFormat.yml b/styles/Microsoft/URLFormat.yml new file mode 100644 index 0000000..d8ba9de --- /dev/null +++ b/styles/Microsoft/URLFormat.yml @@ -0,0 +1,11 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +ignorecase: true +level: error + +action: + name: replace +swap: + URL for: URL of + an URL: a URL + diff --git a/styles/Microsoft/Units.yml b/styles/Microsoft/Units.yml new file mode 100644 index 0000000..5d6925c --- /dev/null +++ b/styles/Microsoft/Units.yml @@ -0,0 +1,17 @@ +extends: existence +message: "Don't spell out the number in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/units-of-measure-terms +level: error + +raw: + - '[a-zA-Z]+\s' +tokens: + - '(?:centi|milli)?meters' + - '(?:kilo)?grams' + - '(?:kilo)?meters' + - '(?:mega)?pixels' + - cm + - inches + - lb + - miles + - pounds diff --git a/styles/Microsoft/Vocab.yml b/styles/Microsoft/Vocab.yml new file mode 100644 index 0000000..f880f39 --- /dev/null +++ b/styles/Microsoft/Vocab.yml @@ -0,0 +1,24 @@ +extends: existence +message: "Verify your use of '%s' with the A-Z word list." +link: 'https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/abort-abortion' +level: suggestion +ignorecase: true + +tokens: + - above + - accessible + - actionable + - against + - alarm + - alert + - alias + - allows? + - assure + - author + - avg + - ensure + - he + - insure + - she + - sample + - beta diff --git a/styles/Microsoft/We.yml b/styles/Microsoft/We.yml new file mode 100644 index 0000000..a70a83f --- /dev/null +++ b/styles/Microsoft/We.yml @@ -0,0 +1,12 @@ +extends: existence +message: "Try to avoid using first-person plural like '%s'." +link: https://docs.microsoft.com/en-us/style-guide/grammar/person#avoid-first-person-plural +level: warning +ignorecase: true + +tokens: + - we + - we'(?:ve|re) + - ours? + - us + - let's diff --git a/styles/Microsoft/Wordiness.yml b/styles/Microsoft/Wordiness.yml new file mode 100644 index 0000000..9933afb --- /dev/null +++ b/styles/Microsoft/Wordiness.yml @@ -0,0 +1,123 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences +ignorecase: true +level: warning + +action: + name: replace +swap: + (?:give|gave) rise to: lead to + (?:previous|prior) to: before + a (?:large)? majority of: most + a (?:large)? number of: many + a myriad of: myriad + adversely impact: hurt + all across: across + all of a sudden: suddenly + all of these: these + all of: all + all-time record: record + almost all: most + almost never: seldom + along the lines of: similar to + an adequate number of: enough + an appreciable number of: many + an estimated: about + any and all: all + are in agreement: agree + as a matter of fact: in fact + as a means of: to + as a result of: because of + as of yet: yet + as per: per + at a later date: later + at all times: always + at the present time: now + at this point in time: at this point + based in large part on: based on + based on the fact that: because + basic necessity: necessity + because of the fact that: because + came to a realization: realized + came to an abrupt end: ended abruptly + carry out an evaluation of: evaluate + close down: close + closed down: closed + complete stranger: stranger + completely separate: separate + concerning the matter of: regarding + conduct a review of: review + conduct an investigation: investigate + conduct experiments: experiment + continue on: continue + despite the fact that: although + disappear from sight: disappear + drag and drop: drag + drag-and-drop: drag + doomed to fail: doomed + due to the fact that: because + during the period of: during + during the time that: while + emergency situation: emergency + except when: unless + excessive number: too many + extend an invitation: invite + fall down: fall + fell down: fell + for the duration of: during + gather together: gather + has the ability to: can + has the capacity to: can + has the opportunity to: could + hold a meeting: meet + if this is not the case: if not + in a careful manner: carefully + in a thoughtful manner: thoughtfully + in a timely manner: timely + in an effort to: to + in between: between + in lieu of: instead of + in many cases: often + in most cases: usually + in order to: to + in some cases: sometimes + in spite of the fact that: although + in spite of: despite + in the (?:very)? near future: soon + in the event that: if + in the neighborhood of: roughly + in the vicinity of: close to + it would appear that: apparently + lift up: lift + made reference to: referred to + make reference to: refer to + mix together: mix + none at all: none + not in a position to: unable + not possible: impossible + of major importance: important + perform an assessment of: assess + pertaining to: about + place an order: order + plays a key role in: is essential to + present time: now + readily apparent: apparent + some of the: some + span across: span + subsequent to: after + successfully complete: complete + sufficient number (?:of)?: enough + take action: act + take into account: consider + the question as to whether: whether + there is no doubt but that: doubtless + this day and age: this age + this is a subject that: this subject + time (?:frame|period): time + under the provisions of: under + until such time as: until + used for fuel purposes: used for fuel + whether or not: whether + with regard to: regarding + with the exception of: except for diff --git a/styles/Microsoft/meta.json b/styles/Microsoft/meta.json new file mode 100644 index 0000000..297719b --- /dev/null +++ b/styles/Microsoft/meta.json @@ -0,0 +1,4 @@ +{ + "feed": "https://github.com/errata-ai/Microsoft/releases.atom", + "vale_version": ">=1.0.0" +} diff --git a/styles/Vocab/Blog/accept.txt b/styles/Vocab/Blog/accept.txt new file mode 100644 index 0000000..e69de29 diff --git a/styles/Vocab/Blog/reject.txt b/styles/Vocab/Blog/reject.txt new file mode 100644 index 0000000..e69de29 diff --git a/styles/Vocab/Marketing/accept.txt b/styles/Vocab/Marketing/accept.txt new file mode 100644 index 0000000..e69de29 diff --git a/styles/Vocab/Marketing/reject.txt b/styles/Vocab/Marketing/reject.txt new file mode 100644 index 0000000..e69de29