[vale] Add some vale styles and an ini file

This commit is contained in:
2020-09-16 23:32:52 -04:00
parent 61569bb28a
commit 3a78790348
123 changed files with 5243 additions and 0 deletions

View File

@ -0,0 +1,9 @@
extends: existence
message: "Use 'AM' or 'PM' (preceded by a space)."
link: 'https://developers.google.com/style/word-list'
level: error
nonword: true
tokens:
- '\d{1,2}[AP]M'
- '\d{1,2} ?[ap]m'
- '\d{1,2} ?[aApP]\.[mM]\.'

View File

@ -0,0 +1,64 @@
extends: conditional
message: "Spell out '%s', if it's unfamiliar to the audience."
link: 'https://developers.google.com/style/abbreviations'
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

View File

@ -0,0 +1,7 @@
extends: existence
message: "'%s' should be in lowercase."
link: 'https://developers.google.com/style/colons'
nonword: true
level: warning
tokens:
- ':\s[A-Z]'

View File

@ -0,0 +1,30 @@
extends: substitution
message: "Feel free to use '%s' instead of '%s'."
link: 'https://developers.google.com/style/contractions'
level: suggestion
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

View File

@ -0,0 +1,9 @@
extends: existence
message: "Use 'July 31, 2016' format, not '%s'."
link: 'https://developers.google.com/style/dates-times'
ignorecase: true
level: error
nonword: true
tokens:
- '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}'
- '\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}'

View File

@ -0,0 +1,9 @@
extends: existence
message: "In general, don't use an ellipsis."
link: 'https://developers.google.com/style/ellipses'
nonword: true
level: warning
action:
name: remove
tokens:
- '\.\.\.'

View File

@ -0,0 +1,12 @@
extends: existence
message: "Don't put a space before or after a dash."
link: 'https://developers.google.com/style/dashes'
nonword: true
level: error
action:
name: edit
params:
- remove
- ' '
tokens:
- '\s[—–]\s'

View File

@ -0,0 +1,13 @@
extends: existence
message: "Use an em dash ('—') instead of ''."
link: 'https://developers.google.com/style/dashes'
nonword: true
level: error
action:
name: edit
params:
- replace
- '-'
- '—'
tokens:
- ''

View File

@ -0,0 +1,7 @@
extends: existence
message: "Don't use exclamation points in text."
link: 'https://developers.google.com/style/exclamation-points'
nonword: true
level: error
tokens:
- '\w!(?:\s|$)'

View File

@ -0,0 +1,13 @@
extends: existence
message: "Avoid first-person pronouns such as '%s'."
link: 'https://developers.google.com/style/pronouns#personal-pronouns'
ignorecase: true
level: warning
nonword: true
tokens:
- (?:^|\s)I\s
- (?:^|\s)I,\s
- \bI'm\b
- \bme\b
- \bmy\b
- \bmine\b

View File

@ -0,0 +1,9 @@
extends: existence
message: "Don't use '%s' as a gender-neutral pronoun."
link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns'
level: error
ignorecase: true
tokens:
- he/she
- s/he
- \(s\)he

View File

@ -0,0 +1,45 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
link: 'https://developers.google.com/style/inclusive-documentation'
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)

View File

@ -0,0 +1,13 @@
extends: existence
message: "Don't put a period at the end of a heading."
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
nonword: true
level: warning
scope: heading
action:
name: edit
params:
- remove
- '.'
tokens:
- '[a-z0-9][.](?:\s|$)'

View File

@ -0,0 +1,26 @@
extends: capitalization
message: "'%s' should use sentence-style capitalization."
link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
level: warning
scope: heading
match: $sentence
exceptions:
- Azure
- CLI
- Code
- Cosmos
- Docker
- Emmet
- I
- Kubernetes
- Linux
- macOS
- Marketplace
- MongoDB
- REPL
- Studio
- TypeScript
- URLs
- Visual
- VS
- Windows

View File

@ -0,0 +1,11 @@
extends: substitution
message: "Use '%s' instead of '%s'."
link: 'https://developers.google.com/style/abbreviations'
ignorecase: true
level: error
nonword: true
action:
name: replace
swap:
'\b(?:eg|e\.g\.)[\s,]': for example
'\b(?:ie|i\.e\.)[\s,]': that is

View File

@ -0,0 +1,14 @@
extends: existence
message: "'%s' doesn't need a hyphen."
link: 'https://developers.google.com/style/hyphens'
level: error
ignorecase: false
nonword: true
action:
name: edit
params:
- replace
- '-'
- ' '
tokens:
- '\s[^\s-]+ly-'

View File

@ -0,0 +1,12 @@
extends: existence
message: "Don't use plurals in parentheses such as in '%s'."
link: 'https://developers.google.com/style/plurals-parentheses'
level: error
nonword: true
action:
name: edit
params:
- remove
- '(s)'
tokens:
- '\b\w+\(s\)'

View File

@ -0,0 +1,7 @@
extends: existence
message: "Spell out all ordinal numbers ('%s') in text."
link: 'https://developers.google.com/style/numbers'
level: error
nonword: true
tokens:
- \d+(?:st|nd|rd|th)

View File

@ -0,0 +1,7 @@
extends: existence
message: "Use the Oxford comma in '%s'."
link: 'https://developers.google.com/style/commas'
scope: sentence
level: warning
tokens:
- '(?:[^,]+,){1,}\s\w+\s(?:and|or)'

View File

@ -0,0 +1,7 @@
extends: existence
message: "Use parentheses judiciously."
link: 'https://developers.google.com/style/parentheses'
nonword: true
level: suggestion
tokens:
- '\(.+\)'

View File

@ -0,0 +1,184 @@
extends: existence
link: 'https://developers.google.com/style/voice'
message: "In general, use active voice instead of passive voice ('%s')."
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

View File

@ -0,0 +1,7 @@
extends: existence
message: "Don't use periods with acronyms or initialisms such as '%s'."
link: 'https://developers.google.com/style/abbreviations'
level: error
nonword: true
tokens:
- '\b(?:[A-Z]\.){3,}'

View File

@ -0,0 +1,7 @@
extends: existence
message: "Commas and periods go inside quotation marks."
link: 'https://developers.google.com/style/quotation-marks'
level: error
nonword: true
tokens:
- '"[^"]+"[.,?]'

View File

@ -0,0 +1,7 @@
extends: existence
message: "Don't add words such as 'from' or 'between' to describe a range of numbers."
link: 'https://developers.google.com/style/hyphens'
nonword: true
level: warning
tokens:
- '(?:from|between)\s\d+\s?-\s?\d+'

View File

@ -0,0 +1,8 @@
extends: existence
message: "Use semicolons judiciously."
link: 'https://developers.google.com/style/semicolons'
nonword: true
scope: sentence
level: suggestion
tokens:
- ';'

View File

@ -0,0 +1,11 @@
extends: existence
message: "Don't use internet slang abbreviations such as '%s'."
link: 'https://developers.google.com/style/abbreviations'
ignorecase: true
level: error
tokens:
- 'tl;dr'
- ymmv
- rtfm
- imo
- fwiw

View File

@ -0,0 +1,8 @@
extends: existence
message: "'%s' should have one space."
link: 'https://developers.google.com/style/sentence-spacing'
level: error
nonword: true
tokens:
- '[.?!] {2,}[A-Z]'
- '[.?!][A-Z]'

View File

@ -0,0 +1,8 @@
extends: existence
message: "In general, use American spelling instead of '%s'."
link: 'https://developers.google.com/style/spelling'
ignorecase: true
level: warning
tokens:
- '(?:\w+)nised?'
- '(?:\w+)logue'

View File

@ -0,0 +1,8 @@
extends: existence
message: "Put a nonbreaking space between the number and the unit in '%s'."
link: 'https://developers.google.com/style/units-of-measure'
nonword: true
level: error
tokens:
- \d+(?:B|kB|MB|GB|TB)
- \d+(?:ns|ms|s|min|h|d)

View File

@ -0,0 +1,11 @@
extends: existence
message: "Try to avoid using first-person plural like '%s'."
link: 'https://developers.google.com/style/pronouns#personal-pronouns'
level: warning
ignorecase: true
tokens:
- we
- we'(?:ve|re)
- ours?
- us
- let's

View File

@ -0,0 +1,7 @@
extends: existence
message: "Avoid using '%s'."
link: 'https://developers.google.com/style/tense'
ignorecase: true
level: warning
tokens:
- will

View File

@ -0,0 +1,80 @@
extends: substitution
message: "Use '%s' instead of '%s'."
link: 'https://developers.google.com/style/word-list'
level: warning
ignorecase: false
action:
name: replace
swap:
'(?:API Console|dev|developer) key': API key
'(?:cell ?phone|smart ?phone)': phone|mobile phone
'(?:dev|developer|APIs) console': API console
'(?:e-mail|Email|E-mail)': email
'(?:file ?path|path ?name)': path
'(?:kill|terminate|abort)': stop|exit|cancel|end
'(?:OAuth ?2|Oauth)': OAuth 2.0
'(?:ok|Okay)': OK|okay
'(?:WiFi|wifi)': Wi-Fi
'[\.]+apk': APK
'3\-D': 3D
'Google (?:I\-O|IO)': Google I/O
'tap (?:&|and) hold': touch & hold
'un(?:check|select)': clear
above: preceding
account name: username
action bar: app bar
admin: administrator
Ajax: AJAX
Android device: Android-powered device
android: Android
API explorer: APIs Explorer
application: app
approx\.: approximately
authN: authentication
authZ: authorization
autoupdate: automatically update
cellular data: mobile data
cellular network: mobile network
chapter: documents|pages|sections
check box: checkbox
check: select
CLI: command-line tool
click on: click|click in
Cloud: Google Cloud Platform|GCP
Container Engine: Kubernetes Engine
content type: media type
curated roles: predefined roles
data are: data is
Developers Console: Google API Console|API Console
disabled?: turn off|off
ephemeral IP address: ephemeral external IP address
fewer data: less data
file name: filename
firewalls: firewall rules
functionality: capability|feature
Google account: Google Account
Google accounts: Google Accounts
Googling: search with Google
grayed-out: unavailable
HTTPs: HTTPS
in order to: to
ingest: import|load
k8s: Kubernetes
long press: touch & hold
network IP address: internal IP address
omnibox: address bar
open-source: open source
overview screen: recents screen
regex: regular expression
SHA1: SHA-1|HAS-SHA1
sign into: sign in to
sign-?on: single sign-on
static IP address: static external IP address
stylesheet: style sheet
synch: sync
tablename: table name
tablet: device
touch: tap
url: URL
vs\.: versus
World Wide Web: web

View File

@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/Google/releases.atom",
"vale_version": ">=1.0.0"
}

View File

View File

@ -0,0 +1,9 @@
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]\.'

View File

@ -0,0 +1,25 @@
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

View File

@ -0,0 +1,64 @@
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

View File

@ -0,0 +1,270 @@
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

View File

@ -0,0 +1,11 @@
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+'

View File

@ -0,0 +1,18 @@
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

View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1,120 @@
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

View File

@ -0,0 +1,30 @@
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

View File

@ -0,0 +1,13 @@
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'

View File

@ -0,0 +1,8 @@
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}'

View File

@ -0,0 +1,40 @@
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

View File

@ -0,0 +1,8 @@
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'

View File

@ -0,0 +1,9 @@
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:
- '\.\.\.'

View File

@ -0,0 +1,13 @@
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

View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1,8 @@
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

View File

@ -0,0 +1,44 @@
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)

View File

@ -0,0 +1,11 @@
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

View File

@ -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}'

View File

@ -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]'

View File

@ -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|$)'

View File

@ -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

View File

@ -0,0 +1,14 @@
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-'

View File

@ -0,0 +1,13 @@
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'

View File

@ -0,0 +1,13 @@
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

View File

@ -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+\s(?:and|or)'

View File

@ -0,0 +1,183 @@
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

View File

@ -0,0 +1,7 @@
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'

View File

@ -0,0 +1,7 @@
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:
- '["“][^"”“]+["”][.,]'

View File

@ -0,0 +1,13 @@
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'

View File

@ -0,0 +1,7 @@
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'

View File

@ -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:
- ';'

View File

@ -0,0 +1,7 @@
extends: occurrence
message: "Try to keep sentences short (< 30 words)."
scope: sentence
level: suggestion
max: 30
token: \b(\w+)\b

View File

@ -0,0 +1,8 @@
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]'

View File

@ -0,0 +1,7 @@
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+-'

View File

@ -0,0 +1,43 @@
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

View File

@ -0,0 +1,10 @@
extends: substitution
message: "Use '%s' instead of '%s'."
ignorecase: true
level: error
action:
name: replace
swap:
URL for: URL of
an URL: a URL

View File

@ -0,0 +1,16 @@
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

View File

@ -0,0 +1,23 @@
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

View File

@ -0,0 +1,11 @@
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

View File

@ -0,0 +1,122 @@
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

View File

@ -0,0 +1,4 @@
{
"feed": "https://github.com/errata-ai/Microsoft/releases.atom",
"vale_version": ">=1.0.0"
}

View File

@ -0,0 +1,8 @@
extends: existence
message: "'%s' is airlinese."
ignorecase: true
level: error
tokens:
- enplan(?:e|ed|ing|ement)
- deplan(?:e|ed|ing|ement)
- taking off momentarily

View File

@ -0,0 +1,48 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
level: error
action:
name: replace
swap:
(?:bull|ox)-like: taurine
(?:calf|veal)-like: vituline
(?:crow|raven)-like: corvine
(?:leopard|panther)-like: pardine
bird-like: avine
centipede-like: scolopendrine
crab-like: cancrine
crocodile-like: crocodiline
deer-like: damine
eagle-like: aquiline
earthworm-like: lumbricine
falcon-like: falconine
ferine: wild animal-like
fish-like: piscine
fox-like: vulpine
frog-like: ranine
goat-like: hircine
goose-like: anserine
gull-like: laridine
hare-like: leporine
hawk-like: accipitrine
hippopotamus-like: hippopotamine
lizard-like: lacertine
mongoose-like: viverrine
mouse-like: murine
ostrich-like: struthionine
peacock-like: pavonine
porcupine-like: hystricine
rattlesnake-like: crotaline
sable-like: zibeline
sheep-like: ovine
shrew-like: soricine
sparrow-like: passerine
swallow-like: hirundine
swine-like: suilline
tiger-like: tigrine
viper-like: viperine
vulture-like: vulturine
wasp-like: vespine
wolf-like: lupine
woodpecker-like: picine
zebra-like: zebrine

View File

@ -0,0 +1,8 @@
extends: existence
message: "Excessive apologizing: '%s'"
ignorecase: true
level: error
action:
name: remove
tokens:
- More research is needed

View File

@ -0,0 +1,52 @@
extends: existence
message: "'%s' is archaic."
ignorecase: true
level: error
tokens:
- alack
- anent
- begat
- belike
- betimes
- boughten
- brocage
- brokage
- camarade
- chiefer
- chiefest
- Christiana
- completely obsolescent
- cozen
- divers
- deflexion
- fain
- forsooth
- foreclose from
- haply
- howbeit
- illumine
- in sooth
- maugre
- meseems
- methinks
- nigh
- peradventure
- perchance
- saith
- shew
- sistren
- spake
- to wit
- verily
- whilom
- withal
- wot
- enclosed please find
- please find enclosed
- enclosed herewith
- enclosed herein
- inforce
- ex postfacto
- foreclose from
- forewent
- for ever

View File

@ -0,0 +1,8 @@
extends: existence
message: "Do not start a paragraph with a 'but'."
level: error
scope: paragraph
action:
name: remove
tokens:
- ^But

View File

@ -0,0 +1,782 @@
extends: existence
message: "'%s' is a cliche."
level: error
ignorecase: true
tokens:
- a chip off the old block
- a clean slate
- a dark and stormy night
- a far cry
- a fate worse than death
- a fine kettle of fish
- a loose cannon
- a penny saved is a penny earned
- a tough row to hoe
- a word to the wise
- ace in the hole
- acid test
- add insult to injury
- against all odds
- air your dirty laundry
- alas and alack
- all fun and games
- all hell broke loose
- all in a day's work
- all talk, no action
- all thumbs
- all your eggs in one basket
- all's fair in love and war
- all's well that ends well
- almighty dollar
- American as apple pie
- an axe to grind
- another day, another dollar
- armed to the teeth
- as luck would have it
- as old as time
- as the crow flies
- at loose ends
- at my wits end
- at the end of the day
- avoid like the plague
- babe in the woods
- back against the wall
- back in the saddle
- back to square one
- back to the drawing board
- bad to the bone
- badge of honor
- bald faced liar
- bald-faced lie
- ballpark figure
- banging your head against a brick wall
- baptism by fire
- barking up the wrong tree
- bat out of hell
- be all and end all
- beat a dead horse
- beat around the bush
- been there, done that
- beggars can't be choosers
- behind the eight ball
- bend over backwards
- benefit of the doubt
- bent out of shape
- best thing since sliced bread
- bet your bottom dollar
- better half
- better late than never
- better mousetrap
- better safe than sorry
- between a rock and a hard place
- between a rock and a hard place
- between Scylla and Charybdis
- between the devil and the deep blue see
- betwixt and between
- beyond the pale
- bide your time
- big as life
- big cheese
- big fish in a small pond
- big man on campus
- bigger they are the harder they fall
- bird in the hand
- bird's eye view
- birds and the bees
- birds of a feather flock together
- bit the hand that feeds you
- bite the bullet
- bite the dust
- bitten off more than he can chew
- black as coal
- black as pitch
- black as the ace of spades
- blast from the past
- bleeding heart
- blessing in disguise
- blind ambition
- blind as a bat
- blind leading the blind
- blissful ignorance
- blood is thicker than water
- blood sweat and tears
- blow a fuse
- blow off steam
- blow your own horn
- blushing bride
- boils down to
- bolt from the blue
- bone to pick
- bored stiff
- bored to tears
- bottomless pit
- boys will be boys
- bright and early
- brings home the bacon
- broad across the beam
- broken record
- brought back to reality
- bulk large
- bull by the horns
- bull in a china shop
- burn the midnight oil
- burning question
- burning the candle at both ends
- burst your bubble
- bury the hatchet
- busy as a bee
- but that's another story
- by hook or by crook
- call a spade a spade
- called onto the carpet
- calm before the storm
- can of worms
- can't cut the mustard
- can't hold a candle to
- case of mistaken identity
- cast aspersions
- cat got your tongue
- cat's meow
- caught in the crossfire
- caught red-handed
- chase a red herring
- checkered past
- chomping at the bit
- cleanliness is next to godliness
- clear as a bell
- clear as mud
- close to the vest
- cock and bull story
- cold shoulder
- come hell or high water
- comparing apples and oranges
- compleat
- conspicuous by its absence
- cool as a cucumber
- cool, calm, and collected
- cost a king's ransom
- count your blessings
- crack of dawn
- crash course
- creature comforts
- cross that bridge when you come to it
- crushing blow
- cry like a baby
- cry me a river
- cry over spilt milk
- crystal clear
- crystal clear
- curiosity killed the cat
- cut and dried
- cut through the red tape
- cut to the chase
- cute as a bugs ear
- cute as a button
- cute as a puppy
- cuts to the quick
- cutting edge
- dark before the dawn
- day in, day out
- dead as a doornail
- decision-making process
- devil is in the details
- dime a dozen
- divide and conquer
- dog and pony show
- dog days
- dog eat dog
- dog tired
- don't burn your bridges
- don't count your chickens
- don't look a gift horse in the mouth
- don't rock the boat
- don't step on anyone's toes
- don't take any wooden nickels
- down and out
- down at the heels
- down in the dumps
- down the hatch
- down to earth
- draw the line
- dressed to kill
- dressed to the nines
- drives me up the wall
- dubious distinction
- dull as dishwater
- duly authorized
- dyed in the wool
- eagle eye
- ear to the ground
- early bird catches the worm
- easier said than done
- easy as pie
- eat your heart out
- eat your words
- eleventh hour
- even the playing field
- every dog has its day
- every fiber of my being
- everything but the kitchen sink
- eye for an eye
- eyes peeled
- face the music
- facts of life
- fair weather friend
- fall by the wayside
- fan the flames
- far be it from me
- fast and loose
- feast or famine
- feather your nest
- feathered friends
- few and far between
- fifteen minutes of fame
- fills the bill
- filthy vermin
- fine kettle of fish
- first and foremost
- fish out of water
- fishing for a compliment
- fit as a fiddle
- fit the bill
- fit to be tied
- flash in the pan
- flat as a pancake
- flip your lid
- flog a dead horse
- fly by night
- fly the coop
- follow your heart
- for all intents and purposes
- for free
- for the birds
- for what it's worth
- force of nature
- force to be reckoned with
- forgive and forget
- fox in the henhouse
- free and easy
- free as a bird
- fresh as a daisy
- full steam ahead
- fun in the sun
- garbage in, garbage out
- gentle as a lamb
- get a kick out of
- get a leg up
- get down and dirty
- get the lead out
- get to the bottom of
- get with the program
- get your feet wet
- gets my goat
- gilding the lily
- gilding the lily
- give and take
- go against the grain
- go at it tooth and nail
- go for broke
- go him one better
- go the extra mile
- go with the flow
- goes without saying
- good as gold
- good deed for the day
- good things come to those who wait
- good time was had by all
- good times were had by all
- greased lightning
- greek to me
- green thumb
- green-eyed monster
- grist for the mill
- growing like a weed
- hair of the dog
- hand to mouth
- happy as a clam
- happy as a lark
- hasn't a clue
- have a nice day
- have a short fuse
- have high hopes
- have the last laugh
- haven't got a row to hoe
- he's got his hands full
- head honcho
- head over heels
- hear a pin drop
- heard it through the grapevine
- heart's content
- heavy as lead
- hem and haw
- high and dry
- high and mighty
- high as a kite
- his own worst enemy
- his work cut out for him
- hit paydirt
- hither and yon
- Hobson's choice
- hold your head up high
- hold your horses
- hold your own
- hold your tongue
- honest as the day is long
- horns of a dilemma
- horns of a dilemma
- horse of a different color
- hot under the collar
- hour of need
- I beg to differ
- icing on the cake
- if the shoe fits
- if the shoe were on the other foot
- if you catch my drift
- in a jam
- in a jiffy
- in a nutshell
- in a pig's eye
- in a pinch
- in a word
- in hot water
- in light of
- in the final analysis
- in the gutter
- in the last analysis
- in the nick of time
- in the thick of it
- in your dreams
- innocent bystander
- it ain't over till the fat lady sings
- it goes without saying
- it takes all kinds
- it takes one to know one
- it's a small world
- it's not what you know, it's who you know
- it's only a matter of time
- ivory tower
- Jack of all trades
- jockey for position
- jog your memory
- joined at the hip
- judge a book by its cover
- jump down your throat
- jump in with both feet
- jump on the bandwagon
- jump the gun
- jump to conclusions
- just a hop, skip, and a jump
- just the ticket
- justice is blind
- keep a stiff upper lip
- keep an eye on
- keep it simple, stupid
- keep the home fires burning
- keep up with the Joneses
- keep your chin up
- keep your fingers crossed
- kick the bucket
- kick up your heels
- kick your feet up
- kid in a candy store
- kill two birds with one stone
- kiss of death
- knock it out of the park
- knock on wood
- knock your socks off
- know him from Adam
- know the ropes
- know the score
- knuckle down
- knuckle sandwich
- knuckle under
- labor of love
- ladder of success
- land on your feet
- lap of luxury
- last but not least
- last but not least
- last hurrah
- last-ditch effort
- law of the jungle
- law of the land
- lay down the law
- leaps and bounds
- let sleeping dogs lie
- let the cat out of the bag
- let the good times roll
- let your hair down
- let's talk turkey
- letter perfect
- lick your wounds
- lies like a rug
- life's a bitch
- life's a grind
- light at the end of the tunnel
- lighter than a feather
- lighter than air
- like clockwork
- like father like son
- like taking candy from a baby
- like there's no tomorrow
- lion's share
- live and learn
- live and let live
- long and short of it
- long lost love
- look before you leap
- look down your nose
- look what the cat dragged in
- looking a gift horse in the mouth
- looks like death warmed over
- loose cannon
- lose your head
- lose your temper
- loud as a horn
- lounge lizard
- loved and lost
- low man on the totem pole
- luck of the draw
- luck of the Irish
- make a mockery of
- make hay while the sun shines
- make money hand over fist
- make my day
- make the best of a bad situation
- make the best of it
- make your blood boil
- male chauvinism
- man of few words
- man's best friend
- mark my words
- meaningful dialogue
- missed the boat on that one
- moment in the sun
- moment of glory
- moment of truth
- moment of truth
- money to burn
- more in sorrow than in anger
- more power to you
- more sinned against than sinning
- more than one way to skin a cat
- movers and shakers
- moving experience
- my better half
- naked as a jaybird
- naked truth
- neat as a pin
- needle in a haystack
- needless to say
- neither here nor there
- never look back
- never say never
- nip and tuck
- nip in the bud
- nip it in the bud
- no guts, no glory
- no love lost
- no pain, no gain
- no skin off my back
- no stone unturned
- no time like the present
- no use crying over spilled milk
- nose to the grindstone
- not a hope in hell
- not a minute's peace
- not in my backyard
- not playing with a full deck
- not the end of the world
- not written in stone
- nothing to sneeze at
- nothing ventured nothing gained
- now we're cooking
- off the top of my head
- off the wagon
- off the wall
- old hat
- olden days
- older and wiser
- older than dirt
- older than Methuselah
- on a roll
- on cloud nine
- on pins and needles
- on the bandwagon
- on the money
- on the nose
- on the rocks
- on the same page
- on the spot
- on the tip of my tongue
- on the wagon
- on thin ice
- once bitten, twice shy
- one bad apple doesn't spoil the bushel
- one born every minute
- one brick short
- one foot in the grave
- one in a million
- one red cent
- only game in town
- open a can of worms
- open and shut case
- open the flood gates
- opportunity doesn't knock twice
- out of pocket
- out of sight, out of mind
- out of the frying pan into the fire
- out of the woods
- out on a limb
- over a barrel
- over the hump
- pain and suffering
- pain in the
- panic button
- par for the course
- part and parcel
- party pooper
- pass the buck
- patience is a virtue
- pay through the nose
- penny pincher
- perfect storm
- pig in a poke
- pile it on
- pillar of the community
- pin your hopes on
- pitter patter of little feet
- plain as day
- plain as the nose on your face
- play by the rules
- play your cards right
- playing the field
- playing with fire
- pleased as punch
- plenty of fish in the sea
- point with pride
- poor as a church mouse
- pot calling the kettle black
- presidential timber
- pretty as a picture
- pull a fast one
- pull your punches
- pulled no punches
- pulling your leg
- pure as the driven snow
- put it in a nutshell
- put one over on you
- put the cart before the horse
- put the pedal to the metal
- put your best foot forward
- put your foot down
- quantum jump
- quantum leap
- quick as a bunny
- quick as a lick
- quick as a wink
- quick as lightning
- quiet as a dormouse
- rags to riches
- raining buckets
- raining cats and dogs
- rank and file
- rat race
- reap what you sow
- red as a beet
- red herring
- redound to one's credit
- redound to the benefit of
- reinvent the wheel
- rich and famous
- rings a bell
- ripe old age
- ripped me off
- rise and shine
- road to hell is paved with good intentions
- rob Peter to pay Paul
- roll over in the grave
- rub the wrong way
- ruled the roost
- running in circles
- sad but true
- sadder but wiser
- salt of the earth
- scared stiff
- scared to death
- sea change
- sealed with a kiss
- second to none
- see eye to eye
- seen the light
- seize the day
- set the record straight
- set the world on fire
- set your teeth on edge
- sharp as a tack
- shirked his duties
- shoot for the moon
- shoot the breeze
- shot in the dark
- shoulder to the wheel
- sick as a dog
- sigh of relief
- signed, sealed, and delivered
- sink or swim
- six of one, half a dozen of another
- six of one, half a dozen of the other
- skating on thin ice
- slept like a log
- slinging mud
- slippery as an eel
- slow as molasses
- smart as a whip
- smooth as a baby's bottom
- sneaking suspicion
- snug as a bug in a rug
- sow wild oats
- spare the rod, spoil the child
- speak of the devil
- spilled the beans
- spinning your wheels
- spitting image of
- spoke with relish
- spread like wildfire
- spring to life
- squeaky wheel gets the grease
- stands out like a sore thumb
- start from scratch
- stick in the mud
- still waters run deep
- stitch in time
- stop and smell the roses
- straight as an arrow
- straw that broke the camel's back
- stretched to the breaking point
- strong as an ox
- stubborn as a mule
- stuff that dreams are made of
- stuffed shirt
- sweating blood
- sweating bullets
- take a load off
- take one for the team
- take the bait
- take the bull by the horns
- take the plunge
- takes one to know one
- takes two to tango
- than you can shake a stick at
- the cream of the crop
- the cream rises to the top
- the more the merrier
- the real deal
- the real McCoy
- the red carpet treatment
- the same old story
- the straw that broke the camel's back
- there is no accounting for taste
- thick as a brick
- thick as thieves
- thick as thieves
- thin as a rail
- think outside of the box
- thinking outside the box
- third time's the charm
- this day and age
- this hurts me worse than it hurts you
- this point in time
- thought leaders?
- three sheets to the wind
- through thick and thin
- throw in the towel
- throw the baby out with the bathwater
- tie one on
- tighter than a drum
- time and time again
- time is of the essence
- tip of the iceberg
- tired but happy
- to coin a phrase
- to each his own
- to make a long story short
- to the best of my knowledge
- toe the line
- tongue in cheek
- too good to be true
- too hot to handle
- too numerous to mention
- touch with a ten foot pole
- tough as nails
- trial and error
- trials and tribulations
- tried and true
- trip down memory lane
- twist of fate
- two cents worth
- two peas in a pod
- ugly as sin
- under the counter
- under the gun
- under the same roof
- under the weather
- until the cows come home
- unvarnished truth
- up the creek
- uphill battle
- upper crust
- upset the applecart
- vain attempt
- vain effort
- vanquish the enemy
- various and sundry
- vested interest
- viable alternative
- waiting for the other shoe to drop
- wakeup call
- warm welcome
- watch your p's and q's
- watch your tongue
- watching the clock
- water under the bridge
- wax eloquent
- wax poetic
- we've got a situation here
- weather the storm
- weed them out
- week of Sundays
- went belly up
- wet behind the ears
- what goes around comes around
- what you see is what you get
- when it rains, it pours
- when push comes to shove
- when the cat's away
- when the going gets tough, the tough get going
- whet (?:the|your) appetite
- white as a sheet
- whole ball of wax
- whole hog
- whole nine yards
- wild goose chase
- will wonders never cease?
- wisdom of the ages
- wise as an owl
- wolf at the door
- wool pulled over our eyes
- words fail me
- work like a dog
- world weary
- worst nightmare
- worth its weight in gold
- writ large
- wrong side of the bed
- yanking your chain
- yappy as a dog
- years young
- you are what you eat
- you can run but you can't hide
- you only live once
- you're the boss
- young and foolish
- young and vibrant

View File

@ -0,0 +1,30 @@
extends: existence
message: "'%s' is corporate speak."
ignorecase: true
level: error
tokens:
- at the end of the day
- back to the drawing board
- hit the ground running
- get the ball rolling
- low-hanging fruit
- thrown under the bus
- think outside the box
- let's touch base
- get my manager's blessing
- it's on my radar
- ping me
- i don't have the bandwidth
- no brainer
- par for the course
- bang for your buck
- synergy
- move the goal post
- apples to apples
- win-win
- circle back around
- all hands on deck
- take this offline
- drill-down
- elephant in the room
- on my plate

View File

@ -0,0 +1,5 @@
extends: existence
message: "Incorrect use of symbols in '%s'."
ignorecase: true
raw:
- \$[\d]* ?(?:dollars|usd|us dollars)

View File

@ -0,0 +1,15 @@
extends: existence
message: "Consider replacing '%s'."
level: error
ignorecase: true
tokens:
- shit
- piss
- fuck
- cunt
- cocksucker
- motherfucker
- tits
- fart
- turd
- twat

View File

@ -0,0 +1,7 @@
extends: existence
message: With lowercase letters, the periods are standard.
ignorecase: true
level: error
nonword: true
tokens:
- '\d{1,2} ?[ap]m'

View File

@ -0,0 +1,7 @@
extends: existence
message: "Use 'midnight' or 'noon'."
ignorecase: true
level: error
nonword: true
tokens:
- '12 ?[ap]\.?m\.?'

View File

@ -0,0 +1,10 @@
extends: existence
message: "'a.m.' is always morning; 'p.m.' is always night."
ignorecase: true
level: error
nonword: true
tokens:
- '\d{1,2} ?a\.?m\.? in the morning'
- '\d{1,2} ?p\.?m\.? in the evening'
- '\d{1,2} ?p\.?m\.? at night'
- '\d{1,2} ?p\.?m\.? in the afternoon'

View File

@ -0,0 +1,7 @@
extends: existence
message: "It's standard to put a space before '%s'"
ignorecase: true
level: error
nonword: true
tokens:
- '\d{1,2}[ap]\.?m\.?'

View File

@ -0,0 +1,52 @@
extends: substitution
message: Did you mean '%s'?
ignorecase: false
action:
name: replace
swap:
(?:Afrikaaner|Afrikander): Afrikaner
(?:Hong Kongite|Hong Kongian): Hong Konger
(?:Indianan|Indianian): Hoosier
(?:Michiganite|Michiganian): Michigander
(?:New Hampshireite|New Hampshireman): New Hampshirite
(?:Newcastlite|Newcastleite): Novocastrian
(?:Providencian|Providencer): Providentian
(?:Trentian|Trentonian): Tridentine
(?:Warsawer|Warsawian): Varsovian
(?:Wolverhamptonite|Wolverhamptonian): Wulfrunian
Alabaman: Alabamian
Albuquerquian: Albuquerquean
Anchoragite: Anchorageite
Arizonian: Arizonan
Arkansawyer: Arkansan
Belarusan: Belarusian
Cayman Islander: Caymanian
Coloradoan: Coloradan
Connecticuter: Nutmegger
Fairbanksian: Fairbanksan
Fort Worther: Fort Worthian
Grenadian: Grenadan
Halifaxer: Haligonian
Hartlepoolian: Hartlepudlian
Illinoisian: Illinoisan
Iowegian: Iowan
Leedsian: Leodenisian
Liverpoolian: Liverpudlian
Los Angelean: Angeleno
Manchesterian: Mancunian
Minneapolisian: Minneapolitan
Missouran: Missourian
Monacan: Monegasque
Neopolitan: Neapolitan
New Jerseyite: New Jerseyan
New Orleansian: New Orleanian
Oklahoma Citian: Oklahoma Cityan
Oklahomian: Oklahoman
Saudi Arabian: Saudi
Seattlite: Seattleite
Surinamer: Surinamese
Tallahassean: Tallahasseean
Tennesseean: Tennessean
Trois-Rivièrester: Trifluvian
Utahan: Utahn
Valladolidian: Vallisoletano

View File

@ -0,0 +1,95 @@
extends: substitution
message: Consider using '%s' instead of '%s'.
ignorecase: true
level: error
action:
name: replace
swap:
beau ideal: beau idéal
boutonniere: boutonnière
bric-a-brac: bric-à-brac
cafe: café
cause celebre: cause célèbre
chevre: chèvre
cliche: cliché
consomme: consommé
coup de grace: coup de grâce
crudites: crudités
creme brulee: crème brûlée
creme de menthe: crème de menthe
creme fraice: crème fraîche
creme fresh: crème fraîche
crepe: crêpe
debutante: débutante
decor: décor
deja vu: déjà vu
denouement: dénouement
facade: façade
fiance: fiancé
fiancee: fiancée
flambe: flambé
garcon: garçon
lycee: lycée
maitre d: maître d
menage a trois: ménage à trois
negligee: négligée
protege: protégé
protegee: protégée
puree: purée
my resume: my résumé
your resume: your résumé
his resume: his résumé
her resume: her résumé
a resume: a résumé
the resume: the résumé
risque: risqué
roue: roué
soiree: soirée
souffle: soufflé
soupcon: soupçon
touche: touché
tete-a-tete: tête-à-tête
voila: voilà
a la carte: à la carte
a la mode: à la mode
emigre: émigré
# Spanish loanwords
El Nino: El Niño
jalapeno: jalapeño
La Nina: La Niña
pina colada: piña colada
senor: señor
senora: señora
senorita: señorita
# Portuguese loanwords
acai: açaí
# German loanwords
doppelganger: doppelgänger
Fuhrer: Führer
Gewurztraminer: Gewürztraminer
vis-a-vis: vis-à-vis
Ubermensch: Übermensch
# Swedish loanwords
filmjolk: filmjölk
smorgasbord: smörgåsbord
# Names, places, and companies
Beyonce: Beyoncé
Bronte: Brontë
Champs-Elysees: Champs-Élysées
Citroen: Citroën
Curacao: Curaçao
Lowenbrau: Löwenbräu
Monegasque: Monégasque
Motley Crue: Mötley Crüe
Nescafe: Nescafé
Queensryche: Queensrÿche
Quebec: Québec
Quebecois: Québécois
Angstrom: Ångström
angstrom: ångström
Skoda: Škoda

View File

@ -0,0 +1,45 @@
extends: substitution
message: Consider using '%s' instead of '%s'.
ignorecase: true
level: error
action:
name: replace
swap:
(?:alumnae|alumni): graduates
(?:alumna|alumnus): graduate
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
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)

View File

@ -0,0 +1,39 @@
extends: substitution
message: Consider using '%s' instead of '%s'.
ignorecase: true
action:
name: replace
swap:
(?:bunch|group|pack|flock) of chickens: brood of chickens
(?:bunch|group|pack|flock) of crows: murder of crows
(?:bunch|group|pack|flock) of hawks: cast of hawks
(?:bunch|group|pack|flock) of parrots: pandemonium of parrots
(?:bunch|group|pack|flock) of peacocks: muster of peacocks
(?:bunch|group|pack|flock) of penguins: muster of penguins
(?:bunch|group|pack|flock) of sparrows: host of sparrows
(?:bunch|group|pack|flock) of turkeys: rafter of turkeys
(?:bunch|group|pack|flock) of woodpeckers: descent of woodpeckers
(?:bunch|group|pack|herd) of apes: shrewdness of apes
(?:bunch|group|pack|herd) of baboons: troop of baboons
(?:bunch|group|pack|herd) of badgers: cete of badgers
(?:bunch|group|pack|herd) of bears: sloth of bears
(?:bunch|group|pack|herd) of bullfinches: bellowing of bullfinches
(?:bunch|group|pack|herd) of bullocks: drove of bullocks
(?:bunch|group|pack|herd) of caterpillars: army of caterpillars
(?:bunch|group|pack|herd) of cats: clowder of cats
(?:bunch|group|pack|herd) of colts: rag of colts
(?:bunch|group|pack|herd) of crocodiles: bask of crocodiles
(?:bunch|group|pack|herd) of dolphins: school of dolphins
(?:bunch|group|pack|herd) of foxes: skulk of foxes
(?:bunch|group|pack|herd) of gorillas: band of gorillas
(?:bunch|group|pack|herd) of hippopotami: bloat of hippopotami
(?:bunch|group|pack|herd) of horses: drove of horses
(?:bunch|group|pack|herd) of jellyfish: fluther of jellyfish
(?:bunch|group|pack|herd) of kangeroos: mob of kangeroos
(?:bunch|group|pack|herd) of monkeys: troop of monkeys
(?:bunch|group|pack|herd) of oxen: yoke of oxen
(?:bunch|group|pack|herd) of rhinoceros: crash of rhinoceros
(?:bunch|group|pack|herd) of wild boar: sounder of wild boar
(?:bunch|group|pack|herd) of wild pigs: drift of wild pigs
(?:bunch|group|pack|herd) of zebras: zeal of wild pigs
(?:bunch|group|pack|school) of trout: hover of trout

View File

@ -0,0 +1,8 @@
extends: existence
message: "'%s' is hedging."
ignorecase: true
level: error
tokens:
- I would argue that
- ', so to speak'
- to a certain degree

View File

@ -0,0 +1,6 @@
extends: existence
message: "'%s' is hyperbolic."
level: error
nonword: true
tokens:
- '[a-z]+[!?]{2,}'

View File

@ -0,0 +1,11 @@
extends: existence
message: "'%s' is jargon."
ignorecase: true
level: error
tokens:
- in the affirmative
- in the negative
- agendize
- per your order
- per your request
- disincentivize

View File

@ -0,0 +1,13 @@
extends: existence
message: "'%s' is offensive. Remove it or consider the context."
ignorecase: true
tokens:
- fag
- faggot
- dyke
- sodomite
- homosexual agenda
- gay agenda
- transvestite
- homosexual lifestyle
- gay lifestyle

View File

@ -0,0 +1,15 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
ignorecase: true
action:
name: replace
swap:
homosexual man: gay man
homosexual men: gay men
homosexual woman: lesbian
homosexual women: lesbians
homosexual people: gay people
homosexual couple: gay couple
sexual preference: sexual orientation
(?:admitted homosexual|avowed homosexual): openly gay
special rights: equal rights

View File

@ -0,0 +1,8 @@
extends: existence
message: "'%s' is a malapropism."
ignorecase: true
level: error
tokens:
- the infinitesimal universe
- a serial experience
- attack my voracity

Some files were not shown because too many files have changed in this diff Show More