Last active
September 16, 2025 20:47
-
-
Save mobilemind/e3f8cfb528d021efd13d5a82c616b911 to your computer and use it in GitHub Desktop.
vale AppleCustom rules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Additional rules will follow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Avoid 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 | |
| - an epileptic | |
| - birth defect | |
| - crippled | |
| - differently abled | |
| - disabled | |
| - dumb | |
| - handicapped | |
| - handicaps | |
| - healthy person | |
| - hearing-impaired | |
| - lame | |
| - maimed | |
| - mentally handicapped | |
| - missing a limb | |
| - mute | |
| - non-verbal | |
| - normal person | |
| - sight-impaired | |
| - slow learner | |
| - stricken with | |
| - suffers from | |
| - vision-impaired |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - APFS | |
| - API | |
| - APN | |
| - ASP | |
| - CDMA | |
| - CLI | |
| - CPU | |
| - CSS | |
| - CSV | |
| - DEBUG | |
| - DFU | |
| - DHCP | |
| - DNS | |
| - DOM | |
| - DPI | |
| - FAQ | |
| - GCC | |
| - GDB | |
| - GET | |
| - GIF | |
| - GPS | |
| - GPU | |
| - GTK | |
| - GUI | |
| - HDMI | |
| - HTML | |
| - HTTP | |
| - HTTPS | |
| - IDE | |
| - IMAP | |
| - IT | |
| - "ITEMS?" | |
| - JAR | |
| - JPEG | |
| - JSON | |
| - JSX | |
| - LAN | |
| - LESS | |
| - LLDB | |
| - LTE | |
| - MAC | |
| - MDM | |
| - MIME | |
| - MMS | |
| - MPEG | |
| - NAS | |
| - NET | |
| - NFC | |
| - NOTE | |
| - OCSP | |
| - OSS | |
| - PASV | |
| - PATH | |
| - PEAP | |
| - PHP | |
| - PIN | |
| - PKCS | |
| - PNG | |
| - POST | |
| - RAM | |
| - REPL | |
| - RSA | |
| - RSS | |
| - RSR | |
| - RTSP | |
| - SAML | |
| - SCEP | |
| - SCIM | |
| - SCM | |
| - SCSS | |
| - SDK | |
| - SIM | |
| - SMS | |
| - SOS | |
| - SQL | |
| - SSD | |
| - SSH | |
| - SSL | |
| - SSID | |
| - SSO | |
| - "STEMS?" | |
| - SVG | |
| - TBD | |
| - TCP | |
| - TIFF | |
| - TTLS | |
| - UDP | |
| - UNIX | |
| - URI | |
| - URL | |
| - USB | |
| - UTF | |
| - UUID | |
| - VPN | |
| - WAN | |
| - WEP | |
| - WPA | |
| - WPAD | |
| - WWDC | |
| - XML | |
| - XSS | |
| - YAML | |
| - ZIP |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Remove '%s' if it's not important to the meaning of the statement." | |
| 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 | |
| - effectively | |
| - 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 | |
| - quite | |
| - 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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]\.' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Enforce non-breaking spaces in "Apple Account(s)" and | |
| # "Managed Apple Account(s)". Flags only plain-space versions. | |
| # Suggests Apple Account(s) and Managed Apple Account(s). | |
| # Uses raw scope so ' ' remains literal and isn't flagged. | |
| extends: substitution | |
| message: "Use non-breaking space entity, unless in a title: use '%s' instead of '%s'." | |
| link: https://developer.mozilla.org/en-US/docs/Glossary/Entity | |
| level: suggestion | |
| ignorecase: false | |
| nonword: true | |
| scope: raw | |
| swap: | |
| # Match anywhere (no line anchor) so multiple occurrences per line are caught. | |
| # Managed Apple Account / Managed Apple Accounts | |
| '\bManaged Apple Account(s)?\b': 'Managed Apple Account$1' | |
| # Apple Account / Apple Accounts | |
| '\bApple Account(s)?\b': 'Apple Account$1' | |
| # Mask regions we don't want to scan at the vale.ini level | |
| # Those patterns are masked before matching rules. | |
| action: | |
| name: replace |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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+' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Don't use '%s'. See the A-Z word list for details." | |
| # See the A-Z word list | |
| link: https://docs.microsoft.com/en-us/style-guide | |
| ignorecase: true | |
| level: error | |
| tokens: | |
| - abortion | |
| - and so on | |
| - app(?:lication)? file | |
| - backbone | |
| - backend | |
| - contiguous selection |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| 'it''s(?=\.)': it is | |
| should not: shouldn't | |
| "that is(?![.,])": that's | |
| 'that''s(?=\.)': that is | |
| 'they are(?!\.)': they're | |
| 'they''re(?=\.)': they are | |
| was not: wasn't | |
| 'we are(?!\.)': we're | |
| 'we''re(?=\.)': we are | |
| 'we have(?!\.)': we've | |
| 'we''ve(?=\.)': we have | |
| were not: weren't | |
| 'what is(?!\.)': what's | |
| 'what''s(?=\.)': what is | |
| 'when is(?!\.)': when's | |
| 'when''s(?=\.)': when is | |
| 'where is(?!\.)': where's | |
| 'where''s(?=\.)': where is | |
| will not: won't |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - trim | |
| - " " | |
| tokens: | |
| - '\s[—–]\s|\s[—–]|[—–]\s' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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}' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| ignorecase: false | |
| nonword: true | |
| scope: raw | |
| action: | |
| name: remove | |
| tokens: | |
| - '\.\.\.' | |
| - '…' | |
| - '…' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Flags typed NBSP (U+00A0) or (option-space), en dash (–), and em dash (—) and suggests | |
| # the corresponding HTML entity. Skips already-entity-coded forms and code. | |
| # Complements (doesn't replace) Microsoft.Dashes. | |
| extends: substitution | |
| message: "Unclear use of special character, unless in a title, use '%s' instead of '%s'." | |
| link: https://developer.mozilla.org/en-US/docs/Glossary/Entity | |
| level: suggestion | |
| ignorecase: false | |
| nonword: true | |
| # Use the raw source so ' ' remains literal text (is not decoded), | |
| # which prevents false positives on properly entity-coded content. | |
| scope: raw | |
| # Map literal characters to their HTML entities. | |
| swap: | |
| '\u00A0': ' ' # non-breaking space | |
| '–': '–' # en dash | |
| '—': '—' # em dash | |
| # Mask regions we don't want to scan at the vale.ini level | |
| # Those patterns are masked before matching rules. | |
| action: | |
| name: replace |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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'd\b | |
| - \bI'll\b | |
| - \bI'm\b | |
| - \bI've\b | |
| - \bme\b | |
| - \bmy\b | |
| - \bmine\b |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| '\b(?:viz\.)[\s,]': namely | |
| '\b(?:ergo)[\s,]': therefore |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: substitution | |
| message: "Consider using '%s' instead of '%s'." | |
| ignorecase: true | |
| level: error | |
| action: | |
| name: replace | |
| 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) | |
| 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 | |
| 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 | |
| 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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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}' | |
| exceptions: | |
| - IT | |
| - MDM | |
| - TV |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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]' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - trim_right | |
| - ".?!" | |
| tokens: | |
| - "[a-z][.?!]$" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: capitalization | |
| message: "'%s' should use title-style capitalization." | |
| link: https://support.apple.com/guide/applestyleguide/capitalization-apsgf9981f6b/web | |
| level: suggestion | |
| scope: heading | |
| match: $title | |
| indicators: | |
| - ':' | |
| exceptions: | |
| - AirPod | |
| - Azure | |
| - CLI | |
| - Code | |
| - Continuity | |
| - Cosmos | |
| - Docker | |
| - Emmet | |
| - I | |
| - IT | |
| - iCloud | |
| - iMac | |
| - iOS | |
| - iPad | |
| - iPadOS | |
| - iPhone | |
| - Kubernetes | |
| - Linux | |
| - Mac | |
| - MacBook | |
| - macOS | |
| - Marketplace | |
| - MongoDB | |
| - REPL | |
| - Studio | |
| - this | |
| - TV | |
| - tvOS | |
| - TypeScript | |
| - URLs | |
| - Vision Pro | |
| - visionOS | |
| - Visual | |
| - watchOS | |
| - Windows |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - regex | |
| - "-" | |
| - " " | |
| tokens: | |
| - '\b[^\s-]+ly-\w+\b' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "feed": "https://github.com/errata-ai/Microsoft/releases.atom", | |
| "vale_version": ">=1.0.0" | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - regex | |
| - "-" | |
| - "–" | |
| tokens: | |
| - '(?<=\s)-\d+(?:\.\d+)?\b' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Use the Oxford comma in '%s'." | |
| link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas | |
| scope: sentence | |
| level: suggestion | |
| nonword: true | |
| tokens: | |
| - '(?:[^\s,]+,){1,} \w+ (?:and|or) \w+[.?!]' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Don't add '%s' to a singular noun. Use plural instead." | |
| ignorecase: true | |
| level: error | |
| link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/s/s-es | |
| raw: | |
| - '\(s\)|\(es\)' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - '["“][^"”“]+["”][.,]' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| - regex | |
| - "[-–]" | |
| - "to" | |
| tokens: | |
| - '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SentenceLength.yml | |
| extends: occurrence | |
| message: "Try to keep sentences short (< 30 words)." | |
| scope: sentence | |
| level: suggestion | |
| max: 30 | |
| # Count words including optional straight/curly apostrophes. | |
| token: '[\p{L}\p{N}]+(?:[’''][\p{L}\p{N}]+)*' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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]' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: substitution | |
| message: "Prefer '%s' over '%s'." | |
| # term preference should be based on microsoft style guide, such as | |
| link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/adapter | |
| level: warning | |
| ignorecase: true | |
| action: | |
| name: replace | |
| swap: | |
| "(?:agent|virtual assistant|intelligent personal assistant)": personal digital assistant | |
| "(?:internet bot|web robot)s?": bot(s) | |
| "(?: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 | |
| an URL: a URL | |
| anti-aliasing: antialiasing | |
| anti-malware: antimalware | |
| anti-spyware: antispyware | |
| anti-virus: antivirus | |
| appendixes: appendices | |
| artificial intelligence: AI | |
| caap: CaaP | |
| conversation-as-a-platform: conversation as a platform | |
| eb: EB | |
| gb: GB | |
| gbps: Gbps | |
| kb: KB | |
| keypress: keystroke | |
| mb: MB | |
| pb: PB | |
| site: website | |
| tb: TB | |
| zb: ZB |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: substitution | |
| message: Use 'of' (not 'for') to describe the relationship of the word URL to a resource. | |
| ignorecase: true | |
| link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/u/url | |
| level: suggestion | |
| action: | |
| name: replace | |
| swap: | |
| URL for: URL of |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extends: existence | |
| message: "Verify your use of '%s' with the A-Z word list." | |
| link: 'https://docs.microsoft.com/en-us/style-guide' | |
| level: suggestion | |
| ignorecase: true | |
| tokens: | |
| - above | |
| - accessible | |
| - actionable | |
| - against | |
| - alarm | |
| - alert | |
| - alias | |
| - allows? | |
| - and/or | |
| - as well as | |
| - assure | |
| - author | |
| - avg | |
| - ensure | |
| - he | |
| - insure | |
| - sample | |
| - she |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| "sufficient number(?: of)?": enough | |
| (?:extract|take away|eliminate): remove | |
| (?:in order to|as a means to): to | |
| (?:inform|let me know): tell | |
| (?:previous|prior) to: before | |
| (?:utilize|make use of): use | |
| 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(?! a sudden| these): 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 | |
| doomed to fail: doomed | |
| drag and drop: drag | |
| drag-and-drop: drag | |
| due to the fact that: because | |
| during the period of: during | |
| during the time that: while | |
| emergency situation: emergency | |
| establish connectivity: connect | |
| 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 addition: also | |
| 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 | |
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Assume these go into the appropriate subdirectory for "AppleCustom" rules