@@ -218,7 +218,7 @@ accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
218218\bmedium\.com/@?[^/\s"]+/[-\w]+
219219
220220# microsoft
221- \b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com /[-_a-zA-Z0-9()=./%]*
221+ \b(?:https?://|)(?:(?:(?:blogs| download\.visualstudio|docs|msdn2?|research)\.|) microsoft|blogs\.msdn)\.co(?:m|\.\w\w) /[-_a-zA-Z0-9()=./%]*
222222# powerbi
223223\bapp\.powerbi\.com/reportEmbed/[^"' ]*
224224# vs devops
@@ -405,7 +405,7 @@ ipfs://[0-9a-zA-Z]{3,}
405405# Punycode
406406\bxn--[-0-9a-z]+
407407# sha
408- sha\d+:[0-9]* [a-f]{3,}[0-9a-f]*
408+ sha\d+:[0-9a-f]*? [a-f]{3,}[0-9a-f]*
409409# sha-... -- uses a fancy capture
410410(\\?['"]|")[0-9a-f]{40,}\g{-1}
411411# hex runs
@@ -425,6 +425,9 @@ sha\d+:[0-9]*[a-f]{3,}[0-9a-f]*
425425# pki
426426-----BEGIN.*-----END
427427
428+ # pki (base64)
429+ LS0tLS1CRUdJT.*
430+
428431# uuid:
429432\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
430433# hex digits including css/html color classes:
@@ -446,11 +449,23 @@ integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1}
446449Name\[[^\]]+\]=.*
447450
448451# IServiceProvider / isAThing
449- (?:\b|_)(?:I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z]|\b))
452+ (?:\b|_)(?:(?:ns|) I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d ]|\b))
450453
451454# crypt
452455(['"])\$2[ayb]\$.{56}\g{-1}
453456
457+ # apache/old crypt
458+ (['"]|)\$+(?:apr|)1\$+.{8}\$+.{22}\g{-1}
459+
460+ # sha1 hash
461+ \{SHA\}[-a-zA-Z=;:/0-9+]{3,}
462+
463+ # machine learning (?)
464+ #\b(?i)ml(?=[a-z]{2,})
465+
466+ # python
467+ \b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
468+
454469# scrypt / argon
455470\$(?:scrypt|argon\d+[di]*)\$\S+
456471
@@ -463,8 +478,17 @@ Name\[[^\]]+\]=.*
463478# scala modules
464479("[^"]+"\s*%%?\s*){2,3}"[^"]+"
465480
481+ # container images
482+ image: [-\w./:@]+
483+
484+ # Docker images
485+ ^\s*FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
486+
487+ # `docker images` REPOSITORY TAG IMAGE ID CREATED SIZE
488+ \s*\S+/\S+\s+\S+\s+[0-9a-f]{8,}\s+\d+\s+(?:hour|day|week)s ago\s+[\d.]+[KMGT]B
489+
466490# Intel intrinsics
467- _mm_\w+
491+ _mm_(?!dd) \w+
468492
469493# Input to GitHub JSON
470494content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
@@ -473,15 +497,15 @@ content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
473497# you'll want to remove the `(?=.*?")` suffix.
474498# The `(?=.*?")` suffix should limit the false positives rate
475499# printf
476- # %(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA]|p )(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])
500+ %(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA])(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])
477501
478502# Alternative printf
479503# %s
480- %(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])
504+ %(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s] )\b)(?=.*?['"])
481505
482506# Python string prefix / binary prefix
483507# 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
484- (?<!['"])\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,})
508+ # (?<!['"])\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,})
485509
486510# Regular expressions for (P|p)assword
487511\([A-Z]\|[a-z]\)[a-z]+
@@ -535,16 +559,25 @@ go install(?:\s+[a-z]+\.[-@\w/.]+)+
535559# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571
536560urn:shemas-jetbrains-com
537561
562+ # Debian changelog severity
563+ [-\w]+ \(.*\) (?:\w+|baseline|unstable|experimental); urgency=(?:low|medium|high|emergency|critical)\b
564+
538565# kubernetes pod status lists
539566# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
540567\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+
541568
542569# kubectl - pods in CrashLoopBackOff
543570\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+
544571
572+ # kubernetes applications
573+ \.apps/[-\w]+
574+
545575# kubernetes object suffix
546576-[0-9a-f]{10}-\w{5}\s
547577
578+ # kubernetes crd patterns
579+ ^\s*pattern: .*$
580+
548581# posthog secrets
549582([`'"])phc_[^"',]+\g{-1}
550583
@@ -575,17 +608,25 @@ PrependWithABINamepsace
575608(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
576609
577610# base64 encoded content
578- ([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
611+ # ([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
579612# base64 encoded content in xml/sgml
580613>[-a-zA-Z=;:/0-9+]{3,}=</
581614# base64 encoded content, possibly wrapped in mime
582615#(?:^|[\s=;:?])[-a-zA-Z=;:/0-9+]{50,}(?:[\s=;:?]|$)
583616# base64 encoded json
584617\beyJ[-a-zA-Z=;:/0-9+]+
618+ # base64 encoded pkcs
619+ \bMII[-a-zA-Z=;:/0-9+]+
620+
621+ # DNS rr data
622+ (?:\d+\s+){3}(?:[-+/=.\w]{2,}\s*){1,2}
585623
586624# encoded-word
587625=\?[-a-zA-Z0-9"*%]+\?[BQ]\?[^?]{0,75}\?=
588626
627+ # numerator
628+ \bnumer\b(?=.*denom)
629+
589630# Time Zones
590631\b(?:Africa|Atlantic|America|Antarctica|Asia|Australia|Europe|Indian|Pacific)(?:/\w+)+
591632
@@ -605,6 +646,12 @@ systemd.*?running in system mode \([-+].*\)$
605646(?:(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*)
606647
607648# Non-English
649+ # 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.
650+ #
651+ # 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.
652+ #
653+ # 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:
654+ # https://docs.check-spelling.dev/Feature:-Configurable-word-characters.html#unicode
608655[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
609656
610657# highlighted letters
@@ -614,9 +661,6 @@ systemd.*?running in system mode \([-+].*\)$
614661# This corpus only had capital letters, but you probably want lowercase ones as well.
615662\b[LN]'+[a-z]{2,}\b
616663
617- # latex (check-spelling <= 0.0.21)
618- \\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+)
619-
620664# latex (check-spelling >= 0.0.22)
621665\\\w{2,}\{
622666
@@ -629,8 +673,14 @@ TeX/AMS
629673# eslint
630674"varsIgnorePattern": ".+"
631675
676+ # nolint
677+ nolint:\w+
678+
632679# Windows short paths
633- [/\\][^/\\]{5,6}~\d{1,2}[/\\]
680+ [/\\][^/\\]{5,6}~\d{1,2}(?=[/\\])
681+
682+ # Windows Resources with accelerators
683+ \b[A-Z]&[a-z]+\b(?!;)
634684
635685# cygwin paths
636686/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+
@@ -641,12 +691,18 @@ TeX/AMS
641691# alternate printf markers if you run into latex and friends
642692#(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*['"`])
643693
694+ # Markdown anchor links
695+ \(#\S*?[a-zA-Z]\S*?\)
696+
644697# apache
645698a2(?:en|dis)
646699
647700# weak e-tag
648701W/"[^"]+"
649702
703+ # authors/credits
704+ ^\*(?: [A-Z](?:\w+|\.)){2,} (?=\[|$)
705+
650706# the negative lookahead here is to allow catching 'templatesz' as a misspelling
651707# but to otherwise recognize a Windows path with \templates\foo.template or similar:
652708\\(?:necessary|r(?:elease|eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
@@ -669,7 +725,7 @@ W/"[^"]+"
669725,-B
670726
671727# libraries
672- \blib(?! erty|rar(?:i(?:an|es)|y))(?=[a-z])
728+ (?:\b|_)lib(?:re(?=office)|)(?!era[lt]|ero| erty|rar(?:i(?:an|es)|y))(?=[a-z])
673729
674730# WWNN/WWPN (NAA identifiers)
675731\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
0 commit comments