Compare commits

...

2 Commits

Author SHA1 Message Date
Dustin L. Howett
26935bbf27 Migrate spelling-0.0.21 changes from main 2021-11-02 22:40:12 +01:00
Leonard Hecker
c3e0212bd6 wip 2021-11-02 22:40:12 +01:00
17 changed files with 1237 additions and 838 deletions

15
.github/actions/spelling/README.md vendored Normal file
View File

@@ -0,0 +1,15 @@
# check-spelling/check-spelling configuration
File | Purpose | Format | Info
-|-|-|-
[allow/*.txt](allow/) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow)
[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject)
[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes)
[patterns/*.txt](patterns/) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
[candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns)
[line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
[expect/*.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect)
[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)
Note: you can replace any of these files with a directory by the same name (minus the suffix)
and then include multiple files inside that directory (with that suffix) to merge multiple files together.

View File

@@ -1,4 +1,4 @@
<!-- markdownlint-disable MD033 MD041 --> <!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
<details> <details>
<summary> <summary>
:pencil2: Contributor please read this :pencil2: Contributor please read this
@@ -6,7 +6,7 @@
By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later. By default the command suggestion will generate a file named based on your commit. That's generally ok as long as you add the file to your commit. Someone can reorganize it later.
:warning: The command is written for posix shells. You can copy the contents of each `perl` command excluding the outer `'` marks and dropping any `'"`/`"'` quotation mark pairs into a file and then run `perl file.pl` from the root of the repository to run the code. Alternatively, you can manually insert the items... :warning: The command is written for posix shells. If it doesn't work for you, you can manually _add_ (one word per line) / _remove_ items to `expect.txt` and the `excludes.txt` files.
If the listed items are: If the listed items are:
@@ -20,31 +20,29 @@ See the `README.md` in each directory for more information.
:microscope: You can test your commits **without** *appending* to a PR by creating a new branch with that extra change and pushing it to your fork. The [check-spelling](https://github.com/marketplace/actions/check-spelling) action will run in response to your **push** -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. :wink: :microscope: You can test your commits **without** *appending* to a PR by creating a new branch with that extra change and pushing it to your fork. The [check-spelling](https://github.com/marketplace/actions/check-spelling) action will run in response to your **push** -- it doesn't require an open pull request. By using such a branch, you can limit the number of typos your peers see you make. :wink:
<details><summary>:clamp: If you see a bunch of garbage</summary>
If it relates to a ... <details><summary>If the flagged items are :exploding_head: false positives</summary>
<details><summary>well-formed pattern</summary>
See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it. If items relate to a ...
* binary file (or some other file you wouldn't want to check at all).
If not, try writing one and adding it to a `patterns/{file}.txt`. Please add a file path to the `excludes.txt` file matching the containing file.
Patterns are Perl 5 Regular Expressions - you can [test]( File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
</details>
<details><summary>binary-ish string</summary>
Please add a file path to the `excludes.txt` file instead of just accepting the garbage.
File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files. https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md]( `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
../tree/HEAD/README.md) (on whichever branch you're using). ../tree/HEAD/README.md) (on whichever branch you're using).
</details>
* well-formed pattern.
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
try adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
</details> </details>
</details> </details>

View File

@@ -1,52 +1,75 @@
admins
allcolors
Apc
apc apc
breadcrumb
breadcrumbs
bsd
calt calt
ccmp ccmp
changelog changelog
cybersecurity
Apc
clickable clickable
clig clig
CMMI
copyable copyable
cybersecurity
dalet dalet
dcs
Dcs Dcs
dcs
dialytika dialytika
dje dje
downside downside
downsides downsides
dze dze
dzhe dzhe
EDDB
EDDC
Enum'd Enum'd
Fitt Fitt
formattings formattings
FTCS
ftp ftp
fvar fvar
gantt
gcc
geeksforgeeks geeksforgeeks
ghe ghe
github
gje gje
godbolt
hostname hostname
hostnames hostnames
https
hyperlink hyperlink
hyperlinking hyperlinking
hyperlinks hyperlinks
iconify
img img
inlined
It'd It'd
kje kje
libfuzzer
libuv
liga liga
lje lje
locl
lorem
Llast Llast
llvm
Lmid Lmid
locl
lol
lorem
Lorigin Lorigin
maxed maxed
minimalistic
mkmk mkmk
mnt
mru mru
noreply
nje nje
noreply
ogonek ogonek
ok'd ok'd
overlined overlined
pipeline
postmodern postmodern
ptys ptys
qof qof
@@ -61,17 +84,25 @@ runtimes
shcha shcha
slnt slnt
Sos Sos
ssh
timeline
timelines
timestamped timestamped
TLDR TLDR
tokenizes tokenizes
tonos tonos
toolset
tshe tshe
ubuntu
uiatextrange uiatextrange
UIs UIs
und und
unregister unregister
versioned versioned
vsdevcmd
We'd We'd
wildcards wildcards
XBox
YBox
yeru yeru
zhe zhe

View File

@@ -1,30 +1,43 @@
ACCEPTFILES ACCEPTFILES
ACCESSDENIED ACCESSDENIED
acl
aclapi
alignas alignas
alignof alignof
APPLYTOSUBMENUS APPLYTOSUBMENUS
appxrecipe
bitfield bitfield
bitfields bitfields
BUILDBRANCH BUILDBRANCH
BUILDMSG BUILDMSG
BUILDNUMBER BUILDNUMBER
BYCOMMAND
BYPOSITION BYPOSITION
charconv charconv
CLASSNOTAVAILABLE CLASSNOTAVAILABLE
CLOSEAPP
cmdletbinding cmdletbinding
COLORPROPERTY COLORPROPERTY
colspan colspan
COMDLG COMDLG
commandlinetoargv
comparand comparand
cstdint cstdint
CXICON CXICON
CYICON CYICON
Dacl
dataobject dataobject
dcomp dcomp
DERR DERR
dlldata dlldata
DNE
DONTADDTORECENT DONTADDTORECENT
DWMSBT
DWMWA
DWMWA
DWORDLONG DWORDLONG
endfor
ENDSESSION
enumset enumset
environstrings environstrings
EXPCMDFLAGS EXPCMDFLAGS
@@ -38,12 +51,16 @@ fullkbd
futex futex
GETDESKWALLPAPER GETDESKWALLPAPER
GETHIGHCONTRAST GETHIGHCONTRAST
GETMOUSEHOVERTIME
Hashtable Hashtable
HIGHCONTRASTON HIGHCONTRASTON
HIGHCONTRASTW HIGHCONTRASTW
hotkeys hotkeys
href href
hrgn hrgn
HTCLOSE
hwinsta
HWINSTA
IActivation IActivation
IApp IApp
IAppearance IAppearance
@@ -60,19 +77,22 @@ IDirect
IExplorer IExplorer
IFACEMETHOD IFACEMETHOD
IFile IFile
IGraphics
IInheritable IInheritable
IMap IMap
IMonarch
IObject IObject
iosfwd iosfwd
IPackage IPackage
IPeasant IPeasant
isspace
ISetup ISetup
isspace
IStorage IStorage
istream istream
IStringable IStringable
ITab ITab
ITaskbar ITaskbar
itow
IUri IUri
IVirtual IVirtual
KEYSELECT KEYSELECT
@@ -81,17 +101,27 @@ llabs
llu llu
localtime localtime
lround lround
Lsa
lsass
LSHIFT LSHIFT
LTGRAY
MAINWINDOW
memchr
memicmp
MENUCOMMAND MENUCOMMAND
MENUDATA MENUDATA
MENUINFO MENUINFO
memicmp MENUITEMINFOW
mptt mmeapi
MOUSELEAVE
mov mov
mptt
msappx msappx
MULTIPLEUSE MULTIPLEUSE
NCHITTEST NCHITTEST
NCLBUTTONDBLCLK NCLBUTTONDBLCLK
NCMOUSELEAVE
NCMOUSEMOVE
NCRBUTTONDBLCLK NCRBUTTONDBLCLK
NIF NIF
NIN NIN
@@ -109,26 +139,36 @@ oaidl
ocidl ocidl
ODR ODR
offsetof offsetof
ofstream
onefuzz
osver osver
OSVERSIONINFOEXW OSVERSIONINFOEXW
otms otms
OUTLINETEXTMETRICW OUTLINETEXTMETRICW
overridable overridable
PACL
PAGESCROLL PAGESCROLL
PATINVERT
PEXPLICIT
PICKFOLDERS PICKFOLDERS
pmr pmr
ptstr
QUERYENDSESSION
rcx rcx
REGCLS REGCLS
RETURNCMD RETURNCMD
rfind rfind
ROOTOWNER
roundf roundf
RSHIFT RSHIFT
SACL
schandle schandle
semver semver
serializer serializer
SETVERSION SETVERSION
SHELLEXECUTEINFOW SHELLEXECUTEINFOW
shobjidl shobjidl
SHOWHIDE
SHOWMINIMIZED SHOWMINIMIZED
SHOWTIP SHOWTIP
SINGLEUSE SINGLEUSE
@@ -149,23 +189,37 @@ Stubless
Subheader Subheader
Subpage Subpage
syscall syscall
SYSTEMBACKDROP
TABROW
TASKBARCREATED TASKBARCREATED
TBPF TBPF
THEMECHANGED THEMECHANGED
tlg tlg
TME
tmp tmp
tmpdir
tolower tolower
toupper toupper
TRACKMOUSEEVENT
TTask TTask
TVal TVal
UChar UChar
UFIELD
ULARGE
UOI
UPDATEINIFILE UPDATEINIFILE
userenv userenv
USEROBJECTFLAGS
Viewbox
virtualalloc
wcsstr wcsstr
wcstoui wcstoui
winmain winmain
winsta
winstamin
wmemcmp wmemcmp
wpc wpc
WSF
wsregex wsregex
wwinmain wwinmain
xchg xchg

View File

@@ -19,6 +19,7 @@ CPRs
cryptbase cryptbase
DACL DACL
DACLs DACLs
defaultlib
diffs diffs
disposables disposables
dotnetfeed dotnetfeed
@@ -27,6 +28,8 @@ DWINRT
enablewttlogging enablewttlogging
Intelli Intelli
IVisual IVisual
libucrt
libucrtd
LKG LKG
LOCKFILE LOCKFILE
Lxss Lxss
@@ -36,8 +39,10 @@ microsoftonline
MSAA MSAA
msixbundle msixbundle
MSVC MSVC
MSVCP
muxc muxc
netcore netcore
Onefuzz
osgvsowi osgvsowi
PFILETIME PFILETIME
pgc pgc
@@ -62,6 +67,8 @@ systemroot
taskkill taskkill
tasklist tasklist
tdbuildteamid tdbuildteamid
ucrt
ucrtd
unvirtualized unvirtualized
VCRT VCRT
vcruntime vcruntime

View File

@@ -1,14 +1,18 @@
Anup Anup
austdi austdi
arkthur
Ballmer Ballmer
bhoj bhoj
Bhojwani Bhojwani
Bluloco
carlos carlos
dhowett dhowett
Diviness Diviness
dsafa dsafa
duhowett duhowett
DXP
ekg ekg
eryksun
ethanschoonover ethanschoonover
Firefox Firefox
Gatta Gatta
@@ -20,6 +24,7 @@ Hernan
Howett Howett
Illhardt Illhardt
iquilezles iquilezles
italo
jantari jantari
jerrysh jerrysh
Kaiyu Kaiyu
@@ -33,7 +38,9 @@ leonmsft
Lepilleur Lepilleur
lhecker lhecker
lukesampson lukesampson
Macbook
Manandhar Manandhar
masserano
mbadolato mbadolato
Mehrain Mehrain
menger menger
@@ -62,12 +69,16 @@ Rincewind
rprichard rprichard
Schoonover Schoonover
shadertoy shadertoy
Shomnipotence
simioni
Somuah Somuah
sonph sonph
sonpham sonpham
stakx stakx
talo
thereses thereses
Walisch Walisch
WDX
Wellons Wellons
Wirt Wirt
Wojciech Wojciech

View File

@@ -0,0 +1,523 @@
# marker to ignore all code on line
^.*/\* #no-spell-check-line \*/.*$
# marker for ignoring a comment to the end of the line
// #no-spell-check.*$
# patch hunk comments
^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
# git index header
index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
# 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
data:[-a-zA-Z=;:/0-9+]*,\S*
# 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]+
# 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 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 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/(?:(?:forum/#!|d/)(?:msg|topics?|searchin)|a)/[^/\s"]+/[-a-zA-Z0-9$]+(?:/[-a-zA-Z0-9]+)*
# 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_?=]*
# 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 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}
# 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
# binanace
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?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_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-z]*
# ipfs url
/ipfs/[0-9a-z]*
# 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+
# getopts
\bgetopts\s+(?:"[^"]+"|'[^']+')
# ANSI color codes
(?:\\(?:u00|x)1b|\x1b)\[\d+(?:;\d+|)m
# URL escaped characters
\%[0-9A-F][A-F]
# 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-9]*[a-f]{3,}[0-9a-f]*
# sha-... -- uses a fancy capture
(['"]|&quot;)[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./]+
# 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}|u\d+)\b
# integrity
integrity="sha\d+-[-a-zA-Z=;:/0-9+]{40,}"
# https://www.gnu.org/software/groff/manual/groff.html
# man troff content
\\f[BCIPR]
# '
\\\(aq
# .desktop mime types
^MimeTypes?=.*$
# .desktop localized entries
^[A-Z][a-z]+\[[a-z]+\]=.*$
# Localized .desktop content
Name\[[^\]]+\]=.*
# IServiceProvider
\bI(?=(?:[A-Z][a-z]{2,})+\b)
# crypt
"\$2[ayb]\$.{56}"
# scrypt / argon
\$(?:scrypt|argon\d+[di]*)\$\S+
# Input to GitHub JSON
content: "[-a-zA-Z=;:/0-9+]*="
# Python stringprefix / binaryprefix
# 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
/.*/[gim]*\.test\(
# javascript match regex
\.match\(/[^/\s"]*/[gim]*\s*
# javascript match regex
\.match\(/\\[b].*?/[gim]*\s*\)(?:;|$)
# javascript regex
^\s*/\\[b].*/[gim]*\s*(?:\)(?:;|$)|,$)
# javascript replace regex
\.replace\(/[^/\s"]*/[gim]*\s*,
# Go regular expressions
regexp?\.MustCompile\(`[^`]*`\)
# sed regular expressions
sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
# go install
go install(?:\s+[a-z]+\.[-@\w/.]+)+
# 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 object suffix
-[0-9a-f]{10}-\w{5}\s
# posthog secrets
posthog\.init\((['"])phc_[^"',]+\g{-1},
# xcode
# xcodeproject scenes
(?:Controller|ID|id)="\w{3}-\w{2}-\w{3}"
# xcode api botches
customObjectInstantitationMethod
# font awesome classes
\.fa-[-a-z0-9]+
# 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|[,.])*
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
# French
# This corpus only had capital letters, but you probably want lowercase ones as well.
\b[LN]'+[a-z]{2,}\b
# latex
\\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+)
# 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])
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
# Note that the next example is no longer necessary if you are using
# to match a string starting with a `#`, use a character-class:
[#]backwards
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
# Compiler flags (Scala)
(?:^|[\t ,>"'`=(])-J-[DPWXY](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Compiler flags
#(?:^|[\t ,"'`=(])-[DPWXYLlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Compiler flags (linker)
,-B
# curl arguments
\b(?:\\n|)curl(?:\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]+)*
# 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-)/

View File

@@ -1,28 +1,39 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
(?:(?i)\.png$) (?:(?i)\.png$)
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)3rdparty/
(?:^|/)dirs$ (?:^|/)dirs$
(?:^|/)go\.mod$ (?:^|/)go\.mod$
(?:^|/)go\.sum$ (?:^|/)go\.sum$
(?:^|/)package-lock\.json$ (?:^|/)package(?:-lock|)\.json$
(?:^|/)sources(?:|\.dep)$ (?:^|/)sources(?:|\.dep)$
SUMS$ (?:^|/)vendor/
\.a$
\.ai$ \.ai$
\.avi$
\.bmp$ \.bmp$
\.bz2$
\.cer$ \.cer$
\.class$ \.class$
\.crl$ \.crl$
\.crt$ \.crt$
\.csr$ \.csr$
\.dll$ \.dll$
\.docx?$
\.drawio$
\.DS_Store$ \.DS_Store$
\.eot$ \.eot$
\.eps$ \.eps$
\.exe$ \.exe$
\.gif$ \.gif$
\.gitattributes$
\.graffle$ \.graffle$
\.gz$ \.gz$
\.icns$ \.icns$
\.ico$ \.ico$
\.jar$ \.jar$
\.jks$
\.jpeg$ \.jpeg$
\.jpg$ \.jpg$
\.key$ \.key$
@@ -30,28 +41,53 @@ SUMS$
\.lock$ \.lock$
\.map$ \.map$
\.min\.. \.min\..
\.mod$
\.mp3$ \.mp3$
\.mp4$ \.mp4$
\.o$
\.ocf$
\.otf$ \.otf$
\.pbxproj$ \.pbxproj$
\.pdf$ \.pdf$
\.pem$ \.pem$
\.png$
\.psd$ \.psd$
\.pyc$
\.runsettings$ \.runsettings$
\.s$
\.sig$ \.sig$
\.so$ \.so$
\.svg$ \.svg$
\.svgz$ \.svgz$
\.svgz?$
\.tar$ \.tar$
\.tgz$ \.tgz$
\.tiff?$
\.ttf$ \.ttf$
\.vsdx$ \.vsdx$
\.wav$
\.webm$
\.webp$
\.woff \.woff
\.woff2?$
\.xcf$ \.xcf$
\.xls \.xls
\.xlsx?$
\.xpm$ \.xpm$
\.yml$ \.yml$
\.zip$ \.zip$
^\.github/actions/spelling/
^\.github/fabricbot.json$
^\.gitignore$
^\Q.git-blame-ignore-revs\E$
^\Q.github/workflows/spelling.yml\E$
^\Qdoc/reference/windows-terminal-logo.ans\E$
^\Qsamples/ConPTY/EchoCon/EchoCon/EchoCon.vcxproj.filters\E$
^\Qsrc/host/exe/Host.EXE.vcxproj.filters\E$
^\Qsrc/host/ft_host/chafa.txt\E$
^\Qsrc/tools/closetest/CloseTest.vcxproj.filters\E$
^\XamlStyler.json$
^build/config/
^consolegit2gitfilters\.json$ ^consolegit2gitfilters\.json$
^dep/ ^dep/
^doc/reference/master-sequence-list.csv$ ^doc/reference/master-sequence-list.csv$
@@ -61,6 +97,7 @@ SUMS$
^src/host/runft\.bat$ ^src/host/runft\.bat$
^src/host/runut\.bat$ ^src/host/runut\.bat$
^src/interactivity/onecore/BgfxEngine\. ^src/interactivity/onecore/BgfxEngine\.
^src/renderer/atlas/
^src/renderer/wddmcon/WddmConRenderer\. ^src/renderer/wddmcon/WddmConRenderer\.
^src/terminal/adapter/ut_adapter/run\.bat$ ^src/terminal/adapter/ut_adapter/run\.bat$
^src/terminal/parser/delfuzzpayload\.bat$ ^src/terminal/parser/delfuzzpayload\.bat$
@@ -75,6 +112,6 @@ SUMS$
^src/tools/texttests/fira\.txt$ ^src/tools/texttests/fira\.txt$
^src/tools/U8U16Test/(?:fr|ru|zh)\.txt$ ^src/tools/U8U16Test/(?:fr|ru|zh)\.txt$
^src/types/ut_types/UtilsTests.cpp$ ^src/types/ut_types/UtilsTests.cpp$
^\.github/actions/spelling/ ^tools/ReleaseEngineering/ServicingPipeline.ps1$
^\.gitignore$ ignore$
^\XamlStyler.json$ SUMS$

View File

@@ -5,26 +5,19 @@ AAAAAABBBBBBCCC
AAAAABBBBBBCCC AAAAABBBBBBCCC
abcd abcd
abcd abcd
abcde
abcdef
ABCDEFG
ABCDEFGH
ABCDEFGHIJ ABCDEFGHIJ
abcdefghijk abcdefghijk
ABCDEFGHIJKLMNO ABCDEFGHIJKLMNO
abcdefghijklmnop abcdefghijklmnop
ABCDEFGHIJKLMNOPQRST ABCDEFGHIJKLMNOPQRST
abcdefghijklmnopqrstuvwxyz
ABCG ABCG
ABE ABE
abf abf
BBBBB BBBBB
BBBBBBBB BBBBBBBB
BBBBBBBBBBBBBBDDDD
BBBBBCCC BBBBBCCC
BBBBCCCCC BBBBCCCCC
BBGGRR BBGGRR
CCE
EFG EFG
EFGh EFGh
QQQQQQQQQQABCDEFGHIJ QQQQQQQQQQABCDEFGHIJ
@@ -33,7 +26,6 @@ QQQQQQQQQQABCDEFGHIJKLMNOPQRSTQQQQQQQQQQ
QQQQQQQQQQABCDEFGHIJPQRSTQQQQQQQQQQ QQQQQQQQQQABCDEFGHIJPQRSTQQQQQQQQQQ
qrstuvwxyz qrstuvwxyz
qwerty qwerty
QWERTYUIOP
qwertyuiopasdfg qwertyuiopasdfg
YYYYYYYDDDDDDDDDDD YYYYYYYDDDDDDDDDDD
ZAAZZ ZAAZZ

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,6 @@
http
www
easyrgb
php
ecma
rapidtables
WCAG WCAG
freedesktop
ycombinator
robertelder
kovidgoyal
leonerd
fixterms
winui winui
appshellintegration appshellintegration
mdtauk mdtauk
cppreference
gfycat gfycat
Guake Guake

View File

@@ -0,0 +1,62 @@
# reject `m_data` as there's a certain OS which has evil defines that break things if it's used elsewhere
# \bm_data\b
# 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:
#\bfit\(
# s.b. GitHub
\bGithub\b
# s.b. GitLab
\bGitlab\b
# s.b. JavaScript
\bJavascript\b
# s.b. Microsoft
\bMicroSoft\b
# s.b. another
\ban[- ]other\b
# s.b. greater than
\bgreater then\b
# s.b. into
#\sin to\s
# s.b. opt-in
\sopt in\s
# s.b. less than
\bless then\b
# s.b. otherwise
\bother[- ]wise\b
# s.b. nonexistent
\bnon existing\b
\b[Nn]o[nt][- ]existent\b
# s.b. preexisting
[Pp]re[- ]existing
# s.b. preempt
[Pp]re[- ]empt\b
# s.b. preemptively
[Pp]re[- ]emptively
# s.b. reentrancy
[Rr]e[- ]entrancy
# s.b. reentrant
[Rr]e[- ]entrant
# s.b. workaround(s)
#\bwork[- ]arounds?\b
# Reject duplicate words
\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s

View File

@@ -1,11 +1,6 @@
https://(?:(?:[-a-zA-Z0-9?&=]*\.|)microsoft\.com)/[-a-zA-Z0-9?&=_#\/.]* # See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
https://aka\.ms/[-a-zA-Z0-9?&=\/_]*
https://www\.itscj\.ipsj\.or\.jp/iso-ir/[-0-9]+\.pdf https?://\S+
https://www\.vt100\.net/docs/[-a-zA-Z0-9#_\/.]*
https://www.w3.org/[-a-zA-Z0-9?&=\/_#]*
https://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]*
https://(?:[a-z-]+\.|)github(?:usercontent|)\.com/[-a-zA-Z0-9?%&=_\/.]*
https://www.xfree86.org/[-a-zA-Z0-9?&=\/_#]*
[Pp]ublicKeyToken="?[0-9a-fA-F]{16}"? [Pp]ublicKeyToken="?[0-9a-fA-F]{16}"?
(?:[{"]|UniqueIdentifier>)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}(?:[}"]|</UniqueIdentifier) (?:[{"]|UniqueIdentifier>)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}(?:[}"]|</UniqueIdentifier)
(?:0[Xx]|\\x|U\+|#)[a-f0-9A-FGgRr]{2,}[Uu]?[Ll]{0,2}\b (?:0[Xx]|\\x|U\+|#)[a-f0-9A-FGgRr]{2,}[Uu]?[Ll]{0,2}\b
@@ -25,3 +20,77 @@ std::memory_order_[\w]+
D2DERR_SHADER_COMPILE_FAILED D2DERR_SHADER_COMPILE_FAILED
TIL_FEATURE_[0-9A-Z_]+ TIL_FEATURE_[0-9A-Z_]+
vcvars\w* vcvars\w*
ROY\sG\.\sBIV
!(?:(?i)ESC)!\[
!(?:(?i)CSI)!(?:\d+(?:;\d+|)m|[ABCDF])
# Python stringprefix / binaryprefix
\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)'
# Automatically suggested patterns
# hit-count: 3831 file-count: 582
# IServiceProvider
\bI(?=(?:[A-Z][a-z]{2,})+\b)
# hit-count: 71 file-count: 35
# Compiler flags
(?:^|[\t ,"'`=(])-[D](?=[A-Z]{2,}|[A-Z][a-z])
(?:^|[\t ,"'`=(])-[X](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# hit-count: 41 file-count: 28
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
# hit-count: 20 file-count: 9
# hex runs
\b[0-9a-fA-F]{16,}\b
# hit-count: 10 file-count: 7
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
# hit-count: 4 file-count: 4
# mailto urls
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
# hit-count: 4 file-count: 1
# ANSI color codes
(?:\\(?:u00|x)1b|\x1b)\[\d+(?:;\d+|)m
# hit-count: 2 file-count: 1
# latex
\\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+)
# hit-count: 1 file-count: 1
# 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}|u\d+)\b
# hit-count: 1 file-count: 1
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
# hit-count: 1 file-count: 1
# French
# This corpus only had capital letters, but you probably want lowercase ones as well.
\b[LN]'+[a-z]{2,}\b
# acceptable duplicates
# ls directory listings
[-bcdlpsw](?:[-r][-w][-sx]){3}\s+\d+\s+(\S+)\s+\g{-1}\s+\d+\s+
# C/idl types + English ...
\s(Guid|long|LONG|that) \g{-1}\s
# javadoc / .net
(?:[\\@](?:groupname|param)|(?:public|private)(?:\s+static|\s+readonly)*)\s+(\w+)\s+\g{-1}\s
# Commit message -- Signed-off-by and friends
^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$
# Autogenerated revert commit message
^This reverts commit [0-9a-f]{40}\.$
# vtmode
--vtmode\s+(\w+)\s+\g{-1}\s
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b

View File

@@ -1,22 +1,12 @@
^attache$ ^attache$
^attacher$ ^attacher$
^attachers$ ^attachers$
^spae$ benefitting
^spaebook$ occurences?
^spaecraft$ ^dependan.*
^spaed$ ^oer$
^spaedom$ Sorce
^spaeing$ ^[Ss]pae.*
^spaeings$ ^untill$
^spae-man$ ^untilling$
^spaeman$ ^wether.*
^spaer$
^Spaerobee$
^spaes$
^spaewife$
^spaewoman$
^spaework$
^spaewright$
^wether$
^wethers$
^wetherteg$

View File

@@ -1,20 +1,134 @@
# spelling.yml is blocked per https://github.com/check-spelling/check-spelling/security/advisories/GHSA-g86g-chm8-7r2p # spelling.yml is blocked per https://github.com/check-spelling/check-spelling/security/advisories/GHSA-g86g-chm8-7r2p
name: Spell checking name: Spell checking
# Comment management is handled through a secondary job, for details see:
# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions
#
# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment
# (in odd cases, it might actually run just to collapse a commment, but that's fairly rare)
# it needs `contents: write` in order to add a comment.
#
# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment
# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment)
# it needs `pull-requests: write` in order to manipulate those comments.
# Updating pull request branches is managed via comment handling.
# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list
#
# These elements work together to make it happen:
#
# `on.issue_comment`
# This event listens to comments by users asking to update the metadata.
#
# `jobs.update`
# This job runs in response to an issue_comment and will push a new commit
# to update the spelling metadata.
#
# `with.experimental_apply_changes_via_bot`
# Tells the action to support and generate messages that enable it
# to make a commit to update the spelling metadata.
#
# `with.ssh_key`
# In order to trigger workflows when the commit is made, you can provide a
# secret (typically, a write-enabled github deploy key).
#
# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
on: on:
pull_request_target:
push: push:
branches:
- "**"
tags-ignore:
- "**"
pull_request_target:
branches:
- "**"
tags-ignore:
- "**"
types:
- 'opened'
- 'reopened'
- 'synchronize'
issue_comment:
types:
- 'created'
jobs: jobs:
spelling: spelling:
name: Spell checking name: Spell checking
permissions:
contents: read
pull-requests: read
actions: read
outputs:
followup: ${{ steps.spelling.outputs.followup }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'"
concurrency:
group: spelling-${{ github.event.pull_request.number || github.ref }}
# note: If you use only_check_changed_files, you do not want cancel-in-progress
cancel-in-progress: true
steps: steps:
- name: checkout-merge - name: check-spelling
if: "contains(github.event_name, 'pull_request')" id: spelling
uses: actions/checkout@v2 uses: check-spelling/check-spelling@v0.0.21
with: with:
ref: refs/pull/${{github.event.pull_request.number}}/merge suppress_push_for_open_pull_request: 1
- name: checkout checkout: true
if: "!contains(github.event_name, 'pull_request')" check_file_names: 1
uses: actions/checkout@v2 spell_check_this: check-spelling/spell-check-this@prerelease
- uses: check-spelling/check-spelling@v0.0.19 post_comment: 0
use_magic_file: 1
extra_dictionary_limit: 10
extra_dictionaries:
cspell:software-terms/src/software-terms.txt
cspell:python/src/python/python-lib.txt
cspell:node/node.txt
cspell:cpp/src/stdlib-c.txt
cspell:cpp/src/stdlib-cpp.txt
cspell:fullstack/fullstack.txt
cspell:filetypes/filetypes.txt
cspell:html/html.txt
cspell:cpp/src/compiler-msvc.txt
cspell:python/src/common/extra.txt
cspell:powershell/powershell.txt
cspell:aws/aws.txt
cspell:cpp/src/lang-keywords.txt
cspell:npm/npm.txt
cspell:dotnet/dotnet.txt
cspell:python/src/python/python.txt
cspell:css/css.txt
cspell:cpp/src/stdlib-cmath.txt
check_extra_dictionaries: ''
comment-push:
name: Report (Push)
# If your workflow isn't running on push, you can remove this job
runs-on: ubuntu-latest
needs: spelling
permissions:
contents: write
if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
steps:
- name: comment
uses: check-spelling/check-spelling@v0.0.21
with:
checkout: true
spell_check_this: check-spelling/spell-check-this@prerelease
task: ${{ needs.spelling.outputs.followup }}
comment-pr:
name: Report (PR)
# If you workflow isn't running on pull_request*, you can remove this job
runs-on: ubuntu-latest
needs: spelling
permissions:
pull-requests: write
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
steps:
- name: comment
uses: check-spelling/check-spelling@v0.0.21
with:
checkout: true
spell_check_this: check-spelling/spell-check-this@prerelease
task: ${{ needs.spelling.outputs.followup }}

View File

@@ -734,7 +734,80 @@ namespace Microsoft::Terminal::Settings::Model::JsonUtils
{ {
til::color FromJson(const Json::Value& json) til::color FromJson(const Json::Value& json)
{ {
return ::Microsoft::Console::Utils::ColorFromHexString(Detail::GetStringView(json)); auto string{ Detail::GetStringView(json) };
if (!string.empty() && string.front() == '#')
{
return ::Microsoft::Console::Utils::ColorFromHexString(Detail::GetStringView(json));
}
if (til::starts_with(string, "rgba(") && til::ends_with(string, ")"))
{
static constexpr auto trimWhitespace = [](const std::string_view& str) {
auto beg = str.data();
auto end = str.data() + str.size();
for (; beg != end && *beg == ' '; ++beg)
{
}
for (; beg != end && end[-1] == ' '; --end)
{
}
return std::string_view{ beg, gsl::narrow_cast<size_t>(end - beg) };
};
static constexpr auto getParameter = [](std::string_view& str, const std::string_view& needle) {
return trimWhitespace(til::prefix_split(str, needle));
};
static constexpr auto parseRGB = [](const std::string_view& str) {
uint8_t v;
const auto last = str.data() + str.size();
const auto [end, ec] = std::from_chars(str.data(), last, v, 10);
THROW_HR_IF(E_INVALIDARG, ec != std::errc() || last - end > 1);
if (last != end)
{
THROW_HR_IF(E_INVALIDARG, *last != '%' || v > 100);
v = (v * 255 + 50) / 100;
}
return v;
};
static constexpr auto parseA = [](const std::string_view& str) {
double v;
const auto last = str.data() + str.size();
const auto [end, ec] = std::from_chars(str.data(), last, v, std::chars_format::general);
THROW_HR_IF(E_INVALIDARG, ec != std::errc() || last != end || v < 0 || v > 1);
return static_cast<uint8_t>(std::round(v * 255.0));
};
string = string.substr(5);
// s[rgba] - the s stands for "string".
const auto sr = getParameter(string, ",");
const auto sg = getParameter(string, ",");
auto sb = getParameter(string, ",");
auto sa = getParameter(string, ")");
if (sb.empty())
{
// a is optional in CSS' rgba().
// If we have something like rgba(1, 2, 3), then
// sr == "1"
// sg == "2"
// sb == ""
// sa == "3"
// because sa contains the parameter next to the ")".
// --> Move sa into sb.
sb = sa;
sa = {};
}
const auto r = parseRGB(sr);
const auto g = parseRGB(sg);
const auto b = parseRGB(sb);
const uint8_t a = sa.empty() ? 255 : parseA(sa);
return til::color{ r, g, b, a };
}
THROW_HR(E_INVALIDARG);
} }
bool CanConvert(const Json::Value& json) bool CanConvert(const Json::Value& json)
@@ -745,17 +818,23 @@ namespace Microsoft::Terminal::Settings::Model::JsonUtils
} }
const auto string{ Detail::GetStringView(json) }; const auto string{ Detail::GetStringView(json) };
return (string.length() == 7 || string.length() == 4) && string.front() == '#'; return ((string.length() == 7 || string.length() == 4) && string.front() == '#') ||
(til::starts_with(string, "rgba(") && til::ends_with(string, ")"));
} }
Json::Value ToJson(const til::color& val) Json::Value ToJson(const til::color& val)
{ {
return til::u16u8(val.ToHexString(true)); if (val.a == 255)
{
return fmt::format("#{:02X}{:02X}{:02X}", val.r, val.g, val.g);
}
return fmt::format("rgba({}, {}, {}, {:.6f})", val.r, val.g, val.g, static_cast<double>(val.a) / 255.0);
} }
std::string TypeDescription() const std::string TypeDescription() const
{ {
return "color (#rrggbb, #rgb)"; return "color (rgba(r,g,b,a), #rrggbb, #rgb)";
} }
}; };

View File

@@ -72,7 +72,7 @@ namespace til // Terminal Implementation Library. Also: "Today I Learned"
constexpr operator COLORREF() const noexcept constexpr operator COLORREF() const noexcept
{ {
return static_cast<COLORREF>(abgr & 0x00FFFFFFu); return static_cast<COLORREF>(abgr);
} }
#endif #endif