getvars
ghostscript
gir
+github
gitlab
givr
gjeqe
HSw
HTAB
htmlfiles
-htobe
-htole
-htonl
-htons
-htons'ed
httpconnector
httpconnects
httpd
HTTPHEADER
+https
httpversion
HUnit
hwinfo
tcpbench
tcpbytesanswered
tcpclient
-tcpclienttimeouts
tcpclientthreads
+tcpclienttimeouts
tcpcurrentconnections
tcpdiedreaddingresponse
tcpdiedreadingquery
uapi
UBIGINT
ubsan
+ubuntu
UBXc
ucf
ucfq
UNDOC
unescape
unhexlify
-uninstall
unicode
Unicode
UNICODE
+uninstall
uniq
uniquw
UNIREGISTRYMARKET
useragent
userdata
userfriendly
-username
usermsec
+username
userperc
USHRT
usleep
Woi
Wor
wordpad
+workarounds
workdir
workflow
Wowie
XFRd
XFRM
xfrserver
-xhtml
-XHTML
xhr
+XHTML
+xhtml
xit
xlabel
xluajit
^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b
# patch hunk comments
-^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
+^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .*
# git index header
index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
# data url in quotes
([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1}
# data url
-data:[-a-zA-Z=;:/0-9+]*,\S*
+\bdata:[-a-zA-Z=;:/0-9+]*,\S*
# https/http/file urls
-#(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
+#(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|]
# mailto urls
-mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
+mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,}
# magnet urls
magnet:[?=:\w]+
# GHSA
GHSA(?:-[0-9a-z]{4}){3}
+# GitHub actions
+\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+
+
# GitLab commit
\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b
# GitLab merge requests
# medium link
\blink\.medium\.com/[a-zA-Z0-9]+
# medium
-\bmedium\.com/\@?[^/\s"]+/[-\w]+
+\bmedium\.com/@?[^/\s"]+/[-\w]+
# microsoft
\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]*
[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b
# Twitter markdown
-\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
+\[@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
# Twitter hashtag
\btwitter\.com/hashtag/[\w?_=&]*
# Twitter status
# Wikipedia
\ben\.wikipedia\.org/wiki/[-\w%.#]+
-# Contributors with non-ascii characters in their name
-Hoffst[^[:ascii:]]+tte
-Gri[^[:ascii:]]
-Lundstr[^[:ascii:]]+m
-Joaqu[^[:ascii:]]n
-
# gitweb
[^"\s]+/gitweb/\S+;h=[0-9a-f]+
# HyperKitty lists
-/archives/list/[^@/]+\@[^/\s"]*/message/[^/\s"]*/
+/archives/list/[^@/]+@[^/\s"]*/message/[^/\s"]*/
# lists
/thread\.html/[^"\s]+
\bopen\.spotify\.com/embed/playlist/\w+
# Mastodon
-\bmastodon\.[-a-z.]*/(?:media/|\@)[?&=0-9a-zA-Z_]*
+\bmastodon\.[-a-z.]*/(?:media/|@)[?&=0-9a-zA-Z_]*
# scastie
\bscastie\.scala-lang\.org/[^/]+/\w+
(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m
# URL escaped characters
-\%[0-9A-F][A-F](?=[A-Za-z])
+%[0-9A-F][A-F](?=[A-Za-z])
# lower URL escaped characters
-\%[0-9a-f][a-f](?=[a-z]{2,})
+%[0-9a-f][a-f](?=[a-z]{2,})
# IPv6
\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
# c99 hex digits (not the full format, just one I've seen)
# Punycode
\bxn--[-0-9a-z]+
# sha
-sha\d+:[0-9]*[a-f]{3,}[0-9a-f]*
+sha\d+:[0-9a-f]*?[a-f]{3,}[0-9a-f]*
# sha-... -- uses a fancy capture
(\\?['"]|")[0-9a-f]{40,}\g{-1}
# hex runs
# pki
-----BEGIN.*-----END
+# pki (base64)
+LS0tLS1CRUdJT.*
+
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
# hex digits including css/html color classes:
-(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
+(?:[\\0][xX]|\\u|[uU]\+|#x?|%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
# integrity
integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1}
Name\[[^\]]+\]=.*
# IServiceProvider / isAThing
-#\b(?:I|isA)(?=(?:[A-Z][a-z]{2,})+\b)
+(?:\b|_)(?:(?:ns|)I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b))
# crypt
(['"])\$2[ayb]\$.{56}\g{-1}
+# apache/old crypt
+(['"]|)\$+(?:apr|)1\$+.{8}\$+.{22}\g{-1}
+
+# sha1 hash
+\{SHA\}[-a-zA-Z=;:/0-9+]{3,}
+
+# machine learning (?)
+\b(?i)ml(?=[a-z]{2,})
+
+# python
+\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
+
# scrypt / argon
\$(?:scrypt|argon\d+[di]*)\$\S+
# go.sum
#\bh1:\S+
+# scala imports
+^import (?:[\w.]|\{\w*?(?:,\s*(?:\w*|\*))+\})+
+
# scala modules
("[^"]+"\s*%%?\s*){2,3}"[^"]+"
+# container images
+image: [-\w./:@]+
+
+# Docker images
+^\s*FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
+
+# `docker images` REPOSITORY TAG IMAGE ID CREATED SIZE
+\s*\S+/\S+\s+\S+\s+[0-9a-f]{8,}\s+\d+\s+(?:hour|day|week)s ago\s+[\d.]+[KMGT]B
+
+# Intel intrinsics
+_mm_\w+
+
# Input to GitHub JSON
content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
# you'll want to remove the `(?=.*?")` suffix.
# The `(?=.*?")` suffix should limit the false positives rate
# printf
-%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA]|p)(?=[a-zA-Z]{2,}))(?=[_a-zA-Z]+\b)(?!%)(?=.*?['"])
+%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA])(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])
+
+# Alternative printf
+# %s
+%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"])
# Python string prefix / binary prefix
# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings
-(?<!')\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)'(?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
+(?<!['"])\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)['"](?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
# Regular expressions for (P|p)assword
\([A-Z]\|[a-z]\)[a-z]+
# JavaScript regular expressions
# javascript test regex
-/.*/[gim]*\.test\(
+/.{3,}/[gim]*\.test\(
# javascript match regex
-\.match\(/[^/\s"]*/[gim]*\s*
+\.match\(/[^/\s"]{3,}/[gim]*\s*
# javascript match regex
-\.match\(/\\[b].*?/[gim]*\s*\)(?:;|$)
+\.match\(/\\[b].{3,}?/[gim]*\s*\)(?:;|$)
# javascript regex
-^\s*/\\[b].*/[gim]*\s*(?:\)(?:;|$)|,$)
+^\s*/\\[b].{3,}?/[gim]*\s*(?:\)(?:;|$)|,$)
# javascript replace regex
-\.replace\(/[^/\s"]*/[gim]*\s*,
+\.replace\(/[^/\s"]{3,}/[gim]*\s*,
# assign regex
-= /[^*]*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/
+= /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gi]?(?=\W|$)
# perl regex test
[!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1})
# perl run
perl(?:\s+-[a-zA-Z]\w*)+
+# C network byte conversions
+(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
+
# Go regular expressions
regexp?\.MustCompile\(`[^`]*`\)
sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
# node packages
-(["'])\@[^/'" ]+/[^/'" ]+\g{-1}
+(["'])@[^/'" ]+/[^/'" ]+\g{-1}
# go install
go install(?:\s+[a-z]+\.[-@\w/.]+)+
+# pom.xml
+<(?:group|artifact)Id>.*?<
+
# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571
urn:shemas-jetbrains-com
+# Debian changelog severity
+[-\w]+ \(.*\) (?:\w+|baseline|unstable|experimental); urgency=(?:low|medium|high|emergency|critical)\b
+
# kubernetes pod status lists
# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+
# kubectl - pods in CrashLoopBackOff
\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+
+# kubernetes applications
+\.apps/[-\w]+
+
# kubernetes object suffix
-[0-9a-f]{10}-\w{5}\s
+# kubernetes crd patterns
+^\s*pattern: .*$
+
# posthog secrets
([`'"])phc_[^"',]+\g{-1}
# xcode api botches
customObjectInstantitationMethod
+# msvc api botches
+PrependWithABINamepsace
+
# configure flags
.* \| --\w{2,}.*?(?=\w+\s\w+)
\.fa-[-a-z0-9]+
# bearer auth
-(['"])Bear[e][r] .*?\g{-1}
+(['"])[Bb]ear[e][r] .*?\g{-1}
+
+# bearer auth
+\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]+
# basic auth
-(['"])Basic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
+(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
# base64 encoded content
-([`'"])[-a-zA-Z=;:/0-9+]+==\g{-1}
+([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
# base64 encoded content in xml/sgml
->[-a-zA-Z=;:/0-9+]+=</
+>[-a-zA-Z=;:/0-9+]{3,}=</
# base64 encoded content, possibly wrapped in mime
#(?:^|[\s=;:?])[-a-zA-Z=;:/0-9+]{50,}(?:[\s=;:?]|$)
+# base64 encoded json
+\beyJ[-a-zA-Z=;:/0-9+]+
+# base64 encoded pkcs
+\bMII[-a-zA-Z=;:/0-9+]+
# encoded-word
=\?[-a-zA-Z0-9"*%]+\?[BQ]\?[^?]{0,75}\?=
+# numerator
+\bnumer\b(?=.*denom)
+
# Time Zones
\b(?:Africa|Atlantic|America|Antarctica|Asia|Australia|Europe|Indian|Pacific)(?:/\w+)+
# systemd mode
systemd.*?running in system mode \([-+].*\)$
+# Lorem
# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
# grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
-## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
-## You could manually change `(?i)X...` to use `[Xx]...`
-## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
-# Lorem
-(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*
+# ... Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
+# ... You could manually change `(?i)X...` to use `[Xx]...`
+# ... or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
+(?:(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*)
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
# latex (check-spelling >= 0.0.22)
\\\w{2,}\{
+# American Mathematical Society (AMS) / Doxygen
+TeX/AMS
+
+# File extensions
+\*\.[+\w]+,
+
# eslint
"varsIgnorePattern": ".+"
+# nolint
+nolint:\w+
+
# Windows short paths
[/\\][^/\\]{5,6}~\d{1,2}[/\\]
+# cygwin paths
+/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+
+
# in check-spelling@v0.0.22+, printf markers aren't automatically consumed
# printf markers
(?<!\\)\\[nrt](?=[a-z]{2,})
-# alternate markers if you run into latex and friends
+# alternate printf markers if you run into latex and friends
(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*['"`])
+# Markdown anchor links
+\(#\S*?[a-zA-Z]\S*?\)
+
# apache
a2(?:en|dis)
# weak e-tag
W/"[^"]+"
+# authors/credits
+^\*(?: [A-Z](?:\w+|\.)){2,} (?=\[|$)
+
# the negative lookahead here is to allow catching 'templatesz' as a misspelling
# but to otherwise recognize a Windows path with \templates\foo.template or similar:
-\\(?:necessary|r(?:eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
+\\(?:necessary|r(?:elease|eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
# Compiler flags (linker)
,-B
+# libraries
+(?:\b|_)lib(?:re(?=office)|)(?!era[lt]|ero|erty|rar(?:i(?:an|es)|y))(?=[a-z])
+
+# WWNN/WWPN (NAA identifiers)
+\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b
+
+# iSCSI iqn (approximate regex)
+\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b
+
# curl arguments
-\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
+\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
# set arguments
-\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)*
+\b(?:bash|sh|set)(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)*
# tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...
\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b
# macOS temp folders
/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/
+# github runner temp folders
+/home/runner/work/_temp/[-_/a-z0-9]+
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
-# want to include regression-tests.*/description
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
+(?:^|/)(?i)third[-_]?party/
(?:^|/)3rdparty/
(?:^|/)ext/
-(?:^|/)go\.mod$
+(?:^|/)generated/
(?:^|/)go\.sum$
(?:^|/)m4/
(?:^|/)package(?:-lock|)\.json$
(?:^|/)Pipfile$
(?:^|/)pyproject.toml
-(?:^|/)requirements(?:-dev|-doc|-test|)\.txt$
+(?:^|/|\b)requirements(?:-dev|-doc|-test|)\.txt$
(?:^|/)vendor/
/expected_result
/test-base64_cc\.cc$
\.avi$
\.bmp$
\.bz2$
-\.cer$
+\.cert?$|\.crt$
\.class$
\.coveragerc$
\.crl$
-\.crt$
\.csr$
\.dll$
\.docx?$
^\.github/actions/spelling/
^\.github/workflows/spelling\d*\.yml$
^\Qdocs/lua-records/reference/index.rst\E$
-^\Qpdns/dnsdistdist/docs/_static/dnsdist-keyblock.asc\E$
Alenichev
alexa
algoroll
-alloca
+aliasmode
allocs
Altpeter
Anderton
bitfield
bitmaps
bla
-blackhole
Bleker
blockfilter
blogpost
debian
deboynepollard
Deduktiva
-dedup
defcontent
-defmacro
defpol
defttl
Dehaine
DNSR
dnsrecord
dnsreplay
+dnsresourcerecord
dnsscan
dnsscope
dnssec
elgoog
elisp
elpa
-emacs
endbr
Enden
enp
externalrefs
extrahead
Exx
-Ezbu
ezdns
Faerch
failedservers
gettime
gettsigkey
Geuze
-GFm
ggdb
Ghz
Gibheer
Gillstrom
Gkey
gmake
-Gmb
-gmtime
GMy
gmysql
gmysqlbackend
ipfilter
IPSECKEY
iputils
-irc
isane
ismaster
isoc
keyblock
keydir
keyids
-keymap
keyname
keypair
keypairgen
lethalgroup
letsencrypt
letterpaper
-libatomic
-libclang
-libcrypto
-libcryptopp
-libdecaf
-libdir
-libedit
-libfstrm
-libgcc
-libgeoip
-libh
-libmaxminddb
-libmongo
-libmysqlclient
-libnss
-libpcap
-libpq
-libpqpp
-libresolv
-libressl
-librt
-libsettings
-libsodium
-libsofthsm
-libstdc
-libsystemd
-libtdsodbc
-libxdp
-libyaml
-libzmq
+LIBPQ
lightningstream
Lindqvist
linenos
Lrhazi
lsock
lsp
-lto
luaaction
luabackend
luac
luawrapper
Lutter
Luuk
-LYg
Machard
Maik
Maikel
modifyingpolicydecisions
modindex
monshouwer
-Moq
motherboards
mozilla
mplexer
noncompliantresponses
nonexist
Nonnekes
+nonzone
noout
noping
noport
NSes
nsid
nsis
-nsl
nsrecord
nsset
nsspeeds
Oestreicher
offsite
oftc
-OIDs
Olafur
Omroep
openapis
ordername
orsn
Oservers
-OSX
otherdomain
otherpool
ourname
ourserial
-ourtime
outpacket
outputbuffer
outqueries
powerdnsrecursor
powerdnssec
powerldap
+pqpp
Predota
preoutquery
Preproc
prequery
prerpz
presignedness
-PRId
primetime
-princ
prioritization
privs
profdata
profraw
-progn
-protobuf
protozero
providername
proxymapping
Publieke
publishdomainkey
pullreq
-Pyry
qclass
qdcount
qdomain
querytime
qytpe
ragel
-raii
Rak
randombackend
randombit
randomloader
rapidjson
rawaddress
+rawtypes
RBL
rcode
rcodezero
selectmplexer
senderrors
Sendetzky
-serde
Sergey
serverpools
serverselection
servfail
+servicemode
setaffinity
setcontent
setdomainmetadata
setkey
setnotified
SETPIPE
-setq
settting
setvariable
Shabanov
Smurthwaite
Snarked
sndbuf
-snprintf
soa
soadata
soarecord
statisticitem
statm
stbuehler
+stdc
Stef
Steinbuch
stek
stubresolver
Stussy
stutiredboy
-subkey
+subkeys
submitters
subnamespace
subnetmask
tcpreusedconnections
tcptoomanyconcurrentconnections
tds
+tdsodbc
teeaction
Telenet
testsdir
toint
tokenuser
Tolstov
+tolua
Toosarani
Toshifumi
totms
Tuomi
Tushuizen
Tuxis
-TVJRU
tylerneylon
typenames
ualberta
vandergaast
Vandoren
Vasiliy
-VDz
Veldhuyzen
Verheijen
Verschuren
Wisiol
wmem
Wojas
-workarounds
Worldnic
would've
wouter
# reject `m_data` as VxWorks defined it and that breaks things if it's used elsewhere
# see [fprime](https://github.com/nasa/fprime/commit/d589f0a25c59ea9a800d851ea84c2f5df02fb529)
# and [Qt](https://github.com/qtproject/qt-solutions/blame/fb7bc42bfcc578ff3fa3b9ca21a41e96eb37c1c7/qtscriptclassic/src/qscriptbuffer_p.h#L46)
-# \bm_data\b
+#\bm_data\b
+# Were you debugging using a framework with `fit()`?
# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test,
-# you might not want to check in code where you were debugging w/ `fit()`, in which case, you might want
-# to use this:
+# you might not want to check in code where you skip all the other tests.
#\bfit\(
-# s.b. anymore
+# Should be `HH:MM:SS`
+\bHH:SS:MM\b
+
+# Should be `86400` (seconds in a standard day)
+\b84600\b(?:.*\bday\b)
+
+# Should probably be `2006-01-02` (yyyy-mm-dd)
+# Assuming that the time is being passed to https://go.dev/src/time/format.go
+\b2006-02-01\b
+
+# Should probably be `YYYYMMDD`
+\b[Yy]{4}[Dd]{2}[Mm]{2}(?!.*[Yy]{4}[Dd]{2}[Mm]{2}).*$
+
+# Should be `a priori` or `and prior`
+(?i)(?<!posteriori)\sand priori\s
+
+# Should only be one of `a`, `an`, or `the`
+\b(?:(?:an?|the)\s+){2,}\b
+
+# Should be `anymore`
\bany more[,.]
-# s.b. cannot
+# Should be `'`
+(?i)\b(?:(?:i|s?he|they|what|who|you)"ll|(?:are|ca|did|do|does|ha[ds]|have|is|should|were|wo|would)n"t|(?:s?he|let|that|there|what|where|who)"s|(?:i|they|we|what|who|you)"ve)\b
+
+# Should be `briefcase`
+\bbrief-case\b
+
+# Should be `can, not only ..., ... also...`
+\bcan not only.*can also\b
+
+# Should be `cannot` (or `can't`)
+# See https://www.grammarly.com/blog/cannot-or-can-not/
+# > Don't use `can not` when you mean `cannot`. The only time you're likely to see `can not` written as separate words is when the word `can` happens to precede some other phrase that happens to start with `not`.
+# > `Can't` is a contraction of `cannot`, and it's best suited for informal writing.
+# > In formal writing and where contractions are frowned upon, use `cannot`.
+# > It is possible to write `can not`, but you generally find it only as part of some other construction, such as `not only . . . but also.`
+# - if you encounter such a case, add a pattern for that case to patterns.txt.
\b[Cc]an not\b
-# s.b. GitHub
-(?<![&*.]|// |\btype )\bGithub\b(?![{)])
+# Should be `GitHub`
+(?<![&*.]|// |\b(?:from|import|type) )\bGithub\b(?![{()])
-# s.b. GitLab
-(?<![&*.]|// |\btype )\bGitlab\b(?![{)])
+# Should be `GitLab`
+(?<![&*.]|// |\b(?:from|import|type) )\bGitlab\b(?![{()])
-# s.b. JavaScript
+# Should be `JavaScript`
\bJavascript\b
-# s.b. macOS or Mac OS X or ...
+# Should be `macOS` or `Mac OS X` or ...
\bMacOS\b
-# s.b. Microsoft
+# Should be `Microsoft`
\bMicroSoft\b
-# s.b. TypeScript
+# Should be `OAuth`
+(?:^|[^-/*$])[ '"]oAuth(?: [a-z]|\d+ |[^ a-zA-Z0-9:;_.()])
+
+# Should be `RabbitMQ`
+\bRabbitmq\b
+
+# Should be `TypeScript`
\bTypescript\b
-# s.b. another
+# Should be `another`
\ban[- ]other\b
-# s.b. deprecation warning
+# Should be `case-(in)sensitive`
+\bcase (?:in|)sensitive\b
+
+# Should be `coinciding`
+\bco-inciding\b
+
+# Should be `deprecation warning(s)`
\b[Dd]epreciation [Ww]arnings?\b
-# s.b. greater than
+# Should be `greater than`
\bgreater then\b
-# s.b. in front of
+# Should be `has`
+\b[Ii]t only have\b
+
+# Should be `greater than`
+\bhigher than\b
+
+# Should be `ID`
+\bId\b
+
+# Should be `in front of`
\bin from of\b
-# s.b. into
+# Should be `into`
# when not phrasal and when `in order to` would be wrong:
# https://thewritepractice.com/into-vs-in-to/
\sin to\s(?!if\b)
-# s.b. is obsolete
+# Should be `use`
+\sin used by\b
+
+# Should be `is obsolete`
\bis obsolescent\b
-# s.b. it's or its
+# Should be `it's` or `its`
\bits['’]
-# s.b. opt-in
-(?<!\sfor)\sopt in\s
+# Should be `its`
+\bit's(?= own\b)
+
+# Should be `log in`
+\blogin to the
+
+# Should be `long-standing`
+\blong standing\b
+
+# Should probably be a person named `Nick` or the abbreviation `NIC`
+\bNic\b
+
+# Should probably be `much more`
+\bmore much\b
-# s.b. less than
+# Should be `perform its`
+\bperform it's\b
+
+# Should be `opt-in`
+(?<!\scan|for)(?<!\sif)\sopt in\s
+
+# Should be `less than`
\bless then\b
-# s.b. one of
-\bon of\b
+# Should be `load balancer`
+\b[Ll]oud balancer
+
+# Should be `moot`
+\bmute point\b
+
+# Should be `one of`
+(?<!-)\bon of\b
+
+# Should be `on the other hand`
+\b(?i)on another hand\b
-# s.b. otherwise
+# Most people only have two hands. Reword.
+\b(?i)on the third hand\b
+
+# Should be `otherwise`
\bother[- ]wise\b
-# s.b. or (more|less)
+# Should be `or (more|less)`
\bore (?:more|less)\b
-# s.b. nonexistent
+# Should be `rather than`
+\brather then\b
+
+# Should be `regardless, ...` or `regardless of (whether)`
+\b[Rr]egardless if you\b
+
+# Should be `no longer needed`
+\bno more needed\b(?! than\b)
+
+# Should be `did not exist`
+\bwere not existent\b
+
+# Should be `nonexistent`
\bnon existing\b
+
+# Should be `nonexistent`
\b[Nn]o[nt][- ]existent\b
-# s.b. brief / details/ param / return / retval
+# Should be `@brief` / `@details` / `@param` / `@return` / `@retval`
(?:^\s*|(?:\*|//|/*)\s+`)[\\@](?:breif|(?:detail|detials)|(?:params(?!\.)|prama?)|ret(?:uns?)|retvl)\b
-# s.b. preexisting
+# Should be `preexisting`
[Pp]re[- ]existing
-# s.b. preempt
+# Should be `preempt`
[Pp]re[- ]empt\b
-# s.b. preemptively
+# Should be `preemptively`
[Pp]re[- ]emptively
-# s.b. recently changed or recent changes
+# Should be `prepopulate`
+[Pp]re[- ]populate
+
+# Should be `prerequisite`
+[Pp]re[- ]requisite
+
+# Should be `recently changed` or `recent changes`
[Rr]ecent changed
-# s.b. reentrancy
+# Should be `reentrancy`
[Rr]e[- ]entrancy
-# s.b. reentrant
+# Should be `reentrant`
[Rr]e[- ]entrant
-# s.b. understand
+# Should be `understand`
\bunder stand\b
-# s.b. workarounds
+# Should be `URI` or `uri` unless it refers to a person named `Uri`
+(?<!\.)\bUri\b(?![(])
+
+# Should be `it uses is`
+/\bis uses is\b/
+
+# Should be `uses it as`
+(?:^|\. |and )uses is as (?!an?\b|follows|livestock|[^.]+\s+as\b)
+
+# Should be `where`
+\bwere they are\b
+
+# should be `vCenter`
+\bV[Cc]enter\b
+
+# Should be `VM`
+\bVm\b
+
+# Should be `workarounds`
\bwork[- ]arounds\b
-# s.b. workaround
+# Should be `workaround`
(?:(?:[Aa]|[Tt]he|ugly)\swork[- ]around\b|\swork[- ]around\s+for)
-# s.b. (coarse|fine)-grained
+# Should be `worst`
+(?i)worse-case
+
+# Should be `(coarse|fine)-grained`
\b(?:coarse|fine) grained\b
-# s.b. neither/nor -- or reword
-#\bnot\b[^.?!"/(]+\bnor\b
+# Should be `neither/nor` -- or reword
+#(?!<do )\bnot\b([^.?!"/(](?!neither|,.*?,))+\bnor\b
-# probably a double negative
-# s.b. neither/nor (plus rewording the beginning)
-\bnot\b[^.?!"/]*\bneither\b[^.?!"/(]*\bnor\b
+# Should be `neither/nor` (plus rewording the beginning)
+# This is probably a double negative...
+\bnot\b[^.?!"/(]*\bneither\b[^.?!"/(]*\bnor\b
-# In English, it is generally wrong to have the same word twice in a row without punctuation.
-# Duplicated words are generally mistakes.
-# There are a few exceptions where it is acceptable (e.g. "that that").
-# If the highlighted doubled word pair is in a code snippet, you can write a pattern to mask it.
-# If the highlighted doubled word pair is in prose, have someone read the English before you dismiss this error.
+# In English, duplicated words are generally mistakes
+# There are a few exceptions (e.g. "that that").
+# If the highlighted doubled word pair is in:
+# * code, write a pattern to mask it.
+# * prose, have someone read the English before you dismiss this error.
\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s
^docs/
\.md$
pdns/recursordist/settings/table.py
+regression-tests.*/description
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
-# GitHub SHAs
-\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b
-\b[0-9a-f]+ <https://github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b>\`
-(?:\[[0-9a-f]+\]\(?:https:/|)/github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b
-\bgithub\.com/[^/]+/[^/]+[@#][0-9a-f]+\b
-# githubusercontent
-/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
-# gist github
-/gist\.github\.com/[^/]+/[0-9a-f]+
-
-# msdn
-msdn\.microsoft\.com/(?:[^/]+/|)library/\S*\.aspx?
-
-# uuid:
-\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
-# hex digits including css/html color classes:
-(?:[\\0][xX]|\\u?|[uU]\+|#x?|\%23)[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b
-
-# hex things
-\b[0-9a-f]{8,}\b
-\b[0-9A-F]{8,}\b
\bcommit [0-9a-f]+\b
# HMAC
hmac-sha512(:\w+|\.|)\s+[-a-zA-Z=;:/0-9+]*
addNSECRecordToLW.*DNSName.*powerdnt.com.*QType::NS.*res->d_records
-data:[a-zA-Z=;,/0-9+]+
BOOST_CHECK_EQUAL\(b64, "[a-zA-Z=;,/0-9+]+"
-# ignore long runs of a single character:
-\b([A-Za-z])\g{-1}{3,}\b
-
C(?:XX|)FLAGS="[^"]*"
nsec3param\s*=\s*'[^']*'
C0FFEE
\%[IOFRUSEPXDMW]
[-0-9A-Za-z.]+\.(?:example|powerdns)\.com\b
-# <word>v#
-[Vv]\d+(?:\b|(?=[a-zA-Z_]))
-# tar arguments
-\b(?:)tar(?:\s+-[a-zA-Z]+|\s[a-z]+)+
-
# DoT: DNS over TLS is often combined with other words (images, links, ...), same for DoH
DoT
DoH
# Automatically suggested patterns
-# hit-count: 30 file-count: 20
+
+# hit-count: 1434 file-count: 50
# GitHub SHAs (markdown)
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
-# hit-count: 27 file-count: 11
+\b[0-9a-f]+ <https://github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b>\`
+
+# hit-count: 179 file-count: 35
+# version suffix <word>v#
+(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
+
+# hit-count: 173 file-count: 41
+# libraries
+(?:\b|_)lib(?:re(?=office|ssl)|)(?!era[lt]|ero|erty|rar(?:i(?:an|es)|y))(?=[a-z])
+
+# hit-count: 89 file-count: 7
+# hex digits including css/html color classes:
+(?:[\\0][xX]|\\u?|[uU]\+|#x?|%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
+
+# hit-count: 55 file-count: 7
+# hex runs
+\b[0-9a-fA-F]{16,}\b
+
+# hit-count: 46 file-count: 17
# IPv6
\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
-# hit-count: 11 file-count: 4
+# hit-count: 43 file-count: 3
+# uuid:
+\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
+
+# hit-count: 22 file-count: 9
# Non-English
-[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
+[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
-# hit-count: 9 file-count: 7
-# Compiler flags
-(?:^|[\t ,"'`=(])-[DWL](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
-(?:^|[\t ,"'`=(])-f(?!ield|ile|ilter|orce|ormat|unction)(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
-(?:^|[\t ,"'`=(])-l(?!imited)(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
+# hit-count: 12 file-count: 5
+# base64 encoded content
+([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
-# hit-count: 9 file-count: 2
+# hit-count: 12 file-count: 2
# PGP
\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b
-# hit-count: 4 file-count: 3
-# Non-English
-[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
+# hit-count: 5 file-count: 4
+# python
+\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
+
+# hit-count: 3 file-count: 2
+# Wikipedia
+\ben\.wikipedia\.org/wiki/[-\w%.#]+
+
+# hit-count: 3 file-count: 1
+# scala imports
+^import (?:[\w.]|\{\w*?(?:,\s*(?:\w*|\*))+\})+
+
+\bINternet\b
# hit-count: 2 file-count: 2
-# IServiceProvider
-\bI(?=(?:[A-MOQ-Z][a-z]{2,})+\b)
+# IServiceProvider / isAThing
+(?:\b|_)(?:(?:ns|)IP?|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b))
+
+# hit-count: 2 file-count: 2
+# C network byte conversions
+(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
+
+# hit-count: 2 file-count: 2
+# tar arguments
+\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
+
+# hit-count: 2 file-count: 1
+# WWNN/WWPN (NAA identifiers)
+\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b
# hit-count: 1 file-count: 1
# Amazon
# Google Fonts
\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
-# Automatically suggested patterns
# hit-count: 1 file-count: 1
-# Wikipedia
-\ben\.wikipedia\.org/wiki/[-\w%.#]+
+# githubusercontent
+/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
# hit-count: 1 file-count: 1
-# base64 encoded content
-([`'"])[-a-zA-Z=;:/0-9+]+==\g{-1}
+# Markdown anchor links
+\(#\S*?[a-zA-Z]\S*?\)
+
+# hit-count: 9 file-count: 7
+# Compiler flags
+(?:^|[\t ,"'`=(])-[DWL](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
+(?:^|[\t ,"'`=(])-f(?!ield|ile|ilter|orce|ormat|unction)(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
+(?:^|[\t ,"'`=(])-l(?!imited)(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Questionably acceptable forms of `in to`
# Personally, I prefer `log into`, but people object
# https://www.tprteaching.com/log-into-log-in-to-login/
-\b(?:[Ll]og|[Ss]ign) in to\b
+\b(?:(?:[Ll]og(?:g(?=[a-z])|)|[Ss]ign)(?:ed|ing)?) in to\b
+
+# is (comparator) higher than
+(?:record is|(?:a (?:bit|lot)|much)) higher than\b
# to opt in
\bto opt in\b
# acceptable duplicates
# ls directory listings
-[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+\d+\s+
+[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+
# mount
\bmount\s+-t\s+(\w+)\s+\g{-1}\b
# C types and repeated CSS values
-\s(auto|center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s
-# C struct
-\bstruct\s+(\w+)\s+\g{-1}\b
+\s(auto|buffalo|center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s
+# C enum and struct
+\b(?:enum|struct)\s+(\w+)\s+\g{-1}\b
# go templates
\s(\w+)\s+\g{-1}\s+\`(?:graphql|inject|json|yaml):
# doxygen / javadoc / .net
-(?:[\\@](?:brief|groupname|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+static|\s+override|\s+readonly)*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s
+(?:[\\@](?:brief|defgroup|groupname|link|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+(?:static|override|readonly|required|virtual))*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s
+
+# macOS file path
+/MacOS
+
+# Python package registry has incorrect spelling for macOS / Mac OS X
+"Operating System :: MacOS :: MacOS X"
+
+# "company" in Germany
+\bGmbH\b
+
+# IntelliJ
+\bIntelliJ\b
# Commit message -- Signed-off-by and friends
^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$
benefitting
occurences?
^dependan.*
+^diables?$
^oer$
Sorce
^[Ss]pae.*
+^Teh$
^untill$
^untilling$
^wether.*
branches:
- "**"
types:
- - 'opened'
- - 'reopened'
- - 'synchronize'
+ - "opened"
+ - "reopened"
+ - "synchronize"
jobs:
spelling:
permissions:
# contents-read is needed to checkout in private repositories
contents: read
+ # pull-requests-read is needed for suppress_push_for_open_pull_request in private repositories
+ pull-requests: read
# actions-read is needed (possibly only for private repositories)
# to identify the workflow's filename until
# https://github.com/actions/runner/issues/853 is fixed
# note: If you use only_check_changed_files, you do not want cancel-in-progress
cancel-in-progress: true
steps:
- - name: check-spelling
- id: spelling
- uses: check-spelling/check-spelling@v0.0.22
- with:
- config: .github/actions/spell-check
- suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
- checkout: true
- spell_check_this: powerdns/pdns@master
- post_comment: 0
- warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check
- use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
- extra_dictionaries:
- cspell:software-terms/dict/softwareTerms.txt
- cspell:node/dict/node.txt
- cspell:python/src/common/extra.txt
- cspell:php/dict/php.txt
- cspell:python/src/python/python-lib.txt
- cspell:golang/dict/go.txt
- cspell:fullstack/dict/fullstack.txt
- cspell:k8s/dict/k8s.txt
- cspell:aws/aws.txt
- cspell:cpp/src/stdlib-cpp.txt
- cspell:filetypes/filetypes.txt
- cspell:python/src/python/python.txt
- cspell:django/dict/django.txt
- cspell:typescript/dict/typescript.txt
- cspell:dotnet/dict/dotnet.txt
- cspell:html/dict/html.txt
- cspell:cpp/src/lang-keywords.txt
- cspell:lua/dict/lua.txt
- cspell:latex/dict/latex.txt
- check_extra_dictionaries: ''
+ - name: check-spelling
+ id: spelling
+ uses: check-spelling/check-spelling@v0.0.22
+ with:
+ config: .github/actions/spell-check
+ suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
+ checkout: true
+ check_file_names: 1
+ spell_check_this: powerdns/pdns@master
+ post_comment: 0
+ use_magic_file: 1
+ warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check,unclosed-block-ignore-begin,unclosed-block-ignore-end
+ use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
+ extra_dictionaries: |
+ cspell:software-terms/dict/softwareTerms.txt
+ cspell:python/src/common/extra.txt
+ cspell:node/dict/node.txt
+ cspell:php/dict/php.txt
+ cspell:python/src/python/python-lib.txt
+ cspell:python/src/python/python.txt
+ cspell:fullstack/dict/fullstack.txt
+ cspell:golang/dict/go.txt
+ cspell:aws/aws.txt
+ cspell:k8s/dict/k8s.txt
+ cspell:cpp/src/stdlib-cpp.txt
+ cspell:filetypes/filetypes.txt
+ cspell:typescript/dict/typescript.txt
+ cspell:html/dict/html.txt
+ cspell:django/dict/django.txt
+ cspell:java/src/java.txt
+ cspell:dotnet/dict/dotnet.txt
+ cspell:r/src/r.txt
+ cspell:npm/dict/npm.txt
+ cspell:lisp/lisp.txt
+ cspell:cpp/src/lang-jargon.txt
+ cspell:rust/dict/rust.txt
+ cspell:cpp/src/lang-keywords.txt
+ cspell:latex/dict/latex.txt
+ cspell:cpp/src/stdlib-c.txt
+ cspell:cpp/src/ecosystem.txt
+ cspell:lua/dict/lua.txt
+ cspell:java/src/java-terms.txt
+ check_extra_dictionaries: ''