| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779 |
- # Repeated letters
- #\b([a-z])\g{-1}{2,}\b
- # marker to ignore all code on line
- ^.*/\* #no-spell-check-line \*/.*$
- # marker to ignore all code on line
- ^.*\bno-spell-check(?:-line|)(?:\s.*|)$
- # https://cspell.org/configuration/document-settings/
- # cspell inline
- ^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b
- # copyright
- Copyright (?:\([Cc]\)|)(?:[-\d, ]|and)+(?: [A-Z][a-z]+ [A-Z][a-z]+,?)+
- # patch hunk comments
- ^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .*
- # git index header
- index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
- # file permissions
- ['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s]
- # css fonts
- \bfont(?:-family|):[^;}]+
- # css url wrappings
- \burl\([^)]+\)
- # cid urls
- (['"])cid:.*?\g{-1}
- # data url in parens
- \(data:(?:[^) ][^)]*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\)
- # data url in quotes
- ([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1}
- # data url
- \bdata:[-a-zA-Z=;:/0-9+]*,\S*
- # https/http/file urls
- (?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|]
- # mailto urls
- mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,}
- # magnet urls
- magnet:[?=:\w]+
- # magnet urls
- "magnet:[^"]+"
- # obs:
- "obs:[^"]*"
- # The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read
- # In this examples content, I'm using a number of different ways to match things to show various approaches
- # asciinema
- \basciinema\.org/a/[0-9a-zA-Z]+
- # asciinema v2
- ^\[\d+\.\d+, "[io]", ".*"\]$
- # apple
- \bdeveloper\.apple\.com/[-\w?=/]+
- # Apple music
- \bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+
- # appveyor api
- \bci\.appveyor\.com/api/projects/status/[0-9a-z]+
- # appveyor project
- \bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+
- # Amazon
- # Amazon
- \bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
- # AWS ARN
- arn:aws:[-/:\w]+
- # AWS S3
- \b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]*
- # AWS execute-api
- \b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b
- # AWS ELB
- \b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b
- # AWS SNS
- \bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]*
- # AWS VPC
- vpc-\w+
- # While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there
- # YouTube url
- \b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
- # YouTube music
- \bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*)
- # YouTube tag
- <\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
- # YouTube image
- \bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
- # Google Accounts
- \baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]*
- # Google Analytics
- \bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
- # Google APIs
- \bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+
- # Google Artifact Registry
- \.pkg\.dev(?:/[-\w]+)+(?::[-\w]+|)
- # Google Storage
- \b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
- # Google Calendar
- \bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+
- \w+\@group\.calendar\.google\.com\b
- # Google DataStudio
- \bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|)
- # The leading `/` here is as opposed to the `\b` above
- # ... a short way to match `https://` or `http://` since most urls have one of those prefixes
- # Google Docs
- /docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|))
- # Google Drive
- \bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]*
- # Google Groups
- \bgroups\.google\.com(?:/[a-z]+/(?:#!|)[^/\s"]+)*
- # Google Maps
- \bmaps\.google\.com/maps\?[\w&;=]*
- # Google themes
- themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+.
- # Google CDN
- \bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]*
- # Goo.gl
- /goo\.gl/[a-zA-Z0-9]+
- # Google Chrome Store
- \bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|)
- # Google Books
- \bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]*
- # Google Fonts
- \bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
- # Google Forms
- \bforms\.gle/\w+
- # Google Scholar
- \bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+
- # Google Colab Research Drive
- \bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]*
- # Google Cloud regions
- (?:us|(?:north|south)america|europe|asia|australia|me|africa)-(?:north|south|east|west|central){1,2}\d+
- # GitHub SHAs (api)
- \bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b
- # GitHub SHAs (markdown)
- (?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
- # GitHub SHAs
- \bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b
- # GitHub SHA refs
- \[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]*
- # GitHub wiki
- \bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b
- # githubusercontent
- /[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
- # githubassets
- \bgithubassets.com/[0-9a-f]+(?:[-/\w.]+)
- # gist github
- \bgist\.github\.com/[^/\s"]+/[0-9a-f]+
- # git.io
- \bgit\.io/[0-9a-zA-Z]+
- # GitHub JSON
- "node_id": "[-a-zA-Z=;:/0-9+_]*"
- # Contributor
- \[[^\]]+\]\(https://github\.com/[^/\s"]+/?\)
- # 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
- \bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b
- # GitLab uploads
- \bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]*
- # GitLab commits
- \bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b
- # #includes
- ^\s*#include\s*(?:<.*?>|".*?")
- # #pragma lib
- ^\s*#pragma comment\(lib, ".*?"\)
- # binance
- accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
- # bitbucket diff
- \bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+
- # bitbucket repositories commits
- \bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
- # bitbucket commits
- \bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
- # bit.ly
- \bbit\.ly/\w+
- # bitrise
- \bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]*
- # bootstrapcdn.com
- \bbootstrapcdn\.com/[-./\w]+
- # cdn.cloudflare.com
- \bcdnjs\.cloudflare\.com/[./\w]+
- # circleci
- \bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+
- # gitter
- \bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+
- # gravatar
- \bgravatar\.com/avatar/[0-9a-f]+
- # ibm
- [a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]*
- # imgur
- \bimgur\.com/[^.]+
- # Internet Archive
- \barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*)
- # discord
- /discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,}
- # Disqus
- \bdisqus\.com/[-\w/%.()!?&=_]*
- # medium link
- \blink\.medium\.com/[a-zA-Z0-9]+
- # medium
- \bmedium\.com/@?[^/\s"]+/[-\w]+
- # microsoft
- \b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]*
- # powerbi
- \bapp\.powerbi\.com/reportEmbed/[^"' ]*
- # vs devops
- \bvisualstudio.com(?::443|)/[-\w/?=%&.]*
- # microsoft store
- \bmicrosoft\.com/store/apps/\w+
- # mvnrepository.com
- \bmvnrepository\.com/[-0-9a-z./]+
- # now.sh
- /[0-9a-z-.]+\.now\.sh\b
- # oracle
- \bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]*
- # chromatic.com
- /\S+.chromatic.com\S*[")]
- # codacy
- \bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+
- # compai
- \bcompai\.pub/v1/png/[0-9a-f]+
- # mailgun api
- \.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]*
- # mailgun
- \b[0-9a-z]+.mailgun.org
- # /message-id/
- /message-id/[-\w@./%]+
- # Reddit
- \breddit\.com/r/[/\w_]*
- # requestb.in
- \brequestb\.in/[0-9a-z]+
- # sched
- \b[a-z0-9]+\.sched\.com\b
- # Slack url
- slack://[a-zA-Z0-9?&=]+
- # Slack
- \bslack\.com/[-0-9a-zA-Z/_~?&=.]*
- # Slack edge
- \bslack-edge\.com/[-a-zA-Z0-9?&=%./]+
- # Slack images
- \bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+
- # shields.io
- \bshields\.io/[-\w/%?=&.:+;,]*
- # stackexchange -- https://stackexchange.com/feeds/sites
- \b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
- # Sentry
- [0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b
- # Twitter markdown
- \[@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
- # Twitter hashtag
- \btwitter\.com/hashtag/[\w?_=&]*
- # Twitter status
- \btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)
- # Twitter profile images
- \btwimg\.com/profile_images/[_\w./]*
- # Twitter media
- \btwimg\.com/media/[-_\w./?=]*
- # Twitter link shortened
- \bt\.co/\w+
- # facebook
- \bfburl\.com/[0-9a-z_]+
- # facebook CDN
- \bfbcdn\.net/[\w/.,]*
- # facebook watch
- \bfb\.watch/[0-9A-Za-z]+
- # dropbox
- \bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+
- # ipfs protocol
- ipfs://[0-9a-zA-Z]{3,}
- # ipfs url
- /ipfs/[0-9a-zA-Z]{3,}
- # w3
- \bw3\.org/[-0-9a-zA-Z/#.]+
- # loom
- \bloom\.com/embed/[0-9a-f]+
- # regex101
- \bregex101\.com/r/[^/\s"]+/\d+
- # figma
- \bfigma\.com/file(?:/[0-9a-zA-Z]+/)+
- # freecodecamp.org
- \bfreecodecamp\.org/[-\w/.]+
- # image.tmdb.org
- \bimage\.tmdb\.org/[/\w.]+
- # mermaid
- \bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+
- # Wikipedia
- \ben\.wikipedia\.org/wiki/[-\w%.#]+
- # gitweb
- [^"\s]+/gitweb/\S+;h=[0-9a-f]+
- # HyperKitty lists
- /archives/list/[^@/]+@[^/\s"]*/message/[^/\s"]*/
- # lists
- /thread\.html/[^"\s]+
- # list-management
- \blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+
- # kubectl.kubernetes.io/last-applied-configuration
- "kubectl.kubernetes.io/last-applied-configuration": ".*"
- # pgp
- \bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]*
- # Spotify
- \bopen\.spotify\.com/embed/playlist/\w+
- # Mastodon
- \bmastodon\.[-a-z.]*/(?:media/|@)[?&=0-9a-zA-Z_]*
- # scastie
- \bscastie\.scala-lang\.org/[^/]+/\w+
- # images.unsplash.com
- \bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+
- # pastebin
- \bpastebin\.com/[\w/]+
- # heroku
- \b\w+\.heroku\.com/source/archive/\w+
- # quip
- \b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)?
- # badgen.net
- \bbadgen\.net/badge/[^")\]'\s]+
- # statuspage.io
- \w+\.statuspage\.io\b
- # media.giphy.com
- \bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+
- # tinyurl
- \btinyurl\.com/\w+
- # codepen
- \bcodepen\.io/[\w/]+
- # registry.npmjs.org
- \bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+
- # getopts
- \bgetopts\s+(?:"[^"]+"|'[^']+')
- # ANSI color codes
- (?:\\(?:u00|x)1[Bb]|\\03[1-7]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+)*m
- # URL escaped characters
- %[0-9A-F][A-F](?=[A-Za-z])
- # lower URL escaped characters
- %[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)
- 0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
- # Punycode
- \bxn--[-0-9a-z]+
- # sha
- sha\d+:[0-9a-f]*?[a-f]{3,}[0-9a-f]*
- # sha-... -- uses a fancy capture
- (\\?['"]|")[0-9a-f]{40,}\g{-1}
- # hex runs
- \b[0-9a-fA-F]{16,}\b
- # hex in url queries
- =[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?&
- # ssh
- (?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,}
- # PGP
- \b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b
- # GPG keys
- \b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b
- # Well known gpg keys
- .well-known/openpgpkey/[\w./]+
- # pki
- -----BEGIN.*-----END
- # pki (base64)
- LS0tLS1CRUdJT.*
- # C# includes
- ^\s*using [^;]+;
- # 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|&H)[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}
- # https://www.gnu.org/software/groff/manual/groff.html
- # man troff content
- \\f[BCIPR]
- # '/"
- \\\([ad]q
- # .desktop mime types
- ^MimeTypes?=.*$
- # .desktop localized entries
- ^[A-Z][a-z]+\[[a-z]+\]=.*$
- # Localized .desktop content
- Name\[[^\]]+\]=.*
- # IServiceProvider / isAThing
- (?:(?:\b|_|(?<=[a-z]))I|(?:\b|_)(?:nsI|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+
- # imports
- ^import\s+(?:(?:static|type)\s+|)(?:[\w.]|\{\s*\w*?(?:,\s*(?:\w*|\*))+\s*\})+
- # scala modules
- ("[^"]+"\s*%%?\s*){2,3}"[^"]+"
- # container images
- image: [-\w./:@]+
- # Docker images
- ^\s*(?i)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_(?!dd)\w+
- # Input to GitHub JSON
- content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
- # This does not cover multiline strings, if your repository has them,
- # 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])(?=[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,})
- # Regular expressions for (P|p)assword
- \([A-Z]\|[a-z]\)[a-z]+
- # JavaScript regular expressions
- # javascript test regex
- /.{3,}/[gim]*\.test\(
- # javascript match regex
- \.match\(/[^/\s"]{3,}/[gim]*\s*
- # javascript match regex
- \.match\(/\\[b].{3,}?/[gim]*\s*\)(?:;|$)
- # javascript regex
- ^\s*/\\[b].{3,}?/[gim]*\s*(?:\)(?:;|$)|,$)
- # javascript replace regex
- \.replace\(/[^/\s"]{3,}/[gim]*\s*,
- # assign regex
- = /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gim]*(?=\W|$)
- # perl regex test
- [!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1})
- # perl qr regex
- (?<!\$)\bqr(?:\{.*?\}|<.*?>|\(.*?\)|([|!/@#,;']).*?\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\((?:`[^`]*`|".*"|'.*')\)
- # regex choice
- \(\?:[^)]+\|[^)]+\)
- # proto
- ^\s*(\w+)\s\g{-1} =
- # sed regular expressions
- sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
- # node packages
- (["'])@[^/'" ]+/[^/'" ]+\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
- # xcodeproject scenes
- (?:Controller|destination|(?:first|second)Item|ID|id)="\w{3}-\w{2}-\w{3}"
- # xcode api botches
- customObjectInstantitationMethod
- # msvc api botches
- PrependWithABINamepsace
- # configure flags
- .* \| --\w{2,}.*?(?=\w+\s\w+)
- # font awesome classes
- \.fa-[-a-z0-9]+
- # bearer auth
- (['"])[Bb]ear[e][r] .{3,}?\g{-1}
- # bearer auth
- \b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]{3,}
- # basic auth
- (['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
- # basic auth
- : [Bb]asic [-a-zA-Z=;:/0-9+.]{3,}
- # base64 encoded content
- ([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
- # base64 encoded content in xml/sgml
- >[-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+]+
- # uuencoded
- #[!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_]{40,}
- # DNS rr data
- (?:\d+\s+){3}(?:[-+/=.\w]{2,}\s*){1,2}
- # encoded-word
- =\?[-a-zA-Z0-9"*%]+\?[BQ]\?[^?]{0,75}\?=
- # numerator
- \bnumer\b(?=.*denom)
- # Time Zones
- \b(?:Africa|Atlantic|America|Antarctica|Arctic|Asia|Australia|Europe|Indian|Pacific)(?:/[-\w]+)+
- # linux kernel info
- ^(?:bugs|flags|Features)\s+:.*
- # 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)
- (?:(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*)
- # Non-English
- # Even repositories expecting pure English content can unintentionally have Non-English content... People will occasionally mistakenly enter [homoglyphs](https://en.wikipedia.org/wiki/Homoglyph) which are essentially typos, and using this pattern will mean check-spelling will not complain about them.
- #
- # If the content to be checked should be written in English and the only Non-English items will be people's names, then you can consider adding this.
- #
- # Alternatively, if you're using check-spelling v0.0.25+, and you would like to _check_ the Non-English content for spelling errors, you can. For information on how to do so, see:
- # https://docs.check-spelling.dev/Feature:-Configurable-word-characters.html#unicode
- [a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
- # highlighted letters
- \[[A-Z]\][a-z]+
- # French
- # This corpus only had capital letters, but you probably want lowercase ones as well.
- \b[LN]'+[a-z]{2,}\b
- # latex (check-spelling >= 0.0.22)
- \\\w{2,}\{
- # American Mathematical Society (AMS) / Doxygen
- TeX/AMS
- # File extensions
- \*\.[+\w]+,
- # eslint
- "varsIgnorePattern": ".+"
- # nolint
- nolint:\s*[\w,]+
- # Windows short paths
- [/\\][^/\\]{5,6}~\d{1,2}(?=[/\\])
- # Windows Resources with accelerators
- \b[A-Z]&[a-z]+\b(?!;)
- # signed off by
- (?i)Signed-off-by: .*
- # 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 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(?: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
- # version suffix <word>v#
- (?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
- # Compiler flags (Unix, Java/Scala)
- # Use if you have things like `-Pdocker` and want to treat them as `docker`
- #(?:^|[\t ,>"'`=(#])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
- # Compiler flags (Windows / PowerShell)
- # This is a subset of the more general compiler flags pattern.
- # It avoids matching `-Path` to prevent it from being treated as `ath`
- #(?:^|[\t ,"'`=(#])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}))
- # Compiler flags (linker)
- ,-B
- # libraries
- (?:\b|_)[Ll]ib(?: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(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
- # set arguments
- \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]+
|