summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJosh Soref <2119212+jsoref@users.noreply.github.com>2021-12-02 06:17:00 -0500
committerGitHub <noreply@github.com>2021-12-02 12:17:00 +0100
commit841f3cb0bb7663fa1062ffc59acb7b4581dc1d0f (patch)
treea6d2d6471c5bc330281986a3b24eae6a6fde44eb /.github
parent46e63340eef243f25890e2178931919125c58aae (diff)
downloadzsh-841f3cb0bb7663fa1062ffc59acb7b4581dc1d0f.tar.gz
zsh-841f3cb0bb7663fa1062ffc59acb7b4581dc1d0f.tar.bz2
zsh-841f3cb0bb7663fa1062ffc59acb7b4581dc1d0f.zip
ci: add `check-spelling` action (#10470)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
Diffstat (limited to '.github')
-rw-r--r--.github/actions/spelling/README.md15
-rw-r--r--.github/actions/spelling/advice.md25
-rw-r--r--.github/actions/spelling/allow.txt0
-rw-r--r--.github/actions/spelling/excludes.txt41
-rw-r--r--.github/actions/spelling/expect.txt4489
-rw-r--r--.github/actions/spelling/patterns.txt73
-rw-r--r--.github/actions/spelling/reject.txt7
-rw-r--r--.github/workflows/spelling.yml95
8 files changed, 4745 insertions, 0 deletions
diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md
new file mode 100644
index 000000000..dcd237ba2
--- /dev/null
+++ b/.github/actions/spelling/README.md
@@ -0,0 +1,15 @@
+# check-spelling/check-spelling configuration
+
+File | Purpose | Format | Info
+-|-|-|-
+[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary)
+[allow.txt](allow.txt) | 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)
+[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only)
+[patterns.txt](patterns.txt) | 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)
+[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.
diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md
new file mode 100644
index 000000000..c83423a8e
--- /dev/null
+++ b/.github/actions/spelling/advice.md
@@ -0,0 +1,25 @@
+<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
+<details><summary>If the flagged items do not appear to be text</summary>
+
+If items relate to a ...
+* 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.
+
+* binary file.
+
+ Please add a file path to the `excludes.txt` file matching the containing file.
+
+ 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.
+
+ `^` 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).
+
+</details>
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/.github/actions/spelling/allow.txt
diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt
new file mode 100644
index 000000000..f1cfeefbb
--- /dev/null
+++ b/.github/actions/spelling/excludes.txt
@@ -0,0 +1,41 @@
+# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
+(?:^|/)(?i)COPYRIGHT
+(?:^|/)(?i)LICEN[CS]E
+(?:^|/)package(?:-lock|)\.json$
+(?:^|/)vendor/
+ignore$
+\.avi$
+\.ico$
+\.jpe?g$
+\.lock$
+\.map$
+\.min\..
+\.mod$
+\.mp[34]$
+\.png$
+\.wav$
+^\.github/
+^\Qplugins/archlinux/archlinux.plugin.zsh\E$
+^\Qplugins/cp/cp.plugin.zsh\E$
+^\Qplugins/extract/_extract\E$
+^\Qplugins/genpass/genpass.plugin.zsh\E$
+^\Qplugins/gitignore/gitignore.plugin.zsh\E$
+^\Qplugins/gnu-utils/gnu-utils.plugin.zsh\E$
+^\Qplugins/hitchhiker/fortunes/hitchhiker\E$
+^\Qplugins/jhbuild/jhbuild.plugin.zsh\E$
+^\Qplugins/jhbuild/README.md\E$
+^\Qplugins/jruby/jruby.plugin.zsh\E$
+^\Qplugins/kubectl/kubectl.plugin.zsh\E$
+^\Qplugins/lol/lol.plugin.zsh\E$
+^\Qplugins/mosh/mosh.plugin.zsh\E$
+^\Qplugins/npx/npx.plugin.zsh\E$
+^\Qplugins/powder/_powder\E$
+^\Qplugins/suse/suse.plugin.zsh\E$
+^\Qplugins/thor/_thor\E$
+^\Qplugins/universalarchive/_universalarchive\E$
+^\Qplugins/vagrant/vagrant.plugin.zsh\E$
+^\Qplugins/wp-cli/README.md\E$
+^\Qplugins/wp-cli/wp-cli.plugin.zsh\E$
+^\Qthemes/clean.zsh-theme\E$
+^\Qthemes/philips.zsh-theme\E$
+^\Qthemes/tonotdo.zsh-theme\E$
diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt
new file mode 100644
index 000000000..fc764f57a
--- /dev/null
+++ b/.github/actions/spelling/expect.txt
@@ -0,0 +1,4489 @@
+AAAAC
+aac
+aar
+abcdefghjkmnpqrstvwxyz
+ABRT
+absorbgitdirs
+abspath
+abtvfr
+acceptorthreads
+accessip
+ACDIM
+acking
+ackmate
+ackup
+ACLs
+acon
+aconf
+acp
+acpi
+acpitool
+acr
+acroread
+acs
+acsc
+acsp
+actionformats
+Adamantium
+adb
+adbd
+adben
+addgroups
+addhistory
+addon
+addprincipals
+addrport
+addrs
+addusergroups
+addwin
+adelcampo
+adg
+ADK
+adminalias
+adminport
+Admins
+adoc
+adu
+aeiouy
+afh
+afind
+afmagic
+afs
+afu
+agb
+agc
+agd
+agentpath
+agi
+agignore
+agli
+aglu
+agnoster
+agp
+agrimaldi
+ags
+agu
+agud
+agug
+aguu
+AHg
+ainv
+aip
+Airbender
+ajp
+ajs
+Akinori
+akoenig
+alacritty
+albers
+alberto
+alertmanager
+alex
+alexandre
+aliasfiletype
+aliaspassword
+allexport
+alloc
+allocstatus
+allownoncomponentcallers
+allpkgs
+alnum
+ALRM
+altchar
+Altoid
+alwayz
+amanda
+amazonaws
+amazonec
+ambyj
+amd
+amqp
+AMRD
+anche
+andi
+andrewrdwyer
+angularjs
+anley
+anlp
+annots
+anonymize
+anotherfolder
+ansible
+antrun
+anycommand
+apexcodefile
+apextests
+api
+apidocs
+apiversion
+apjanke
+apk
+apklib
+aplaybook
+appid
+applica
+applist
+appname
+apps
+appup
+aps
+apull
+arachnophobia
+araxis
+ARCHFLAGS
+archimport
+archlinux
+arci
+arcizan
+ard
+ardc
+ardnu
+ardnupc
+ardp
+ardpc
+ARGC
+args
+argset
+argslist
+argu
+argv
+ARGZERO
+arh
+arinit
+arl
+arli
+arpa
+arquillian
+artifactory
+asadmin
+asc
+asciicast
+asciidoc
+asciidoctor
+asciinema
+asdeps
+asdf
+askpass
+asm
+asmo
+asrc
+assem
+associatewiththread
+ASTs
+asyncreplication
+atlassian
+attr
+ATTRIBUTENAME
+aufs
+auin
+auinsd
+auloc
+auls
+aulst
+aumir
+auown
+auownloc
+auownls
+aur
+aure
+aurem
+aurep
+aurinsd
+aurph
+aurrep
+authmethods
+authorizationdb
+authpriv
+authrealmname
+authz
+autoapplyenabled
+autoclean
+autocomplete
+autocompleted
+autocompletion
+AUTOCONNECT
+autocrlf
+autodetermine
+autodie
+autoenv
+autohadboverride
+autoipd
+autojump
+autoload
+autolock
+autolocking
+autopep
+AUTOQUIT
+autoreload
+autoreloading
+autoremove
+autorun
+autoscale
+autoscaling
+autoselect
+autoshortened
+autosquash
+autostart
+autostash
+autoupdate
+auupd
+auupg
+availabilityenabled
+avh
+avi
+AVIT
+avivrosenberg
+avneet
+avz
+avzu
+aws
+awscli
+awslogs
+babakks
+backend
+backendconfig
+backtick
+backupconfig
+backupdir
+backupfile
+backuptheme
+bactrian
+baidu
+bamshuf
+bamtobed
+bamtofastq
+Barsi
+Basecamp
+basedir
+basedn
+basefile
+baseurl
+basevmdk
+bashcompinit
+bashdefault
+bashrc
+batchid
+baz
+bazel
+bazelbuild
+bbd
+bbdiff
+bbedit
+BBM
+bbpb
+bcc
+bcdfghjklmnpqrstvwxz
+bck
+bcn
+bcubc
+bcubo
+beaglidx
+becc
+bedcov
+BEDGRAPH
+BEDPE
+bedpetobam
+bedtobam
+bedtools
+Belarus
+bem
+benchmarker
+benchmem
+benchtime
+bento
+benwilcock
+berks
+Bertinelli
+bgnotify
+bgrewriteeaof
+bgsave
+binarynights
+bindaddress
+binded
+bindir
+bindkey
+binpack
+binstub
+bintray
+bip
+bira
+bisd
+bitboxer
+bitbucket
+bitswap
+blkio
+blockprofile
+blockprofilerate
+blod
+blog
+blogger
+blogspot
+blpop
+bluebox
+Bluetooth
+bobwilliams
+bodycc
+Bonetti
+bookmarked
+booknames
+bootclasspath
+bootscript
+bootsnipp
+borland
+borrowck
+Boudreau
+Boushh
+Bouvet
+BPtmux
+bpython
+bqr
+brainstormr
+Brainville
+branchformat
+branchname
+branchrefs
+brewp
+brewsp
+briancarper
+bringz
+Broadcom
+Brodersen
+brpop
+brpoplpush
+btannous
+btih
+btn
+btrestart
+btrfs
+btw
+bubc
+bubu
+buf
+buffersizebytes
+buflines
+bugfix
+bugfixes
+bugreport
+bugsnag
+Buildfile
+buildinstance
+buildnumber
+buildpackage
+buildpacks
+buildscript
+builtins
+bundlephobia
+bunzip
+Burkina
+Busybox
+bwaht
+Bxegedabagacad
+bypjyp
+bytebuffertype
+bytecode
+bytewise
+byznis
+bzip
+bzr
+cabextract
+CACERT
+cacertfile
+cacheinfo
+cachename
+caiifr
+Cakefile
+cakephp
+callvim
+calmd
+calways
+caname
+caniuse
+cano
+capath
+Capfile
+capify
+capistrano
+capistranorb
+capit
+CARETCOLOR
+caserta
+Caskroom
+catimg
+catserver
+catspeak
+cbr
+ccat
+cccmd
+ccflags
+ccl
+ccomp
+ccp
+cdargs
+cdcmd
+cdo
+CDPATH
+cdu
+cdx
+cdylib
+cecho
+cehlrtx
+celerybeat
+celeryev
+celerymon
+celeryproject
+Celso
+celsomiranda
+certfile
+certname
+certs
+cfa
+cfap
+cfbpk
+cfbs
+cfc
+cfdel
+cfdm
+cfdor
+cfds
+cfe
+cfev
+cfg
+cfgfile
+cfhu
+cfl
+cflg
+cflr
+cfp
+cfpc
+cfpm
+cfr
+cfsc
+cfsh
+cfsp
+cfsrt
+cfsrtall
+cfstg
+cfstp
+cfstpall
+cft
+cfup
+cfus
+cget
+cgi
+cgit
+cgr
+cgrm
+cgroup
+cgroupns
+cgu
+changelog
+changepassword
+changeset
+charmap
+charset
+chaselinks
+chcid
+chdir
+cheatsheet
+checkin
+checkinit
+checkonly
+checkports
+checkstyle
+cheeseshops
+Chesal
+chiark
+childlogdir
+chlrtx
+chmod
+chown
+chpwd
+chroot
+chruby
+chrubydirs
+chsh
+chucknorris
+chucknorrisfacts
+Chucktatorship
+Chucktober
+chunker
+cidfile
+cidr
+CIDs
+cidv
+ciici
+cim
+cirw
+citool
+civis
+cjk
+clamav
+classfile
+classloaders
+classloading
+classmap
+classname
+classpath
+CLDR
+cleardump
+cless
+CLICOLOR
+clientauthenabled
+clientid
+clipcmd
+clipcopy
+clippaste
+Clipperton
+clj
+Clojure
+closelim
+cloudfoundry
+cloudproviders
+CLOUDSDK
+clrz
+clustertype
+cmdargs
+cmdline
+cmds
+Cmp
+CMR
+cms
+cmt
+cnorm
+cobertura
+cocoapods
+codebase
+codeclimate
+codecompare
+codecoverage
+codegen
+codepen
+coderwall
+CODESET
+codium
+coffeescript
+colemak
+Colindres
+collectstatic
+colorbool
+colorcoded
+colorcoding
+colorify
+colorized
+colorls
+colorpair
+colorset
+colorspec
+colourised
+Colouriser
+colsearch
+COMMANDLINE
+commandlinefu
+committerdate
+Comoros
+compadd
+comparguments
+compassdoc
+compaudit
+compbiome
+compcall
+compctl
+compdef
+compdescribe
+compdump
+compfiles
+compfix
+compgen
+compgroups
+compilemessages
+compinit
+compl
+completemarks
+completionsdir
+complist
+componentname
+compopt
+compquote
+COMPREPLY
+COMPRESSSPARSESTATE
+compset
+compstate
+comptags
+comptry
+compvalues
+CONDA
+CONFG
+config
+configfile
+confighelp
+configmap
+configstoretype
+connectiondefinition
+connectionpoolid
+conssec
+Consts
+contacto
+containerd
+contenttype
+contextinitialization
+contextroot
+contoroll
+contreras
+controlargs
+conventionalcommits
+COOKBOOKNAME
+cookbookversion
+coproc
+copybuffer
+copydir
+copyfile
+copypaste
+copypasteable
+cordova
+coreutil
+cors
+cowsay
+cowthink
+cpan
+cpanm
+cpanminus
+cpantesters
+cpio
+cpp
+cprint
+cprof
+cpuprofile
+cpuset
+cpv
+createcachetable
+createdlastdays
+createsuperuser
+createtables
+creationretryattempts
+creationretryinterval
+cription
+crlf
+crm
+crockford
+cron
+cronjob
+crt
+cseuckr
+cseucpkdfmtjapanese
+csh
+csibm
+csiso
+csisolatin
+cskoi
+csksc
+css
+cssflow
+cssh
+csshiftjis
+csu
+csv
+csvfile
+ctag
+ctl
+ctlseqs
+ctx
+ctype
+culater
+Cunha
+curcontext
+curdir
+curhistsize
+curkeyword
+curpath
+currentartist
+currentdir
+currenttrack
+cursored
+curtheme
+Customisation
+CUTBUFFER
+cvccvc
+cvf
+cvhs
+cvjf
+cvs
+cvsexportcommit
+cvsimport
+cvsserver
+cvvis
+cvzf
+cwd
+cword
+cxx
+cya
+cycledleft
+cycledright
+cygpath
+cygstart
+cygwin
+cygwyn
+czf
+daemonize
+daemonized
+daemonizing
+daemonset
+dalias
+dango
+danielcsgomes
+darcs
+dartdoc
+dartlang
+dashdoc
+DATABAGNAME
+datafieldenc
+datasift
+datasourceclassname
+datastore
+datestamp
+datetime
+daylerees
+dbbolton
+dbconsole
+dbfile
+dbhome
+dbhost
+dbport
+dbshell
+dbsize
+dburl
+dbus
+dbuser
+dbvendor
+dbvendorname
+dccmd
+dcdn
+dce
+dck
+dcl
+dclf
+dco
+dcom
+dcommit
+dcps
+dcpull
+dcr
+dcrestart
+dcrm
+dcstart
+dcstop
+dcup
+dcupb
+dcupd
+ddg
+ddl
+deadwyler
+debian
+debman
+debuginfo
+debuglevel
+decr
+decrby
+DECSCUSR
+defaultleasettl
+defaultpackagedir
+Defaultsfdx
+defaultvs
+defaultwebmodule
+definitionfile
+definitionjson
+deinit
+deinstall
+delwin
+denable
+deno
+dependencyfile
+deploydir
+deployers
+deploymentplan
+deps
+depthfrom
+dequote
+dequoted
+deref
+derek
+descr
+dest
+DESTDIR
+destroot
+desttype
+devcenter
+devdocs
+devfolder
+devicehost
+devicemapper
+deviceport
+devlog
+devops
+devpath
+dfa
+dffx
+dflt
+dfmt
+dfs
+dhcp
+dhcpd
+dhcpip
+dht
+dhtrc
+dhtt
+diagdump
+didexit
+diffcore
+diffmerge
+diffs
+diffsettings
+difftool
+digitalocean
+diiirrrty
+dijcaf
+dircolors
+dircycle
+direnv
+dirhistory
+dirname
+dirpath
+dirpersist
+dirs
+dirstack
+DIRSTACKSIZE
+dirstat
+dirver
+disablemasking
+disksize
+diskutil
+displayconfiguration
+displayname
+distcache
+distcheck
+distclean
+distro
+dists
+django
+djangojs
+djangoproject
+djangopypi
+djview
+djvu
+dli
+dlist
+dls
+dman
+dmatching
+dmesg
+dmg
+dna
+dnf
+dnfc
+dnfgi
+dnfgl
+dnfgr
+dnfi
+dnfl
+dnfli
+dnfmc
+dnfp
+dnfr
+dnfu
+dng
+dnote
+dns
+dnsmasq
+dnsrr
+doap
+docck
+dockerd
+dockerdaemon
+dockerenv
+Dockerfile
+dockerport
+dockersearch
+docopt
+docset
+docstring
+doctl
+doctorjellyface
+dogenpunk
+doitclient
+domaindir
+domainname
+domainproperties
+domterm
+Donenfeld
+dongweiming
+donotwant
+dopts
+dotall
+dotenv
+dotest
+dotfile
+dotnet
+doubledash
+doublequotes
+dowant
+dpkg
+drca
+drcb
+drcg
+drcj
+drcm
+drcml
+drcr
+drct
+drcv
+drdmp
+dren
+dreurmail
+drf
+drfi
+drfr
+drfra
+drfu
+Driessen
+drif
+dris
+driverclassname
+drn
+drnew
+droid
+dropandcreatetables
+dropindexes
+droplr
+dropreplace
+droptables
+drpm
+drpu
+drst
+drup
+drush
+drushrc
+drv
+drvd
+drvg
+drw
+dsa
+dselect
+dsl
+dssh
+dst
+dsupport
+Dtest
+dtrace
+dts
+duckduckgo
+duf
+dumpconfig
+dumpdata
+dumpfiles
+duplessis
+durationdays
+durrheimer
+dutchcoders
+dvd
+dvi
+dwim
+dwr
+dylib
+eal
+eastermonday
+eauth
+ebuild
+ecd
+ecdsa
+echotc
+echoti
+ecma
+ecmerge
+ecosia
+ecto
+editorcmd
+edu
+eecms
+eed
+eeval
+efforted
+efile
+eframe
+egrep
+ein
+Eisentraut
+ejb
+ekzsh
+Eley
+ELGNRCIS
+elidable
+elif
+elim
+elisp
+elllen
+elot
+emacs
+emacsclient
+emacsfun
+emacswiki
+emails
+emberjs
+Emelianenko
+emoji
+emotty
+enablesnoop
+enacs
+endswith
+ent
+entrypoint
+enum
+envsubst
+envvar
+enwom
+eocw
+EOH
+eol
+eoq
+eow
+eoww
+eoy
+EPOCHREALTIME
+epochseconds
+eprof
+eread
+erl
+errlog
+Errored
+esac
+escripts
+essembeh
+etcd
+ethanschoonover
+ets
+etwlogs
+euc
+EUID
+EULAs
+eunit
+evals
+evalstatus
+evan
+eventlet
+eventname
+Evernote
+Evt
+exe
+executables
+execv
+exfxcxdxbxbxbxbxbxbxbx
+exfxcxdxbxegedabagacad
+existentials
+exitcode
+exoscale
+expandvars
+expaning
+expireat
+expl
+explaintypes
+explicitouter
+expn
+expr
+exps
+exs
+extcmd
+extdirs
+extendedglob
+externalid
+extmethods
+fabfile
+facebook
+factoryclass
+faidx
+failconnection
+failfast
+failurefatal
+fakeroot
+faqs
+fargs
+Faroe
+fasd
+FASTA
+fastcgi
+fastfile
+fastprint
+FASTQ
+favlist
+fbterm
+fcap
+Fcart
+fcgi
+Fcrt
+fcss
+fdfind
+fdlimit
+feditor
+fedoraproject
+felipe
+felixr
+ffls
+ffp
+ffrm
+ffsync
+fghijk
+fgrep
+Fiala
+fieldlist
+Filemode
+filepath
+filesize
+filestore
+filesystem
+filetype
+filevaultmaster
+FILLBAR
+filtername
+findpeer
+findprovs
+finetune
+firefox
+firewalld
+firewalls
+firstline
+fishshell
+fitzpatrick
+fixmate
+fixme
+fixperms
+FIXTERM
+fizsh
+fjs
+flagstat
+flatlist
+flattach
+flc
+fldoc
+flget
+flickr
+flowgraph
+flowtype
+flr
+fluentd
+flup
+flushall
+flushdb
+flv
+fnd
+fnm
+fns
+Fnv
+Folgers
+fontello
+foodcritic
+foqtam
+forall
+forceoverwrite
+forceupgrade
+foreach
+forrest
+fortunecity
+forw
+fosmid
+fotqoh
+fpath
+fprof
+fqn
+framep
+frecency
+frecent
+freebsd
+freenode
+freqs
+fri
+Friesel
+fromaddress
+frontend
+frontmost
+fsc
+fscache
+fsck
+fsl
+fsmonitor
+FSsh
+fstgpy
+ftp
+fts
+fucnul
+func
+funcsourcetrace
+functrace
+funtoo
+Futuna
+futuret
+fwl
+fwp
+fwr
+fwrp
+fzf
+fzfdirs
+gaa
+gallifrey
+gamc
+Gamera
+gamscp
+gapt
+gasconfig
+Gatorade
+gatsbyjs
+gav
+gba
+gbd
+gbda
+gbk
+gbl
+gbnm
+gbr
+gbs
+gbsb
+gbsg
+gbsr
+gca
+gcam
+gcan
+gcasm
+gcb
+gcc
+gccd
+gccgo
+gccgoflags
+gcf
+gcflags
+gch
+gcl
+gclean
+gcloud
+gcm
+gcmsg
+gcn
+gco
+gcor
+gcount
+gcp
+gcpa
+gcpc
+gcplogs
+gcr
+gcs
+gcsm
+gcssm
+gdc
+gdca
+gdct
+gdcw
+gdd
+gdm
+gdnolock
+gdt
+gdup
+gdv
+gdw
+geca
+gecb
+gecho
+geclup
+gecr
+geeknote
+gegi
+geh
+gei
+geiall
+gelcyv
+gelf
+geli
+gemb
+gemfile
+gemoji
+gemp
+gemset
+gemspec
+gemy
+generatekey
+generatermistubs
+genomecov
+genpass
+genpaths
+genzshcomp
+geoe
+geoff
+geoffgarside
+getattr
+getbit
+getcomposer
+getdir
+geteip
+getenv
+getfasta
+getgb
+getip
+getline
+getln
+getopt
+getrange
+getset
+gettext
+geun
+gevent
+Geza
+gezalore
+gfa
+gfg
+gfl
+gflf
+gflff
+gflfp
+gflfpll
+gflh
+gflhf
+gflhp
+gfli
+gflr
+gflrf
+gflrp
+gfo
+gga
+ggf
+ggfl
+ggl
+ggp
+ggpnp
+ggpull
+ggpur
+ggpush
+ggsup
+ggu
+ghci
+ghf
+ghff
+ghfh
+ghfr
+ghfu
+ghh
+ghostrevery
+gignore
+gignored
+gimmeh
+giobi
+gistcomment
+gitbranch
+gitbranchsize
+gitcomp
+gitcompadd
+gitcompappend
+gitcompletion
+gitdir
+gitex
+gitfast
+gitflow
+github
+gitignore
+gitinfo
+gitk
+gitmodules
+gitpod
+GITSS
+gitstatus
+gitstring
+gitweb
+givero
+gke
+gkrellmd
+glfsi
+glfsls
+glfsmi
+glfst
+glg
+glgg
+glgga
+glgm
+glgp
+glidenote
+glo
+globalias
+globals
+globbing
+globsubst
+glods
+glog
+gloga
+glol
+glola
+glp
+gls
+gma
+gmail
+gmom
+gmtl
+gmtlvim
+gmum
+Gneat
+Gniazdowski
+gnore
+gnupg
+goc
+godoc
+Godzilla
+gof
+gofa
+gofmt
+goga
+Gohr
+golang
+gom
+GOMAXPROCS
+Gomes
+Gonz
+goodreads
+google
+googlecode
+gop
+gopath
+gopb
+GOROOT
+goroutine
+gota
+gpf
+gpg
+gpgconf
+gplfs
+GPLv
+gpoat
+gpr
+gpristine
+gpsup
+gpu
+gpv
+gradle
+gradlew
+graphviz
+grb
+grba
+grbc
+grbd
+grbi
+grbm
+grbo
+grbom
+grc
+greenend
+greer
+grename
+grep
+grepping
+grev
+grh
+grhh
+GRIMALDI
+grk
+Grlm
+grm
+grmc
+grml
+grmv
+groh
+grok
+Grosenbach
+groupby
+groupinstall
+grouplist
+groupremove
+groupsmap
+growlnotify
+grrm
+grset
+grss
+grst
+grt
+gru
+gruntfile
+grup
+grv
+gsb
+gsd
+gsemet
+gsh
+gsi
+gsps
+gsr
+gss
+gst
+gsta
+gstaa
+gstall
+gstc
+gstd
+gstl
+gstp
+gstu
+gsu
+gsub
+gsw
+gswc
+gswd
+gswm
+gtb
+gtfo
+gtl
+gts
+gtv
+gua
+Guake
+Guerci
+gui
+guidovansteen
+guitool
+gulpfile
+gulpjs
+gunignore
+gunwip
+gunzip
+gupa
+gupav
+gupv
+gvim
+gvimdiff
+gwc
+gwch
+gwip
+gwt
+Gxfxcxdxbxegedabagacad
+gxvx
+gyazo
+Gyver
+gzip
+Hackage
+Hacktoberfest
+hackzor
+hacluster
+hadouken
+hai
+haldaemon
+Halis
+Hamelink
+hammertest
+hanami
+hanamirb
+har
+hardcoded
+hardlinks
+hardstatus
+harishnarayanan
+hashh
+Hashicorp
+haskell
+haskellstack
+Hasklig
+hawaga
+hax
+HBAR
+hbm
+Hcode
+hda
+hdc
+hdd
+hdel
+hdp
+hdrs
+hdtp
+hdv
+hea
+healthcheck
+healthcheckerinterval
+healthcheckertimeout
+healthcheckerurl
+heduled
+heg
+Helens
+helpmojo
+heroku
+hexdocs
+hexdump
+hexists
+hga
+hgb
+hgba
+hgbk
+hgc
+hgca
+hgchangeset
+hgco
+hgd
+hged
+hget
+hgetall
+hgi
+hgic
+hgl
+hglg
+hglgp
+hglr
+hgm
+hgo
+hgoc
+hgp
+hgrc
+hgrep
+hgs
+hgsl
+hgun
+hhatto
+hhh
+hidefiles
+highlighter
+hincrby
+HISTCMD
+HISTFILE
+HISTNO
+historywords
+histsize
+histsubstrsrch
+hitokoto
+hkeys
+hkscs
+hlen
+hmget
+hmset
+Hocevar
+hocho
+hoeg
+Homeboy
+homepage
+hostip
+hostname
+hostpath
+hotfix
+hotfixes
+hotlist
+hotpink
+howto
+howtorun
+hpodder
+href
+hrg
+hscolour
+hscroll
+hset
+hsetnx
+hsi
+hsp
+hsqldb
+htm
+html
+htmlsingle
+htop
+htslib
+HTT
+http
+httpd
+httpie
+httplisteners
+httpparams
+httpsrouting
+httpstatus
+hubflow
+hukkan
+humza
+huyy
+hvals
+hyperlink
+hypermedia
+hyperv
+hypervisor
+iam
+ian
+ianchesal
+ibest
+icanhas
+icanhazip
+icba
+icbi
+icc
+icode
+icpaa
+icpai
+icpra
+icpri
+icra
+icri
+icrosoft
+icrsa
+icrsi
+idlekeytimeoutseconds
+idletimeout
+idmv
+idx
+idxstats
+ietf
+ifargs
+ifconfig
+iflist
+iglob
+ignoredescriptoritem
+ignoreerrors
+ignorenonexistent
+ignorewarnings
+igv
+ihasbucket
+iiop
+iiopport
+ilikenwf
+ilkka
+ima
+imageshack
+imap
+imatch
+imatches
+img
+imgur
+iminurbase
+imnp
+imonit
+impl
+implicits
+importpath
+inbox
+incrby
+indexopts
+inet
+infocmp
+ini
+initsql
+inkytonik
+inl
+inliner
+inlining
+inplace
+inprogress
+Inproper
+inputenc
+inr
+insecureskipverify
+insns
+inspectdb
+inspr
+instagram
+Installable
+installationkey
+installationkeybypass
+installdeps
+installdir
+installsuffix
+instancealias
+instanceport
+instanceurl
+instaweb
+instrs
+integ
+Intellij
+interactivecomments
+interdiff
+interfacename
+interoperability
+interp
+Intf
+inur
+invicem
+iojs
+iokit
+ionescu
+ionicframework
+iops
+ioreg
+ipa
+ipaddr
+ipam
+ipamdriver
+ipapp
+ipc
+ipcidr
+ipe
+ipfs
+ipld
+ipns
+IPREFIX
+ipsw
+iptables
+ipv
+ipython
+irb
+irc
+IRTY
+isconnectvalidatereq
+isdefaultprovider
+isdeleted
+isearch
+isfile
+isisolationguaranteed
+isodate
+isodatesec
+isolationlevel
+isredeploy
+istio
+ISUFFIX
+isundeploy
+iterm
+itertools
+itunes
+ivan
+Ivoire
+ixfuk
+izakaya
+ize
+jacc
+jaccard
+jaddr
+jaischeema
+jakefile
+jakejs
+Janke
+japvyz
+jarfile
+JARIN
+jarsigner
+javabootclasspath
+javac
+javadoc
+javaextdirs
+javamail
+javap
+javascript
+javax
+jbm
+jboss
+jcon
+jdbc
+jdc
+jdcds
+jde
+jdeps
+JDK
+jdkinternals
+jdl
+jdlr
+jdm
+jdmds
+jdwp
+jeb
+jecdyq
+ject
+Jedis
+jeffmhubbard
+jenv
+jenvdir
+jepgad
+jerryling
+jestjs
+jex
+jexec
+jfrog
+jgitflow
+jgpagent
+jid
+jimhester
+jimweirich
+jira
+jis
+jisse
+jkc
+jkenabled
+JLine
+jlist
+jmc
+jmsdbpassword
+jmsdest
+jmx
+jndi
+jndilookupname
+jnrowe
+jobid
+jobspec
+jobstates
+jobtexts
+jof
+johnhamelink
+joly
+jonas
+jonmosco
+jorge
+journald
+jpeg
+jpg
+jpo
+jprofile
+jql
+jquery
+jra
+jraw
+jrel
+jreld
+jrm
+jrmds
+jrmrel
+jrmsas
+jrp
+jrs
+jrspec
+jruby
+jsa
+jsh
+jshc
+jshm
+json
+jsonfunc
+jsonpath
+jsontool
+jsp
+jspa
+jssl
+jst
+jstj
+jsu
+jsw
+jukie
+junegunn
+junex
+junit
+junkbust
+JUNKFOOD
+Juraj
+jvenant
+jvm
+jvmargs
+jvmoptions
+jwt
+jwtkeyfile
+jxr
+kajrod
+kalsi
+kapeli
+kapow
+kate
+Kaving
+kbd
+kca
+kcbt
+kccc
+kcdc
+kcgc
+kclean
+kcn
+kcp
+kcsc
+kcub
+kcuc
+kcud
+kcuf
+kcuu
+kdch
+kdcj
+kdcm
+kdd
+kde
+kdel
+kdelcj
+kdelcm
+kdeld
+kdelf
+kdeli
+kdelno
+kdelns
+kdelp
+kdelpvc
+kdelsa
+kdelsec
+kdelss
+kdi
+kdialog
+kdiff
+kdm
+kdno
+kdns
+kdp
+kdpvc
+kds
+kdsa
+kdsec
+Keanu
+kecj
+kecm
+keds
+keepfailedstubs
+keepreposdir
+keepstate
+kei
+kepvc
+kerndeb
+kes
+keti
+kevinkirkup
+kexec
+kextload
+kextunload
+keybindings
+keycap
+keychain
+keyfile
+keygen
+keymap
+keymetrics
+keypair
+keyring
+keyshares
+keysize
+keyspace
+keythreshold
+KEYTIMEOUT
+keytooloptions
+keywordisfresh
+keywordmsg
+keywordquickly
+kga
+kgaa
+kgcj
+kgcm
+kgd
+kgdsw
+kgdw
+kgdwide
+kgi
+kgno
+kgns
+kgp
+kgpl
+kgpn
+kgpvc
+kgpvcw
+kgpw
+kgpwide
+kgrs
+kgs
+kgsec
+kgssw
+kgsswide
+kgsw
+kgswide
+Khas
+khome
+killall
+killit
+Kindergarteners
+Kitts
+kiwiirc
+kiwish
+kjx
+klf
+Klingberg
+knative
+kni
+knifecmd
+knifesubcmd
+knp
+knu
+koenig
+Kombat
+kompare
+konsole
+kotlin
+kotlintest
+kpf
+kphoen
+kpkg
+kpp
+kres
+krh
+Krivitsky
+krsd
+krsss
+kru
+ksc
+ksd
+ksh
+ksharrays
+kshautoload
+kshglob
+kshoptionprint
+ksshaskpass
+ksss
+kthxbai
+kts
+kube
+kubeconfig
+kubectl
+kubectx
+kubens
+kubeoff
+kubeon
+kubernetes
+kungfoo
+Kurapati
+kwargs
+kypkvcw
+Kyrgyzstan
+Lacheze
+lambdalift
+lando
+langinfo
+laravel
+lart
+lastcategory
+lastcmd
+lastfull
+lastrun
+lastsave
+launchctl
+lazyconnectionassociation
+lazyconnectionenlistment
+lazyvals
+lbenableallapplications
+lbenableallinstances
+lbenabled
+lblue
+lbname
+lbpolicy
+lbpolicymodule
+lbtargets
+lbuf
+LBUFFER
+lbweight
+lcmd
+ldap
+ldflags
+ldot
+leakreclaim
+leaktimeout
+leavebrowseropen
+lein
+leiningen
+lemy
+len
+Lengyel
+leonhartx
+LESSCLOSE
+lesskey
+LESSKEYIN
+LESSOPEN
+letcat
+leter
+lexduv
+lexer
+lfs
+lho
+lhs
+libc
+libedit
+libexec
+libnotify
+libp
+libreadline
+libsecret
+lifecycle
+lighthouseapp
+limegreen
+lindex
+linearizer
+linewords
+linkcheck
+linkname
+linsert
+linux
+linuxcommando
+linuxcontainers
+linuxmain
+liquibase
+listeneraddress
+listenerport
+livecheck
+liveserver
+llc
+LLCORNER
+llen
+llr
+llvm
+lmnop
+lname
+loadconfig
+loaddata
+loadorder
+localhost
+localonly
+localoptions
+localtime
+localtraps
+lockdown
+lockfile
+lodash
+logcat
+logdriver
+logentries
+logfile
+logid
+loginurl
+loglevel
+logname
+logreportederrors
+logrotate
+logtype
+lol
+lowerip
+lpop
+lpr
+lpush
+lpushx
+lrange
+lrbu
+LRCORNER
+lrem
+lrh
+lrp
+lrt
+lrunzip
+lrz
+lrzip
+lrzuntar
+lsa
+lsb
+lscolors
+lset
+lsof
+lstheme
+lstrip
+lto
+ltrim
+lubs
+lucentbeing
+lvi
+lways
+lwc
+lwd
+lxc
+lxd
+lzcat
+lzip
+lzma
+lzo
+lzop
+LZW
+Maarten
+macos
+macports
+macromates
+Maeda
+Magento
+magerun
+magicequalsubst
+magick
+mailhost
+mailinfo
+mailmap
+mailnull
+mailrc
+mailsplit
+mailuser
+mainporcelain
+maintail
+maintainership
+makecache
+MAKEFLAGS
+makemessages
+makemigrations
+makewindows
+managedreleased
+managepy
+manni
+manpage
+manpath
+mapcar
+mapfile
+mappedpassword
+mappedusername
+markname
+markpath
+maskfasta
+maskray
+masq
+massimiliano
+matchconnections
+mathfunc
+Mattern
+Matth
+matthewratzloff
+matthr
+maxbytes
+maxchildren
+maxconnectionscount
+maxconnectionusagecount
+maxdepth
+maxleasettl
+maxpoolsize
+maxqueuesize
+maxrank
+maxrate
+maxrequests
+maxspare
+maxtasksperchild
+maxthreadpoolsize
+maxwait
+Mayen
+Mayra
+mbean
+mbegin
+mbologna
+mbox
+mboxrd
+mbp
+mca
+mcl
+mcm
+mco
+mcornella
+mct
+mdapi
+mdb
+mde
+mdi
+mdn
+mds
+meanlife
+mediawiki
+megazord
+meh
+Mek
+mekanics
+memprofile
+memprofilerate
+memq
+menuselect
+MENUSIZE
+mergetool
+mergewebxml
+merkledag
+Mery
+messagebus
+messagestoretype
+metacpan
+metadata
+metricscollector
+mfa
+mfaerevaag
+mfs
+mget
+miam
+michelebologna
+microk
+microsoft
+middleware
+midsommar
+midsommarafton
+mikeh
+millis
+mindepth
+minfds
+minidisc
+minikube
+minlogprob
+minprocs
+minspare
+minthreadpoolsize
+mirko
+mirrorlist
+mixin
+mkcd
+mkdir
+mktag
+mktemp
+mktree
+mkv
+mkvirtualenv
+mla
+mldonkey
+Mleb
+MLH
+mli
+mlo
+mlog
+mlp
+mls
+mlterm
+MMA
+mmap
+mmin
+mng
+mnt
+moar
+modded
+modifiedlastdays
+modulename
+Moldova
+mongocli
+mongodb
+monit
+monitorable
+monokai
+Morote
+Mosco
+mosh
+mostfrequent
+MOTD
+mountpoint
+mov
+moyai
+mozilla
+mpa
+mpeg
+mpileup
+mpkg
+mplayer
+mplex
+mpr
+mputniorz
+mqhost
+mqpassword
+mqport
+mquser
+mre
+mrp
+mset
+msetnx
+msgnum
+msgs
+msh
+msil
+msp
+mst
+msvs
+msw
+msys
+msysgit
+mtime
+mtu
+Mudkipz
+multiaddresses
+multibase
+multicastaddress
+multicastport
+multicov
+multihashes
+multiinter
+multiline
+multios
+multiset
+mumpub
+munication
+MURI
+muscato
+mutex
+muxer
+mvim
+mvn
+mvnag
+mvnboot
+mvnc
+mvncd
+mvnce
+mvnci
+mvncie
+mvncini
+mvncist
+mvncisto
+mvncom
+mvncp
+mvnct
+mvncv
+mvncvst
+mvnd
+mvndocs
+mvndt
+mvne
+mvnfmt
+mvnjetty
+mvnp
+mvnqdev
+mvnsrc
+mvnt
+mvntc
+mvnw
+Mvt
+Myanmar
+myapp
+myargs
+myd
+mydeb
+myers
+myfile
+myfirstnamemylastname
+mygit
+myissues
+mymark
+myns
+myprop
+mypy
+myrole
+myserver
+mysql
+mysqladmin
+mysqlrestart
+mysqlstart
+mysqlstatus
+mysqlstop
+mytime
+myuser
+myvalue
+myvirtualenv
+myzsh
+nables
+nagios
+naliases
+nameddirs
+namespace
+namesys
+nanoant
+nanoc
+Narayanan
+Naruto
+nativelibrarypath
+ncd
+ncipe
+NCOLOR
+ncpu
+ncs
+ncv
+ndjson
+NDUw
+NEm
+nenv
+neovim
+netbsd
+netdump
+netloc
+netmask
+netstat
+networkdriver
+networklisteners
+neuralsandwich
+newcons
+newpl
+newvol
+nextgenthemes
+nfsnobody
+nfunctions
+nginx
+ngnix
+ngth
+nhelp
+nhistory
+nhughes
+nicoulaj
+Nicoulaud
+nixos
+nkeywords
+nkill
+nle
+nlinux
+nlist
+nmap
+nmatches
+Nmh
+Nms
+Nmw
+noacl
+noancestors
+noargs
+noautonamedirs
+noautopushd
+noblock
+nobootcp
+nobreak
+nocache
+nochunk
+nocleanup
+nocolor
+nocopy
+nocorrect
+nodaemon
+nodedir
+nodefaultpolicy
+nodegroup
+nodehost
+nodeid
+nodejs
+nodense
+nodestatus
+noexec
+noexpand
+noglob
+noheading
+nohelpers
+nohup
+noinput
+nojline
+noksh
+nomadproject
+nomnom
+nomz
+nonamespace
+nondistributable
+nongnu
+NONINFRINGEMENT
+nonomatch
+NONSELECTABLE
+nontransactionalconnections
+nopassword
+noposixbuiltins
+noprofile
+noprompt
+nopromptsubst
+noptions
+nopushdminus
+norc
+noreload
+NORMARG
+NORRIS
+noshortloops
+noshwordsplit
+nospace
+nosplash
+nostatic
+nostatus
+nostream
+notactive
+notailcalls
+notest
+nothreading
+notifu
+notnull
+nounit
+noverbose
+nowai
+nowarn
+noword
+noyes
+NPAGE
+npanelize
+npm
+npmd
+npmg
+npmi
+npmjs
+npmrc
+npmst
+npmt
+npr
+nproc
+npu
+npx
+nroff
+nscd
+nsu
+nthemes
+ntlp
+ntp
+ntu
+nubxa
+nuc
+nuget
+numstat
+nvcsformats
+nvie
+nvimdiff
+nvm
+nvmrc
+Oakv
+oanward
+oathtool
+OAuth
+objectname
+objectsize
+objecttype
+obsrun
+obtw
+octocat
+octozen
+oden
+ofd
+ogg
+ogm
+ohmyz
+ohmyzsh
+oid
+oldp
+oldpatmat
+OLDPWD
+OMITSPARSESTATE
+OMMIT
+omz
+omztemp
+onbehalfof
+oneline
+onlyrepos
+onoz
+ooanward
+oom
+openbsd
+opendiff
+openr
+openshift
+opensource
+openssh
+openstack
+opensuse
+openvpn
+openw
+OPTARG
+optimisations
+OPTIND
+orderby
+orgdir
+orgs
+oris
+ority
+orm
+ornicar
+orss
+osascript
+osname
+osscan
+ostype
+osver
+osx
+oth
+otp
+otpcode
+Ouellet
+oug
+outfh
+outfile
+outfilebase
+outfilename
+outlog
+outputdir
+outputtedto
+Outputters
+pacac
+pacaur
+pacdisowned
+pacfiles
+pacfileupg
+pacin
+pacinsd
+packagecreaterequestid
+packageid
+packagekitd
+packagename
+packageobjects
+packagephobia
+packagetype
+packageversionid
+paclist
+pacloc
+pacls
+paclsorphans
+pacman
+pacmanallkeys
+pacmansignkeys
+pacmir
+pacoc
+pacown
+pacre
+pacrem
+pacrep
+pacrmorphans
+pacupd
+pacupg
+pacweb
+pagage
+pagename
+painsd
+pairtobed
+pairtopair
+paloc
+palst
+pamc
+pame
+pamf
+pamfa
+pamir
+pamj
+paml
+pamm
+pamn
+pamp
+pampp
+pamr
+pamt
+panelize
+paorph
+paperclips
+paqf
+paqft
+paql
+paqr
+paqt
+paqw
+paralint
+params
+parem
+parep
+PARGON
+parhaat
+paroc
+parseable
+parseopt
+parwok
+passivepopup
+passphrase
+passthrough
+passthru
+passwd
+passwordstore
+pastebin
+pasu
+patchformat
+pathspec
+patmat
+patshead
+paupd
+paupg
+pausedservices
+pavic
+paypal
+paypalobjects
+pbcopy
+pbi
+pbl
+pbo
+pbpaste
+pbs
+pbu
+pcap
+pch
+pchk
+pcl
+pcmode
+pcpu
+PCR
+pcre
+pdf
+PDoc
+peb
+peepcode
+peerid
+pem
+percol
+perflog
+perl
+perlbrew
+perldoc
+permset
+permsetname
+petere
+peterhoeg
+Pfenniger
+pfs
+pgp
+pgpkeys
+pgr
+pgrep
+pgs
+phab
+phing
+phome
+php
+phx
+pid
+pidev
+pidfile
+pidof
+pigz
+pipenv
+pipestatus
+pipfile
+pipir
+piplist
+pipreq
+pipunall
+pipupall
+Pitcairn
+pjdb
+pjo
+PKGBUILD
+pkgfile
+plaetinck
+planetargon
+playlists
+playpause
+ple
+pleted
+plist
+Plug'n
+plugin
+pluginsdir
+plz
+pmat
+pmd
+pmin
+pmset
+png
+pnp
+podfile
+podspec
+policyconfigfactoryclass
+policyproviderclass
+polipo
+polkitd
+poo
+poolname
+poolresize
+Poorter
+popd
+Popen
+porcheron
+portbase
+portdir
+Portfile
+portlist
+portname
+posix
+possen
+posteo
+posterasure
+postgres
+postinstallurl
+posva
+powd
+powed
+Powerline
+poweroff
+powershell
+powify
+powit
+PPAGE
+ppap
+ppid
+ppy
+precache
+precaire
+precmd
+precompilejsp
+precompilewait
+predef
+preexec
+prefetching
+prefiltered
+prefork
+preload
+premajor
+preminor
+prepatch
+prepends
+prepopulate
+prettylist
+previewer
+prevword
+pri
+princ
+principalsmap
+printenv
+printf
+printflags
+printprompt
+privhist
+privoxy
+procfs
+procs
+prodlog
+progfile
+projectname
+PROMPTCOLOR
+PROMPTPREFIX
+promptsize
+promptsubst
+promptvars
+propget
+proplist
+protobuf
+providertype
+prun
+pscpu
+pseudoword
+psgrep
+psh
+psmem
+psprint
+pstadler
+pstree
+psu
+psubscribe
+psy
+psykorebase
+pthree
+ptot
+ptree
+pubgrub
+publishwait
+pubsub
+puni
+punsubscribe
+puo
+pushd
+pushdefault
+pushdf
+pushdignoredups
+pushdminus
+pushdsilent
+pushln
+pushremote
+pushurl
+Putniorz
+pvc
+pvenv
+pvm
+pwd
+PWDCASECORRECT
+PWDLEN
+pwdsize
+pwdx
+pwgen
+pwh
+pwned
+pxd
+pxy
+pybundles
+pyc
+pycache
+pyclean
+pyenv
+pyenvdirs
+pyfind
+pygmentize
+pygments
+pygrep
+pylint
+pypa
+pypi
+pytb
+pytest
+pythonhosted
+pythonpath
+pythonrc
+PYTHONSTARTUP
+PYTHONUSERBASE
+pyuserpaths
+Qdt
+qiqmiq
+qkey
+qlmanage
+qpwd
+Qql
+Qqo
+qqq
+qqwtzgejwgqve
+Qtdq
+quarkus
+quicklisp
+quickstart
+quiltimport
+qunit
+qunitjs
+quotationspage
+quotedir
+quu
+quux
+qwant
+qwerty
+qxtm
+qyjti
+rabin
+rackspace
+rackup
+radvd
+raek
+Rakefile
+raname
+randomkey
+rangepos
+rar
+ratijas
+rawurldecode
+rawurlencode
+rbenv
+rbenvdirs
+rbfu
+RBUFFER
+rcfile
+Rchive
+rcs
+rdargument
+rdb
+rdc
+rdd
+rdependents
+rdeps
+rdm
+rdmd
+rdmr
+rdmtc
+rdmu
+rdoc
+rdp
+rdr
+rds
+rdsl
+rdtc
+rdtp
+reactjs
+readline
+readlink
+readme
+readonly
+readthedocs
+readtimeoutmillis
+Reagle
+realcmd
+reauthor
+rebased
+rebases
+rebasing
+receivepack
+reddit
+redirectport
+redis
+rediscli
+redistrubute
+redzone
+reencode
+reexec
+refactor
+refchecks
+reflogs
+refmap
+refname
+refspec
+regex
+regexes
+regexn
+regexp
+reheader
+reintializes
+Reitsma
+rej
+reldates
+reldist
+releasenotesurl
+releaseversion
+relid
+reloadinterval
+reloadpost
+reltool
+remco
+remoteonly
+remotetestdir
+removegroups
+removeprincipals
+removeusergroups
+renamenx
+rephorm
+replacetokens
+repow
+reprovider
+requestauthrecipient
+requestauthsource
+requestid
+rerere
+resetstat
+resolv
+resolvemsg
+responseauthrecipient
+responseauthsource
+responsetimeout
+restartpost
+restype
+resultformat
+retcode
+retlog
+retrievefile
+retrievetargetdir
+returncode
+RETVAL
+revdeps
+revlist
+rfa
+rfakeroot
+rfap
+rfbu
+rfc
+RFh
+rfind
+rgm
+rhash
+rinass
+rinf
+ripgrep
+riseup
+RIXIUS
+rlc
+Rli
+rlib
+Rlvi
+rmacs
+rmcup
+rmd
+rmdir
+rmdsstore
+rmdup
+rmi
+rmkx
+rnand
+rnatv
+rnaw
+rnios
+rniosse
+rniosx
+rniosxr
+rniosxsm
+rnipad
+rnipada
+rnipadm
+rnipadp
+rnipadr
+rnland
+rnlink
+rnlios
+rns
+robby
+robbyrussell
+ROLENAME
+rollbackonerror
+rootdir
+rosrc
+roswell
+ROSWELLPATH
+roundhoused
+routecookie
+rpath
+rpc
+rpcuser
+rpmpackage
+rpms
+rpo
+rpop
+rpoplpush
+rprompt
+rpush
+rpushx
+rra
+rrg
+rsa
+rsb
+rsd
+rset
+rsh
+rsp
+rspec
+rsrra
+rst
+rsto
+rstrip
+rsync
+rtfm
+rtkit
+rtorrent
+rts
+rubocop
+rubygems
+rubyonrails
+rubyprompt
+rubypromptsize
+rubyversion
+Rudkin
+rulz
+runfcgi
+runningservers
+runningservices
+runpy
+runserver
+runtests
+runtfile
+runtimes
+RUNZSH
+Ruslan
+ruslanspivak
+rustc
+rustup
+Rvi
+rvm
+rvmprompt
+rvmpromptsize
+rxvt
+saas
+sadd
+salesforce
+samtools
+sandboxed
+SAVEHIST
+savelogin
+savemasterpassword
+sba
+sbc
+sbcc
+sbcln
+sbco
+sbcp
+sbcq
+sbd
+sbdc
+sbdi
+sbgi
+sbin
+sbp
+sbpl
+sbr
+sbrake
+sbrm
+sbt
+sbu
+sbx
+scalac
+scaladoc
+scalatest
+scaleway
+scandeps
+scard
+scd
+scdalias
+scdaliases
+scdhistory
+scdignore
+scgi
+sched
+scheduledrundatetime
+Schlatow
+scm
+scmpublish
+scorpius
+scottkidder
+scp
+screencast
+screenshot
+SCTP
+scu
+scutil
+scw
+scwsearch
+sdiff
+sdiffstore
+sdist
+sdk
+sdkman
+Sdl
+sdurrheimer
+Seagal
+searchterm
+seccomp
+securityenabled
+securitymap
+securitytype
+segfault
+selectables
+selectionkeyhandler
+selectiveanf
+selectivecps
+selectorpolltimeoutmillis
+selfupdate
+selinux
+semver
+sendemail
+sendperiod
+serialfile
+serialno
+serverlist
+servername
+serverurl
+serviceproperties
+serviceuser
+servlet
+setab
+setaf
+setalias
+setapp
+setbit
+setdefaultdevhubusername
+setdefaulttimeout
+setdefaultusername
+setenv
+setex
+setnx
+setopt
+setprompt
+setrange
+sfcl
+sfcontainer
+sfcw
+sfdc
+sfdev
+sfdx
+sfdxcli
+sfdxurl
+sfdxurlfile
+sfffe
+sfgb
+sfgc
+sfgcom
+sfge
+sfn
+sfprod
+sfroute
+SFSB
+sfsr
+sfsu
+sftp
+sfx
+sgem
+sgr
+sgrep
+sgtatham
+shasum
+sheerun
+shellcheck
+shellinit
+shellperson
+shitload
+SHLVL
+shm
+Shohei
+shopt
+shortlist
+shortlog
+shortname
+shortstat
+SHOWCOLORHINTS
+showcurrentpatch
+showdeprecated
+SHOWDIRTYSTATE
+showfiles
+showformat
+showmigrations
+showpkg
+SHOWSTASHSTATE
+showsubclasses
+SHOWUNTRACKEDFILES
+showupstream
+shpotify
+shuf
+shunit
+Shyamshankar
+sid
+sidekiq
+sideload
+SIGINT
+SIGKILL
+sigs
+SIMBL
+Sindre
+sindresorhus
+singlechar
+singlepackage
+Sint
+sinterstore
+sirech
+sismember
+sitecookbooks
+sitesearch
+sjis
+skintone
+skiptraceflag
+skitch
+slaveof
+slicehost
+sln
+slogin
+slp
+smacs
+smartlist
+smartsync
+smcup
+smembers
+smerge
+smkx
+Smood
+smove
+smt
+smtp
+Smurf
+snapshotname
+snowboarder
+sobject
+sobjectid
+sobjecttreefiles
+sobjecttype
+sobjecttypecategory
+socio
+socw
+softlayer
+solaris
+som
+soq
+soql
+Sorhus
+sorin
+sortconip
+sortcons
+sortnr
+sortr
+sourceapiversion
+sourced
+sourcedir
+sourcefile
+sourceforge
+sourceorg
+sourcepath
+sourcetype
+sourcing
+soww
+soyc
+spacewander
+spam
+spd
+spearce
+speartail
+spf
+spi
+Spivak
+splitbrain
+splitlines
+splunk
+spock
+spop
+spork
+spotify
+springframework
+sprintf
+sprunge
+spu
+spx
+sql
+sqlall
+sqlc
+sqlclear
+sqlcustom
+sqldropindexes
+sqlflush
+sqlindexes
+sqlinitialdata
+sqlq
+sqlsan
+sqlsequencereset
+sqltracelisteners
+squashmigrations
+srake
+srandmember
+src
+srem
+ssh
+sshd
+sshkey
+sshkeyfile
+sshkeypassphrase
+sshpassword
+sshport
+sshpublickeyfile
+sshuser
+ssl
+sslproxyhost
+sslproxyport
+ssm
+sso
+sst
+sstat
+stackoverflow
+stacktrace
+stagedstr
+standalone
+standaloneonly
+startapp
+startpage
+startpost
+startproject
+startswith
+startus
+statd
+statedb
+statefile
+statefulset
+statelist
+statementcachesize
+statementleakreclaim
+statementleaktimeout
+statementtimeout
+STATESEPARATOR
+staticlib
+statuspost
+stderr
+stdin
+stdio
+stdlayout
+stdlib
+stdout
+steadypoolsize
+stedolan
+steeef
+sterr
+stevelosh
+stgit
+stil
+STITLE
+stn
+stoppedservers
+stoppedservices
+stoppost
+stopwait
+storeprotocol
+storeprotocolclass
+stp
+strfile
+strftime
+stringification
+stringified
+stringify
+stripspace
+strlen
+strverscmp
+Strzelecki
+sts
+stt
+stty
+stu
+stylesheets
+subcmds
+subdigital
+subdir
+subdomain
+subfolder
+Subhaditya
+subl
+sublimemerge
+sublimetext
+subm
+subnut
+subpage
+subpath
+subscriberfile
+subscriberorg
+subservices
+subshells
+subspec
+substr
+subsubcmds
+Subsubcommands
+Subsubsubcommands
+sudo
+sudoedit
+SUFIX
+suitenames
+sunaku
+sunion
+sunionstore
+supad
+superaccessors
+supervisorctl
+supervisord
+suppresscc
+suprl
+suprm
+suprr
+suprs
+supso
+supsr
+supu
+Suraj
+surryhill
+suse
+svcat
+svg
+svm
+svn
+svnsync
+svntrunk
+swiftc
+swiftpm
+sxa
+sxc
+sxd
+sxf
+sxfn
+sxm
+sxn
+sxp
+sxu
+sxw
+sxy
+sykora
+symfony
+symkinds
+symlink
+Symlinking
+symref
+syms
+syncdb
+SYNOPSYS
+syns
+syohex
+sys
+sysadmins
+sysctl
+syslog
+sysread
+sysroot
+systemadmin
+systemctl
+systemd
+systeminfo
+systemproperties
+Syu
+Syua
+Syy
+Tabone
+tagname
+tailcalls
+Tajikistan
+takedir
+takegit
+takeurl
+tanabata
+tarball
+tarfile
+targetcut
+targetdevhubusername
+targetprotocol
+targetted
+targetusername
+Tasche
+Tascii
+taskwarrior
+Tassilo
+tatooine
+tavric
+tbz
+tcl
+tcp
+tcpdump
+tcpip
+tcpnodelay
+tcsh
+tdiff
+tdiffstr
+tempdir
+tempfile
+tempfilename
+TEMPLATENAME
+terday
+termcap
+termcolor
+Termfile
+terminalapp
+terminfo
+terminitor
+termsupport
+termux
+TERMWIDTH
+terraform
+terremark
+testflag
+testfunc
+testlevel
+testlog
+testname
+testng
+testrb
+testrunid
+testrunner
+testserver
+textastic
+textasticapp
+textconv
+textfile
+textmate
+tformat
+tfstate
+tftp
+tfvars
+tgz
+thedir
+thefuck
+themeisfresh
+thememsg
+there're
+thibault
+thisfcn
+Thoumie
+threadpool
+threadpoolid
+thu
+tif
+timeoutmsec
+timeremaining
+timetolive
+timewait
+timothybasanov
+tion
+titlebar
+tjkirch
+tkachenko
+tkdiff
+tkss
+tksv
+tldr
+Tlp
+tls
+tlscacert
+tlscert
+tlsciphers
+tlsenabled
+tlskey
+tlsrollbackenabled
+tlsverify
+tlz
+tmp
+tmpdir
+tmpfile
+tmpfs
+tmux
+tmuxinator
+tne
+tnn
+tobed
+todo
+Tokenise
+tokenized
+tolower
+tomee
+tonotdo
+toolchain
+toolcp
+toplevel
+Toponce
+torrez
+torromeo
+tortoisemerge
+totp
+totpkey
+Touron
+tput
+traceroute
+trackball
+transactionlogdir
+transactionsupport
+transferencoding
+transprotocol
+transprotocolclass
+trapd
+trconf
+triggerevents
+triggername
+trins
+trinsd
+trizen
+trloc
+trlst
+trmir
+Troiae
+Trojanowski
+trorph
+trre
+trrem
+trrep
+trsu
+trunc
+trupd
+trupg
+tsdh
+tsl
+ttl
+ttr
+ttyctl
+ttys
+tview
+twohead
+txl
+txn
+txo
+txs
+txz
+tycho
+typechecking
+typescriptlang
+typesetsilent
+typespec
+typoes
+tzst
+uapprox
+uberjar
+Ubfksu
+ubuntu
+udp
+uescape
+UFE
+ufw
+uid
+ukpog
+ULCORNER
+ulimit
+Ullrich
+ultiple
+umask
+umd
+umich
+unace
+unalias
+uname
+unarchive
+Uncomment
+uncommit
+uncompress
+uncurry
+undelete
+undeploy
+unedit
+unescape
+unexport
+unexpose
+unfunction
+unhash
+unheap
+unhost
+unicode
+unidiff
+unindex
+uninst
+uninstall
+uninstalling
+unionbedg
+uniq
+uniqid
+uniquetablenames
+unittest
+universalarchive
+unixfs
+unixstamp
+unlimit
+unlzma
+unmark
+unmatch
+unmonitor
+unmute
+unpause
+unrar
+unreachability
+unsetopt
+unshallow
+unshare
+unstagedstr
+unstartup
+unsubscribe
+untag
+unversioned
+unwatch
+unwip
+unxz
+unzstd
+updatedb
+updateonsave
+updatestartuptty
+upgr
+upgradable
+upgradetype
+uploadpack
+upperip
+upsert
+urandom
+URCORNER
+uri
+url
+urldecode
+urlencode
+urllib
+urlmatch
+urlonly
+urlparse
+urlstring
+urltools
+urxvt
+usb
+usbmux
+usejavacp
+uselimit
+usemasterpassword
+usergroups
+userguide
+userland
+username
+userns
+userpass
+userpassword
+usetoolingapi
+usetty
+usr
+utc
+utf
+utils
+utm
+uucp
+UUID
+Vagrantfile
+vagrantup
+valentinbud
+validateatmostonceperiod
+validateddeployrequestid
+validateschema
+validationclassname
+validationmethod
+validationtable
+Valodim
+vals
+varargs
+vared
+varkey
+varname
+vaultproject
+vba
+vbl
+vbm
+vbo
+vbox
+vbqs
+vbr
+vbu
+vcf
+vcmp
+vcs
+vcsa
+vdf
+vectorize
+Venant
+vendored
+venv
+Verhoef
+Verma
+VERSINFO
+versioncomp
+versiondescription
+versioned
+versioning
+versionname
+versionnumber
+versiontagprefix
+verstr
+vfs
+vgi
+vgrepping
+vgs
+vguerci
+vhost
+vhsp
+vicmd
+viewtopic
+viins
+vimdiff
+vimgrep
+vimrc
+violenz
+viopp
+virtenv
+virtualbox
+virtualenv
+virtualenvwrapper
+virtualizing
+virtualservers
+virumque
+visitpage
+visualforce
+visualstudio
+VMDK
+VMs
+vmwarefusion
+vmwarevcloudair
+vmwarevsphere
+vnc
+vncviewer
+vnd
+voggom
+Voldemort
+volumedriver
+vonnegut
+Vop
+vopts
+vpaivatorres
+vpc
+vpli
+vpll
+vplu
+vplun
+vpr
+vrdp
+vre
+vrp
+vsc
+vsca
+vscd
+vscde
+vscg
+vscie
+vscl
+vscn
+vscode
+vscodium
+vscr
+vscu
+vscue
+vscv
+vscw
+vsh
+vsix
+vsp
+vsplit
+vssh
+vsshc
+vssp
+vst
+VTE
+vterm
+Vue
+vuejs
+vulns
+vulscan
+vundle
+vup
+vvsp
+vvv
+vwxyz
+vydpig
+waittime
+wakeonlan
+walle
+wantlist
+warpdir
+warprc
+wav
+wclip
+wcomp
+Webchat
+weblog
+webm
+webrick
+webscr
+webserver
+website
+webtraffic
+Wegner
+Weiming
+Weirich
+Wez
+wfilter
+wget
+whatchanged
+whatisthor
+whatthecommit
+whatwg
+whitespacelist
+whl
+whoami
+wiki
+wikipedia
+wil
+willmendesneto
+wincmd
+windowid
+windowsdomain
+windowspassword
+windowsuser
+wip
+wjst
+wks
+wlne
+wolframalpha
+womens
+wordbits
+WORDBREAKS
+WORDCHARS
+wordlist
+wordpress
+workaround
+workdir
+workflow
+workon
+workpass
+workqueues
+workspaces
+worktree
+would've
+wrapjdbcobjects
+writetimeoutmillis
+WSL
+wslpath
+wtf
+wtfpl
+www
+wwwrun
+Wzf
+xargs
+xcb
+xcconfig
+xcdd
+xchm
+xclick
+xclip
+xcode
+xcodebuild
+xcodeproj
+xcp
+xcsel
+xcselv
+xcworkspace
+XDCHDSBDSDG
+xdg
+xdvi
+xfn
+xfree
+xfs
+xit
+XIVIEWER
+xjnmahqewy
+xkcd
+Xkten
+XLBUFFER
+xlbuflines
+xml
+xnode
+xontab
+xor
+Xout
+xperl
+xphp
+xpi
+xpm
+xpowered
+xprop
+xpython
+XRBUFFER
+xrbuflines
+xruby
+xsel
+xshell
+xstrat
+xterm
+XTRACE
+xudmec
+xunit
+xvf
+xvjf
+xxd
+xxdiff
+Xxjn
+xzcat
+yaconf
+yain
+yainsd
+yaloc
+yalst
+yamir
+yaml
+yandex
+yandsearch
+Yanovich
+yaorph
+yarem
+yarep
+yarnpkg
+yarnrc
+yasu
+yaupd
+yaupg
+ybalrid
+ycc
+yesorno
+yga
+ygi
+ygl
+ygr
+ygrm
+ygu
+yii
+yiic
+yiiframework
+yireo
+yleo
+ylep
+yli
+yln
+ylnf
+yls
+ymc
+yml
+yolo
+Yonchu
+YOSHIDA
+yout
+youtube
+yrl
+yrm
+yrun
+yst
+ytc
+yuc
+yui
+yuil
+yuyuchu
+yws
+yyy
+yzf
+zadd
+zake
+zal
+zall
+zas
+zbell
+ZCA
+zcard
+zcl
+zcompcache
+zcompdump
+zcompile
+Zconvey
+zcount
+zcu
+zcurses
+zdbc
+zdbcm
+zdbm
+zdbmigrate
+zdbr
+zdbreset
+ZDgw
+zdharma
+zdirs
+zdotdir
+zdup
+zenerate
+zenmap
+zerver
+zfs
+zgen
+zgrep
+zhimingwang
+zhse
+zic
+zif
+zin
+zincrby
+zinit
+zinr
+zinterstore
+zipalign
+zipfile
+zkat
+zle
+zleparameter
+zlicenses
+zll
+zlogin
+zlogout
+zlp
+zlr
+zls
+zlu
+zma
+zmodload
+zmr
+zms
+znr
+znt
+zocmez
+zonsole
+zoxide
+zpa
+zparseopts
+zpatch
+zpattern
+zpch
+zpchk
+zpd
+zplg
+zplug
+zplugin
+zproduct
+zprofile
+zps
+zpt
+zrake
+zrange
+zrangebyscore
+zrank
+zref
+zregexparse
+zrem
+zremrangebyrank
+zremrangebyscore
+zrevrange
+zrevrangebyscore
+zrevrank
+zrl
+zrm
+zrn
+zrr
+zrs
+zscore
+zse
+zsh'ed
+zsh
+zshaddhistory
+zshcmd
+zshcommands
+zshcompfunc
+zshconfig
+zshell
+zshenv
+zshexpn
+zshids
+zshrc
+zshtheme
+zshwiki
+zshzle
+zsi
+zsocket
+Zsolt
+zsource
+zspec
+zsr
+zsrc
+zst
+Zstandard
+zstat
+zstd
+zstdcat
+zstyle
+zsw
+ztart
+ztos
+zucumber
+zunctional
+zunionstore
+zunits
+zunner
+zup
+zutil
+zvcmp
+zve
+zweep
+zwip
+ZWJ
+zwp
+zxvf
+zyg
+zypper
+zzz
diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt
new file mode 100644
index 000000000..93dfa201c
--- /dev/null
+++ b/.github/actions/spelling/patterns.txt
@@ -0,0 +1,73 @@
+# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
+
+# YouTube
+https?://(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_]*
+<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
+\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
+# Google Analytics
+\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
+# Google APIs
+\bgoogleapis\.com/[a-z]+/v\d+/[a-z]+/[@./?=\w]+
+\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]+/d/(?:e/|)[0-9a-zA-Z_-]+/?
+# Google Drive
+\bdrive\.google\.com/file/d/[0-9a-zA-Z_?=]*
+# Google Groups
+\bgroups\.google\.com/(?:forum/#!|d/)(?:msg|topic)/[^/]+/[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+|)
+# Google themes
+themes\.googleusercontent\.com/static/fonts/[^/]+/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
+\bbooks\.google\.(?:\w{2,4})/books\?[-\w\d=&#.]*
+# Google Fonts
+\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
+
+# GitHub SHAs
+\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b
+(?:\[[0-9a-f]+\]\(https:/|)/(?:www\.|)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]+
+# git.io
+\bgit\.io/[0-9a-zA-Z]+
+# GitHub JSON
+"node_id": "[-a-zA-Z=;:/0-9+]*"
+# Contributor
+\[[^\]]+]\(https://github\.com/[^/]+\)
+# GHSA
+GHSA(?:-[0-9a-z]{4}){3}
+
+LS_COLORS=(["']).*?\g{-1}
+
+(\\?)%[a-zA-Z]+\g{-1}(?!%)
+
+# URL escaped characters
+\%[0-9A-F]{2}
+# 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
+
+# https://www.gnu.org/software/groff/manual/groff.html
+# man troff content
+\\f[BCIPR]
+
+# Compiler flags
+[\t "'`=]-[LPWXY]
+[\t "'`=]-D(?!ebian)
+
+# ignore long runs of a single character:
+\b([A-Za-z])\g{-1}{3,}\b
diff --git a/.github/actions/spelling/reject.txt b/.github/actions/spelling/reject.txt
new file mode 100644
index 000000000..a5ba6f639
--- /dev/null
+++ b/.github/actions/spelling/reject.txt
@@ -0,0 +1,7 @@
+^attache$
+benefitting
+occurence
+Sorce
+^[Ss]pae
+^untill
+^wether
diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
new file mode 100644
index 000000000..18a302e3c
--- /dev/null
+++ b/.github/workflows/spelling.yml
@@ -0,0 +1,95 @@
+name: Spell checking
+on:
+ push:
+ branches: ["**"]
+ tags-ignore: ["**"]
+ pull_request_target:
+ issue_comment:
+ types: [created]
+
+jobs:
+ spelling:
+ name: Spell checking
+ permissions:
+ contents: read
+ pull-requests: read
+ outputs:
+ internal_state_directory: ${{ steps.spelling.outputs.internal_state_directory }}
+ 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:
+ - name: checkout-merge
+ if: "contains(github.event_name, 'pull_request')"
+ uses: actions/checkout@v2
+ with:
+ ref: refs/pull/${{github.event.pull_request.number}}/merge
+ - name: checkout
+ if: github.event_name == 'push'
+ uses: actions/checkout@v2
+ - name: check-spelling
+ id: spelling
+ uses: check-spelling/check-spelling@prerelease
+ with:
+ experimental_apply_changes_via_bot: 1
+ suppress_push_for_open_pull_request: 1
+ post_comment: 0
+ - name: store-comment
+ if: failure()
+ uses: actions/upload-artifact@v2
+ with:
+ retention-days: 1
+ name: "check-spelling-comment-${{ github.run_id }}"
+ path: |
+ ${{ steps.spelling.outputs.internal_state_directory }}
+
+ comment:
+ name: Comment
+ runs-on: ubuntu-latest
+ needs: spelling
+ permissions:
+ contents: write
+ pull-requests: write
+ if: always() && needs.spelling.result == 'failure' && needs.spelling.outputs.internal_state_directory
+ steps:
+ - name: checkout
+ uses: actions/checkout@v2
+ - name: set up
+ run: |
+ mkdir /tmp/data
+ - name: retrieve-comment
+ uses: actions/download-artifact@v2
+ with:
+ name: "check-spelling-comment-${{ github.run_id }}"
+ path: /tmp/data
+ - name: comment
+ uses: check-spelling/check-spelling@prerelease
+ with:
+ experimental_apply_changes_via_bot: 1
+ custom_task: comment
+ internal_state_directory: /tmp/data
+
+ update:
+ name: Update PR
+ permissions:
+ contents: write
+ pull-requests: write
+ runs-on: ubuntu-latest
+ if: ${{
+ github.event_name == 'issue_comment' &&
+ github.event.issue.pull_request &&
+ contains(github.event.comment.body, '@check-spelling-bot apply')
+ }}
+ concurrency:
+ group: spelling-update-${{ github.event.issue.number }}
+ cancel-in-progress: false
+ steps:
+ - name: checkout
+ uses: actions/checkout@v2
+ - name: check-spelling
+ uses: check-spelling/check-spelling@prerelease
+ with:
+ experimental_apply_changes_via_bot: 1