From 8499a44dfe3e8ffb2f351c1d152fd3cec50251e2 Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Tue, 29 Nov 2022 11:50:57 -0800 Subject: [PATCH] Cherry-pick the check-spelling v0.0.21 changes to the oldest merge base --- .github/actions/spell-check/README.md | 16 + .github/actions/spell-check/advice.md | 25 + .github/actions/spell-check/allow/allow.txt | 9 + .github/actions/spell-check/allow/names.txt | 18 + .../actions/spell-check/candidate.patterns | 523 ++++ .github/actions/spell-check/excludes.txt | 104 + .github/actions/spell-check/expect.txt | 2136 +++++++++++++++++ .../spell-check/line_forbidden.patterns | 62 + .github/actions/spell-check/patterns.txt | 179 ++ .github/actions/spell-check/reject.txt | 10 + .github/workflows/spelling2.yml | 122 + 11 files changed, 3204 insertions(+) create mode 100644 .github/actions/spell-check/README.md create mode 100644 .github/actions/spell-check/advice.md create mode 100644 .github/actions/spell-check/allow/allow.txt create mode 100644 .github/actions/spell-check/allow/names.txt create mode 100644 .github/actions/spell-check/candidate.patterns create mode 100644 .github/actions/spell-check/excludes.txt create mode 100644 .github/actions/spell-check/expect.txt create mode 100644 .github/actions/spell-check/line_forbidden.patterns create mode 100644 .github/actions/spell-check/patterns.txt create mode 100644 .github/actions/spell-check/reject.txt create mode 100644 .github/workflows/spelling2.yml diff --git a/.github/actions/spell-check/README.md b/.github/actions/spell-check/README.md new file mode 100644 index 0000000000..8dd5e9f88d --- /dev/null +++ b/.github/actions/spell-check/README.md @@ -0,0 +1,16 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[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) +[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. diff --git a/.github/actions/spell-check/advice.md b/.github/actions/spell-check/advice.md new file mode 100644 index 0000000000..1004eeaa60 --- /dev/null +++ b/.github/actions/spell-check/advice.md @@ -0,0 +1,25 @@ + +
If the flagged items are :exploding_head: false positives + +If items relate to a ... +* binary file (or some other file you wouldn't want to check at all). + + 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). + +* 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. + +
diff --git a/.github/actions/spell-check/allow/allow.txt b/.github/actions/spell-check/allow/allow.txt new file mode 100644 index 0000000000..abffec1de1 --- /dev/null +++ b/.github/actions/spell-check/allow/allow.txt @@ -0,0 +1,9 @@ +bkmeneguello +FWest +github +https +obairka +ssh +ubuntu +unuing +wil diff --git a/.github/actions/spell-check/allow/names.txt b/.github/actions/spell-check/allow/names.txt new file mode 100644 index 0000000000..979f48ee4f --- /dev/null +++ b/.github/actions/spell-check/allow/names.txt @@ -0,0 +1,18 @@ +ABradley +azchohfi +bdoserror +crutkas +dependabot +Deuchert +edwinzap +hallatore +jefflord +mshtang +naveensrinivasan +nVidia +robmen +skycommand +snickler +sinclairinat +Vidia +yifan diff --git a/.github/actions/spell-check/candidate.patterns b/.github/actions/spell-check/candidate.patterns new file mode 100644 index 0000000000..4b40e728ee --- /dev/null +++ b/.github/actions/spell-check/candidate.patterns @@ -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 +(['"]|")[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 +(?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-)/ diff --git a/.github/actions/spell-check/excludes.txt b/.github/actions/spell-check/excludes.txt new file mode 100644 index 0000000000..e8006d0a24 --- /dev/null +++ b/.github/actions/spell-check/excludes.txt @@ -0,0 +1,104 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)3rdparty/ +(?:^|/)go\.sum$ +(?:^|/)MonacoPreviewHandler/customLanguages/ +(?:^|/)MonacoPreviewHandler/generateLanguagesJson.html +(?:^|/)MonacoPreviewHandler/index.html +(?:^|/)MonacoPreviewHandler/monaco_languages.json +(?:^|/)MonacoPreviewHandler/monacoSpecialLanguages.js +(?:^|/)monacoSRC/ +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)timezones\.json$ +(?:^|/)vendor/ +(?:^|/)WindowsSettings\.json$ +/package(?:-lock|)\.json$ +/pinyindb/ +/settings-html/ +[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\. +\.a$ +\.ai$ +\.avi$ +\.bmp$ +\.bz2$ +\.class$ +\.crt$ +\.dat$ +\.dll$ +\.docx?$ +\.drawio$ +\.DS_Store$ +\.eot$ +\.exe$ +\.filters$ +\.gcode$ +\.gif$ +\.gitattributes$ +\.gitignore$ +\.graffle$ +\.gz$ +\.icns$ +\.ico$ +\.jar$ +\.jks$ +\.jpe?g$ +\.key$ +\.lcl$ +\.lib$ +\.lock$ +\.map$ +\.min\.. +\.mod$ +\.mp[34]$ +\.o$ +\.ocf$ +\.otf$ +\.pdf$ +\.pem$ +\.PNG$ +\.png$ +\.psd$ +\.pyc$ +\.s$ +\.stl$ +\.svg$ +\.svgz?$ +\.tar$ +\.tiff?$ +\.ttf$ +\.wav$ +\.webm$ +\.webp$ +\.woff2?$ +\.xlsx?$ +\.zip$ +^\.github/actions/spell-check/ +^\.gitmodules$ +^\Q.github/workflows/spelling2.yml\E$ +^\Q.pipelines/ESRPSigning_core.json\E$ +^\Qsrc/modules/colorPicker/ColorPickerUI/Shaders/GridShader.cso\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/CorruptJson/Microsoft/PowerToys/settings.json\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.18.2/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.19.2/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.20.1/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/V0.21.1/Microsoft/PowerToys/FancyZones/settings.json\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/V0.21.1/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.22.0/Microsoft/PowerToys/FancyZones/settings.json\E$ +^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.22.0/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$ +^\Qtools/project_template/ModuleTemplate/resource.h\E$ +^doc/devdocs/akaLinks\.md$ +^installer/PowerToysSetup/WebView2/MicrosoftEdgeWebview2Setup.exe$ +^src/common/logger/logger\.vcxproj\.filters$ +^src/common/notifications/BackgroundActivatorDLL/BackgroundActivator\.vcxproj\.filters$ +^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$ +^src/modules/colorPicker/ColorPickerUI/Resources/colorPicker\.cur$ +^src/modules/fancyzones/lib/FancyZonesWinHookEventIDs\.h$ +^src/modules/imageresizer/dll/ContextMenuHandler\.rgs$ +^src/modules/imageresizer/dll/ImageResizerExt\.rgs$ +^src/modules/powerrename/testapp/PowerRenameTest\.vcxproj\.filters$ +^src/modules/previewpane/PreviewPaneUnitTests/HelperFiles/MarkdownWithHTMLImageTag\.txt$ +^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$ +^tools/CleanUp_tool/CleanUp_tool\.vcxproj\.filters$ +^tools/Verification scripts/Check preview handler registration\.ps1$ +ignore$ diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt new file mode 100644 index 0000000000..469ead5345 --- /dev/null +++ b/.github/actions/spell-check/expect.txt @@ -0,0 +1,2136 @@ +aaaa +abgr +abi +ABlocked +ABOUTBOX +Abug +accctrl +Acceleratorkeys +ACCEPTFILES +ACCESSDENIED +accessibilityinsights +Acl +aclapi +AColumn +acrt +activatable +ACTIVATEAPP +activationaction +ADDUNDORECORD +ADifferent +administra +ADMINS +adml +admx +advapi +advfirewall +AFeature +AFFINETRANSFORM +AFX +AGGREGATABLE +AHybrid +Akrotiri +Aktobe +ALarger +alekhyareddy +ALLAPPS +ALLINPUT +ALLOWUNDO +ALPHATYPE +Altdown +alwaysontop +amd +AMF +AModifier +AMPROPERTY +AMPROPSETID +Andreanof +anges +angularsen +Animatable +ansicolor +ANull +AOC +aocfnapldcnfbofgmbbllojgocaelgdd +APARTMENTTHREADED +APeriod +APIENTRY +APIIs +APPBARDATA +appdata +APPEXECLINK +APPIDS +appium +Applets +Applicationcan +applicationframehost +Applist +applog +appmanifest +appref +apps +appwindow +appwiz +appxpackage +APSTUDIO +AQS +Aqtobe +arcosh +ARemapped +argb +arik +Arity +arjunbalgovind +ARPINSTALLLOCATION +ARPPRODUCTICON +ARRAYSIZE +arsinh +artanh +Artsakh +asdf +AShortcut +ASingle +ASSOCCHANGED +ASYNCWINDOWPLACEMENT +ASYNCWINDOWPOS +Atikokan +atl +atlbase +atlcom +atleast +atlfile +atlstr +Attribs +Atyrau +aumid +Aut +Authenticode +AUTHN +AUTHZ +AUTOHIDE +AUTOMATIONPROPERTIES +Autorun +AUTOUPDATE +AValid +Avanc +awakeness +awakeversion +AYUV +backtracer +bak +Bashkortostan +Bayan +bbwe +bck +Belarus +betadele +betsegaw +BGR +bgra +bhid +bigbar +bigobj +binlog +BITMAPFILEHEADER +bitmapimage +BITMAPINFO +BITMAPINFOHEADER +bitmask +BITSPIXEL +bla +Blockquotes +blogs +BLUEGRAY +Bluetooth +BLURBEHIND +BLURREGION +bmi +bms +BNumber +Bokm +BOKMAL +bootstrapper +BOOTSTRAPPERINSTALLFOLDER +Bopomofo +BOTTOMALIGN +BPBF +bpmf +bpp +bricelam +BRIGHTGREEN +Browsable +brucelindbloom +bsd +bstr +bti +Btn +BTNFACE +Bto +buf +bugreport +BUILDNUMBER +buildtask +buildtransitive +Burkina +Buryatia +BValue +BYPOSITION +bytearray +Caiguna +CALG +callbackptr +Cangjie +CANRENAME +CAPTURECHANGED +CAtl +cch +CCom +CContext +cdecl +CDeclaration +CDEF +cdpx +CENTERALIGN +cguid +changecursor +Changemove +chdir +CHILDACTIVATE +CHILDWINDOW +Choibalsan +chrdavis +chromaticities +Chrzan +CHT +Chukotka +Chuuk +cielab +ciexyz +cim +CImage +cla +clangformat +CLASSDC +CLASSNOTAVAILABLE +clickable +clickonce +CLIENTEDGE +clientside +CLIPCHILDREN +Clipperton +CLIPSIBLINGS +clrcall +Cls +CLSCTX +clsid +Clusion +cmder +cmdline +Cmds +CMIC +CMINVOKECOMMANDINFO +CMINVOKECOMMANDINFOEX +CMock +CMONITORS +cmpgt +cmyk +cnt +Cocklebiddy +coclass +CODENAME +codeofconduct +codereview +Codespaces +codicon +COINIT +colorconv +colorformat +colorhistory +colorhistorylimit +COLORKEY +colorpicker +COLORREF +comctl +COMDAT +comdef +comdlg +comhost +cominterop +commandline +COMMANDTITLE +commctrl +Comoros +companding +COMPOSITIONFULL +comsupp +comsuppw +comsuppwd +comutil +concrt +CONFLICTINGMODIFIERKEY +CONFLICTINGMODIFIERSHORTCUT +CONOUT +Consolas +constexpr +consts +contentdialog +contentfiles +CONTEXTHELP +CONTEXTMENUHANDLER +CONTROLL +CONTROLPARENT +Controlz +copiedcolorrepresentation +corewebview +cortana +cotaskmem +COULDNOT +countof +CPower +cppblog +cppruntime +cppstd +cppwinrt +CProj +CREATESCHEDULEDTASK +CREATESTRUCT +CREATEWINDOWFAILED +critsec +Crossdevice +CRSEL +CSearch +CSettings +CSIDL +cso +CSRW +CStyle +CSY +CTest +Ctl +CTRLALTDEL +Ctrls +Ctx +CUI +Cunha +currentculture +CURSORINFO +cursorpos +customaction +CUSTOMACTIONTEST +cvd +CVirtual +cvtepu +cvtsi +cwd +cxfksword +CXSMICON +CXVIRTUALSCREEN +cxxopts +cyberrex +CYSMICON +CYVIRTUALSCREEN +cziplib +cziplob +Dac +dacl +damienleroy +Danmarkshavn +DARKPURPLE +DARKTEAL +DARKYELLOW +datareader +datatemplate +Datavalue +DATAW +davidegiacometti +Dayof +Dbg +Dbghelp +DBLCLKS +DBLEPSILON +DCapture +DCBA +DCOM +dcommon +dcomp +dcompi +DComposition +DCR +DDevice +ddf +DDxgi +Deact +debian +debugbreak +DECLAR +declspec +Dedup +DEFAULTBOOTSTRAPPERINSTALLFOLDER +DEFAULTCOLOR +DEFAULTFLAGS +DEFAULTONLY +DEFAULTTONEAREST +DEFAULTTONULL +DEFAULTTOPRIMARY +DEFERERASE +DEFPUSHBUTTON +deinitialization +DELA +deletethis +Delimarsky +dend +DENORMAL +Deondre +depersist +deprioritized +deref +DESKTOPABSOLUTEEDITING +DESKTOPABSOLUTEPARSING +desktopshorcutinstalled +desktopwindowxamlsource +DEU +devblogs +devdocs +devenum +DEVMON +devpkey +DEVSOURCE +DIIRFLAG +dimm +directshow +DISABLEASACTIONKEY +DISPLAYCHANGE +DISPLAYCONFIG +displayname +divyan +Dlg +DLGFRAME +DLGMODALFRAME +dlib +dllexport +dllhost +dllmain +DNLEN +Dns +DONOTROUND +DONTRESOLVEDLLREFERENCES +DONTVALIDATEPATH +dotnet +DPICHANGED +DPIs +DPolicy +DPSAPI +DQTAT +DQTYPE +DRAWFRAME +drawingcolor +dreamsofameaningfullife +drivedetectionwarning +dshow +dutil +DVASPECT +DVASPECTINFO +DVH +DVHD +dvr +DVSD +DVSL +DVTARGETDEVICE +DWINRT +dwl +dwm +dwmapi +DWMCOLORIZATIONCOLORCHANGED +DWMCOMPOSITIONCHANGED +dwmcorei +DWMNCRENDERINGCHANGED +Dwmp +DWMSENDICONICLIVEPREVIEWBITMAP +DWMSENDICONICTHUMBNAIL +DWMWA +DWMWCP +DWMWINDOWATTRIBUTE +DWMWINDOWMAXIMIZEDCHANGE +DWORDLONG +dworigin +dwrite +dxgi +dxgidebug +dxgiformat +dxguid +ecount +EData +Edid +EDITKEYBOARD +editkeyboardwindow +EDITSHORTCUTS +editshortcutswindow +EFile +ekus +emmintrin +Emoji +emptyrecyclebin +ENABLEDELAYEDEXPANSION +enabledisable +ENABLEDPOPUP +endpointvolume +endregion +ENTERSIZEMOVE +ENU +enumerationoptions +EOAC +epicgames +epu +Eqn +ERASEBKGND +EREOF +EResize +ERole +ERRORLEVEL +ERRORTITLE +ESettings +esize +esrp +Eswatini +etl +etw +Eucla +EUQ +eurochange +eventlog +everytime +evt +EWXFORCE +EWXFORCEIFHUNG +EWXLOGOFF +EWXPOWEROFF +EWXREBOOT +EWXSHUTDOWN +examplehandler +examplepowertoy +EXCLUDEFROMCAPTURE +exdisp +executionpolicy +exename +exif +EXITSIZEMOVE +exlist +EXPCMDFLAGS +EXPCMDSTATE +explr +exsb +EXSEL +exstyle +EXTENDEDKEY +EXTENDEDVERBS +eyetracker +fabricbot +fancyzones +FANCYZONESDRAWLAYOUTTEST +FANCYZONESEDITOR +Farbraum +Faroe +FARPROC +fdw +feimage +ffaa +fff +fileapi +FILEEXPLORER +FILEFLAGS +FILEFLAGSMASK +FILELOCKSMITH +FILELOCKSMITHEXT +FILELOCKSMITHLIB +FILELOCKSMITHLIBINTEROP +FILEOP +FILEOS +FILESUBTYPE +FILESYSPATH +FILETIME +FILEVERSION +Filtergraph +Filterkeyboard +Filterx +finalizer +findfast +firefox +FIXEDFILEINFO +flyout +FOF +FOFX +FOLDERID +folderpath +FORCEMINIMIZE +formatetc +FRAMECHANGED +frankychen +Froml +FROMTOUCH +FSCTL +FTYPE +Functiondiscoverykeys +Futuna +fwlink +FZE +gabime +GAC +gacutil +GBarm +Gbits +Gbps +GBs +GCLP +gcnew +gcode +gdi +gdiplus +GDISCALED +getancestor +getasynckeystate +GETDESKWALLPAPER +GETDLGCODE +GETDPISCALEDSIZE +GETICON +GETMINMAXINFO +GETSTATE +GETTEXT +GETTEXTLENGTH +GHND +globalassemblycache +Globbing +GMEM +GNumber +google +gpo +gpu +GSM +gtm +gui +guiddef +GUITHREADINFO +GValue +gwl +GWLP +HACCEL +handlekeyboardhookevent +handlerroutine +hangeul +hanselman +Hanzi +Hardlines +hardlinks +HARDWAREINPUT +hashcode +Hashset +Hashtable +hashtag +HASHVAL +hbitmap +hbmp +hbr +HBRBACKGROUND +HBRUSH +hcblack +HCERTSTORE +HCRYPTHASH +HCRYPTPROV +hcwhite +hdc +hdrop +HEB +Heiko +helptext +Heure +HGFE +hglobal +hhk +HHmmss +HHOOK +hhx +HIBYTE +HICON +HIDEWINDOW +highlighter +HIMAGELIST +himl +hinst +hinstance +HIWORD +HKCC +HKCR +HKCU +hkey +HKL +HKLM +HKPD +HKU +HLOCAL +HMD +hmenu +hmodule +hmonitor +HOLDENTER +HOLDESC +HOMEPATH +homljgmgpmcbpjbnjpfijnhipfkiclkd +HOOKPROC +Hostbackdropbrush +hotkeycontrol +hotkeys +hotlight +hotspot +Hovd +HPAINTBUFFER +HPALETTE +HRAWINPUT +hread +HREDRAW +hres +hresult +hrgn +HRSRC +hsb +HSCROLL +hsi +hsl +hstring +hsv +htcfreek +HTCLIENT +HTHUMBNAIL +HTOUCHINPUT +HTTRANSPARENT +HValue +Hvci +hwb +HWINEVENTHOOK +hwnd +HWNDFIRST +HWNDLAST +HWNDNEXT +HWNDPREV +hyjiacan +IBase +IBeam +ICapture +ICEBLUE +IClass +ICONERROR +IData +IDD +IDesktop +IDirect +idl +IDLIST +IDOn +IDR +idx +IDXGI +IExec +IEXPLORE +Iface +IFACEMETHOD +IFACEMETHODIMP +IFilter +IGraphics +iid +Iindex +IIO +Ijwhost +IKs +ILogon +IMAGEHLP +imageresizer +IMAGERESIZERCONTEXTMENU +IMAGERESIZEREXT +imageresizerinput +imageresizersettings +imagingdevices +ime +imeutil +inetcpl +Infobar +INFOEXAMPLE +Infotip +ingbuffer +inheritdoc +initguid +Inkscape +Inlines +inorder +INPC +inproc +inputdev +INPUTHARDWARE +INPUTKEYBOARD +INPUTLANGCHANGED +INPUTMOUSE +INPUTSINK +INPUTTYPE +INSTALLDESKTOPSHORTCUT +INSTALLDIR +INSTALLFOLDER +INSTALLFOLDERTOBOOTSTRAPPERINSTALLFOLDER +INSTALLFOLDERTOPREVIOUSINSTALLFOLDER +INSTALLLOCATION +INSTALLMESSAGE +INSTALLPROPERTY +INSTALLSTARTMENUSHORTCUT +INSTALLSTATE +Inste +Intelli +interactable +Interlop +INTRESOURCE +INVALIDARG +invalidoperatioexception +iobjectwithsitesetsite +iolewindowcontextsensitivehelp +ipc +ipcmanager +IPlugin +IPower +ipreview +ipreviewhandler +ipreviewhandlertranslateaccelerator +ipreviewhandlervisualssetfont +IProperty +IPublic +isbi +ISearch +ISettings +isfinite +IShell +isocpp +iss +ITask +ith +ITHUMBNAIL +Ittoqqortoormiit +IUI +IUnknown +ivirtualdesktopmanager +IWbem +IWIC +iwr +IYUV +JArray +jfif +jgeosdfsdsgmkedfgdfgdfgbkmhcgcflmi +jjw +jobject +jpe +JPN +jpnime +JSONOf +Jsons +jsonval +junja +jxr +jyuwono +KBDLLHOOKSTRUCT +kbm +KEYBDINPUT +keyboardeventhandlers +keyboardmanager +keyboardmanagercommon +KEYBOARDMANAGEREDITOR +keyboardmanagerstate +keyboardmanagerui +keydown +keydropdowncontrol +keyevent +KEYEVENTF +keynum +keyremaps +keystokes +Keytool +keyup +Khakassia +Khanty +Khovd +KILLFOCUS +Kitts +Knownfolders +Krai +KSPROPERTY +Kwango +Kwilu +Kybd +Kyrgyzstan +Kyzylorda +LAlt +Lambson +langword +Lastdevice +Laute +laviusmotileng +LAYOUTRTL +LBUTTON +LBUTTONDBLCLK +LBUTTONDOWN +LBUTTONUP +LCIDTo +lcl +Lclean +LCONTROL +LCtrl +Ldone +ldx +LEFTSCROLLBAR +lego +len +LError +Lessthan +LEVELID +LExit +lhs +lhwnd +LIBID +LIGHTORANGE +LIGHTTURQUOISE +lindex +linkedin +linq +LINQTo +listview +lld +LLKH +llkhf +lmcons +LMEM +LMENU +lnk +LOADLIBRARYASDATAFILE +LOBYTE +LOCALAPPDATA +LOCALDISPLAY +LOCALPACKAGE +localport +LOCALSYSTEM +LOCATIONCHANGE +logconsole +logfile +LOGFONT +LOGMSG +logon +LOGPIXELSX +LOn +longdate +LONGLONG +lowlevel +LOWORD +lparam +LPBITMAPINFOHEADER +LPBYTE +LPCITEMIDLIST +LPCMINVOKECOMMANDINFO +LPCREATESTRUCT +LPCTSTR +LPCWSTR +lpdw +lpfn +LPINPUT +LPMINMAXINFO +LPOSVERSIONINFOEXW +lprc +LPRECT +LPSAFEARRAY +LPSTR +lpsz +lpt +LPTHREAD +LPTOP +LPTSTR +LPVOID +LPW +lpwndpl +LPWSTR +LReader +LRESULT +lshift +lstrcmp +lstrcmpi +lstrlen +LTRB +LTRREADING +Luhansk +luid +LWA +lwin +LZero +lzw +Maarten +Macquarie +Magadan +Mainwindow +majortype +MAJORVERSION +makecab +MAKEINTRESOURCE +MAKEINTRESOURCEW +makepri +Mangere +Mangystau +manifestdependency +Mansi +MAPPEDTOSAMEKEY +MAPTOSAMESHORTCUT +MAPVK +Markdig +Markovic +Marquesas +martinchrzan +martinmoene +Mato +Maximizable +MAXIMIZEBOX +MAXSHORTCUTSIZE +maxversiontested +Mbits +MBs +MBUTTON +MBUTTONDBLCLK +MBUTTONDOWN +MBUTTONUP +MCDT +MCST +MDICHILD +MDL +mdtext +mdtxt +mdwn +MEDIASUBTYPE +mediatype +Melman +MENUITEMINFO +MENUITEMINFOW +menurc +Metadatas +metafile +mfapi +mfc +mfidl +mfobjects +mfplat +Mfsensorgroup +mftransform +mic +microsoft +Midl +mii +MIIM +millis +mindaro +Minimatch +Minimizable +MINIMIZEBOX +MINIMIZEEND +MINIMIZESTART +miniz +minlevel +MINORVERSION +Miracast +Mishkeegogamang +mjpg +mkd +mkdn +mlcfg +MMdd +mmdeviceapi +mmi +mmsys +mmsystem +mockapi +MODECHANGE +modernwpf +MODESPRUNED +Moldova +Mongala +MONITORINFO +MONITORINFOEX +MONITORINFOEXW +monitorinfof +Monthand +Moq +MOUSEACTIVATE +MOUSEEVENTF +MOUSEHWHEEL +MOUSEINPUT +MOUSELEAVE +MOUSEMOVE +MOUSEWHEEL +MOVESIZEEND +MOVESIZESTART +mozilla +mpmc +MRM +mru +msbuild +msc +msclr +mscoree +mscorlib +msdata +msedge +MSGFLT +MSIFASTINSTALL +MSIHANDLE +msiquery +MSIRESTARTMANAGERCONTROL +msix +MSIXCA +MSLLHOOKSTRUCT +Mso +msp +msrc +msstore +mst +msvc +msvcp +MTND +Mul +MULTIPLEUSE +multizone +Mundrabilla +mvvm +myfile +MYICON +MYTZ +NAMECHANGE +nameof +Navassa +navigatetostring +NCACTIVATE +ncc +NCCALCSIZE +NCCREATE +NCDESTROY +NCHITTEST +NCLBUTTONDBLCLK +NCLBUTTONDOWN +NCLBUTTONUP +NCMBUTTONDBLCLK +NCMBUTTONDOWN +NCMBUTTONUP +NCMOUSELEAVE +NCMOUSEMOVE +ncol +NCPAINT +NCRBUTTONDBLCLK +NCRBUTTONDOWN +NCRBUTTONUP +NCRENDERING +Ndombe +ndp +NEEDDISPATCH +Nemeth +NESW +netcore +netcoreapp +netcpl +netframework +netsetup +netsh +Neue +newcolor +newdev +newitem +newpath +newrow +newtonsoft +niels +nielslaute +NIF +NLD +nlog +NLSTEXT +NOACTIVATE +NOAGGREGATION +NOASYNC +NOCLOSEPROCESS +NOCOPYBITS +nodeca +nodiscard +nodoc +NOINHERITLAYOUT +NOINTERFACE +NOLINKINFO +NOMINMAX +NOMOVE +NONAME +nonclient +NONCONVERT +NONELEVATED +NONINFRINGEMENT +nonpackaged +nonstd +NOOWNERZORDER +NOPARENTNOTIFY +NOREDIRECTIONBITMAP +NOREDRAW +NOREMOVE +norename +NOREPEAT +NOREPOSITION +norestart +NORMALDISPLAY +NORMALUSER +Noronha +NOSEARCH +NOSENDCHANGING +NOSIZE +notfound +NOTIFICATIONSDLL +NOTIFYICONDATAW +NOTIMPL +notmatch +Noto +NOTOPMOST +NOTRACK +NOUPDATE +NOZORDER +NPH +NResize +NTAPI +ntdll +NTFS +NTSTATUS +nugets +nullonfailure +numberbox +NUMLOCK +NUMPAD +Nunavut +Nusa +nwc +Objbase +OBJID +objidl +oblitum +ocr +Ocrsettings +odbc +odbccp +Oem +officehubintl +ofs +oldcolor +olditem +oldnewthing +oldpath +oldtheme +oleaut +OLECHAR +oledb +oledbcommand +oledbconnection +OLIVEGREEN +onebranch +onenote +onstd +oobe +OOBEPT +opencode +opensource +openxmlformats +OPTIMIZEFORINVOKE +ORAW +ORPHANEDDIALOGTITLE +oss +ostr +OSVERSIONINFOEX +OSVERSIONINFOEXW +osvi +OUTOFCONTEXT +OUTOFMEMORY +outpin +Outptr +outputtype +outro +outsettings +OVERLAPPEDWINDOW +overlaywindow +Oversampling +OWNDC +Packagemanager +PACL +PAINTSTRUCT +PALEBLUE +palenshus +PALETTEWINDOW +paramref +PARENTNOTIFY +PARENTRELATIVEEDITING +PARENTRELATIVEFORADDRESSBAR +PARENTRELATIVEPARSING +PArgb +parray +PARTIALCONFIRMATIONDIALOGTITLE +pathcch +Pathto +PAUDIO +pbc +Pbgra +pcb +pch +PCIDLIST +PCWSTR +pdb +pdbonly +pdo +pdto +pdtobj +pdw +PDWORD +pedrolamas +PERCEIVEDFLAG +pesi +peteblois +PEXCEPTION +pfn +pfo +pft +pgp +pguid +PHANDLE +PHANDLER +phbm +phbmp +phwnd +pici +pid +pidl +PIDLIST +PINDIR +pinfo +pinvoke +pipename +Pitcairn +PKBDLLHOOKSTRUCT +PKEY +plib +PLK +ploc +ploca +plocm +plugins +pluginsmodel +PMSIHANDLE +Pohnpei +Popups +POPUPWINDOW +posix +poweraccent +powerlauncher +POWEROCR +powerpreview +powerrename +POWERRENAMECONTEXTMENU +powerrenameinput +POWERRENAMETEST +powertoy +POWERTOYNAME +powertoyssetup +Powrprof +ppidl +ppmt +pprm +pproc +ppsi +ppsid +ppsrm +ppsrree +ppsz +pptal +ppv +prc +precomp +Prefixer +Preinstalled +prevhost +previewer +previewhandlerframeinfo +previewpane +previouscamera +PREVIOUSINSTALLFOLDER +PREVIOUSVERSIONSINSTALLED +prevpane +prgms +pri +Primorsky +PRINTCLIENT +prm +proactively +PROCESSKEY +PRODEXT +PRODUCTVERSION +Progman +programdata +PROGRAMFILES +projectname +PROPBAG +PROPERTYKEY +propkey +propvarutil +prvpane +psapi +PSECURITY +psfgao +Psr +psrm +psrree +pstr +pstream +pstrm +PSYSTEM +psz +ptb +ptc +ptd +PTOKEN +PToy +ptstr +PULONG +pwa +pwcs +pwsh +PWSTR +pwsz +pwtd +QDC +qianlifeng +qit +QITAB +QITABENT +qps +QUERYENDSESSION +queryfocus +QUERYOPEN +QUEUESYNC +Quickime +QUNS +qwertyuiopasdfghjklzxcvbnm +qword +qwrtyuiopsghjklzxvnm +RAII +RAlt +randyrants +RAWINPUT +RAWINPUTDEVICE +RAWINPUTHEADER +RAWPATH +Rbp +RBUTTON +RBUTTONDBLCLK +RBUTTONDOWN +RBUTTONUP +rclsid +RCONTROL +RCtrl +READMODE +READWRITE +RECTDESTINATION +RECTL +rectp +rects +recyclebin +redirectedfrom +Redist +redistributable +reencode +reencoded +REFCLSID +REFGUID +REFIID +REGCLS +regedit +regfile +REGFILTER +REGFILTERPINS +REGISTERCLASSFAILED +registerhotkey +registrypath +regkey +REGPINTYPES +regsvr +reinit +REINSTALLMODE +reloadable +Remapper +remappings +REMAPSUCCESSFUL +REMAPUNSUCCESSFUL +Remotable +Removelnk +renamable +RENAMEONCOLLISION +Renamer +reparse +requery +requerying +rescap +resgen +resheader +resizers +resmimetype +RESOURCEID +resourcemanager +RESTORETOMAXIMIZED +restrictedcapabilities +restrictederrorinfo +resultlist +resw +resx +retval +rfc +RGBQUAD +rgbs +rgn +rgs +rhs +ricardosantos +RIDEV +RIGHTSCROLLBAR +riid +RKey +RLO +RMENU +RNumber +roadmap +robmensching +Roboto +rooler +roslyn +Rothera +roundf +ROUNDSMALL +Rpc +RRF +rrr +RSAT +rshift +Rsp +Rstrtmgr +RTB +RTLREADING +RTSS +ruleset +runas +rundll +rungameid +RUNLEVEL +runsettings +runtimeclass +runtimeconfig +runtimeobject +runtimes +RUS +Rutkas +RValue +rvm +rwin +ryanbodrug +saahmedm +sacl +safeprojectname +SAMEKEYPREVIOUSLYMAPPED +SAMESHORTCUTPREVIOUSLYMAPPED +SAVEFAILED +scancode +scanled +Schd +schedtasks +Scip +scipbe +scoobe +SCOPEID +screenshot +scrollviewer +sddl +SDKDDK +sdns +searchterm +secauthz +Secur +securityoverview +segoe +Sekan +SENDCHANGE +sendinput +sendvirtualinput +Seperate +Seraphima +serverside +SETCONTEXT +setcursor +setenv +SETFOCUS +SETFOREGROUND +SETICON +setlocal +Setrect +SETREDRAW +SETTEXT +SETTINGCHANGE +settingsheader +settingshotkeycontrol +SETWORKAREA +setzero +sfgao +SFGAOF +SFP +sharpkeys +SHCNE +SHCNF +shcore +shellapi +SHELLDLL +shellex +SHELLEXECUTEINFO +SHELLEXECUTEINFOW +shellscalingapi +SHFILEINFO +SHGFI +Shl +shldisp +shlobj +Shlw +shlwapi +shmem +shobjidl +SHORTCUTATLEAST +shortcutcontrol +shortcutguide +SHORTCUTMAXONEACTIONKEY +SHORTCUTNOREPEATEDMODIFIER +SHORTCUTONEACTIONKEY +SHORTCUTSTARTWITHMODIFIER +Shortcuttool +shortdate +SHORTPATH +shortsplit +should't +showcolorname +SHOWDEFAULT +SHOWELEVATIONPROMPT +SHOWMAXIMIZED +SHOWMINIMIZED +SHOWMINNOACTIVE +SHOWNA +SHOWNOACTIVATE +SHOWNORMAL +showwindow +shtypes +SICHINT +sid +siex +sigdn +SIGNINGSCENARIO +Signtool +SINGLEKEY +singlekeyremapcontrol +singletones +sipolicy +SIZEBOX +Sizename +SIZENESW +SIZENS +SIZENWSE +sizeread +SIZEWE +SKIPOWNPROCESS +sku +SLGP +sln +SMALLICON +smartphone +SMTO +snd +snwprintf +softline +somil +Soref +SOURCECLIENTAREAONLY +SOURCEHEADER +sourcesdirectory +spam +spdisp +spdlog +spdo +spec'ing +specialfolder +spesi +splitwstring +spsi +spsia +spsrm +spsv +SRCCOPY +Srch +sre +Srednekolymsk +SResize +srme +srre +srw +srwlock +sse +ssf +STACKFRAME +stackoverflow +stackpanel +standalone +STARTF +startupapps +STARTUPINFO +STARTUPINFOEX +STARTUPINFOW +startupscreen +statflag +STATICEDGE +STATSTG +stdafx +STDAPI +stdcall +stdcpp +stdcpplatest +STDMETHODCALLTYPE +STDMETHODIMP +stefan +Stereolithography +stgm +STGMEDIUM +sticpl +stl +storelogo +STRINGIZE +stringtable +stringval +Strmiids +strsafe +strutil +sttngs +Stubless +STYLECHANGED +STYLECHANGING +stylecop +Subdir +subfolders +subkey +SUBLANG +subquery +subresource +Sul +Superbar +Suri +sut +SVE +SVGIn +SVGIO +svgz +SWC +SWFO +SWP +SWRESTORE +SYMED +SYMOPT +SYNCMFT +SYNCPAINT +SYSCHAR +SYSCOLORCHANGE +SYSCOMMAND +SYSDEADCHAR +sysdm +SYSICONINDEX +sysinfo +SYSKEY +syskeydown +syskeyup +SYSMENU +SYSTEMAPPS +systemroot +SYSTEMTIME +sysvol +Tadele +Tajikistan +talynone +TApp +TApplication +TApplied +Taras +targ +TARGETAPPHEADER +TARGETDIR +targetentrypoint +TARGETHEADER +targetnametoken +targetver +taskbar +taskkill +tasklist +taskschd +tchar +Tcollab +tcscpy +TCustom +tdbuild +TDefault +TDevice +telem +Templated +templatenamespace +Tenggara +testapp +testcase +testhost +testprocess +TEXCOORD +textblock +TEXTEXTRACTOR +TEXTINCLUDE +themeresources +THH +THICKFRAME +THISCOMPONENT +THotkey +TILEDWINDOW +timedate +timediff +timeunion +timeutil +timezones +Titlecase +TLayout +tlb +TMPVAR +TNP +toggleswitch +toolkitcontrols +toolkitconverters +Toolset +toolwindow +TOPDOWNDIB +tostring +TOUCHEVENTF +TOUCHINPUT +touchpad +Towindow +tracelogging +traies +transicc +Transnistria +TRAYMOUSEMESSAGE +triaging +TRK +trl +Tshuapa +TStr +Tuva +TValue +TWF +tymed +typedef +TYPEKEY +TYPEKEYBOARD +TYPELIB +TYPEMOUSE +typeparam +TYPESHORTCUT +UAC +UAL +uap +uapmanifestschema +udit +Udk +Udmurtia +Udp +uefi +UHash +UIA +uiauto +uid +UIEx +uipi +UIs +Ulaanbaatar +ULARGE +ULONGLONG +uncompilable +UNCPRIORITY +UNDNAME +UNICODETEXT +Uninitialize +uninstalling +uninstantiated +uniquifier +Uniquifies +unitconverter +unittests +unk +unknwn +UNLEN +Unmap +unmute +UNORM +unregistering +unremapped +unsubscribe +unvirtualized +Updatelayout +UPGRADINGPRODUCTCODE +Uptool +Urville +Usb +USEDEFAULT +USEFILEATTRIBUTES +USERDATA +USERDOMAIN +userprofile +USESHOWWINDOW +USESTDHANDLES +USRDLL +Utc +utf +uuidof +Uvs +uwp +uxtheme +UYVY +vabdq +validmodulename +Vanara +vcamp +vccorlib +vcdl +vcgtq +VCINSTALLDIR +vcm +vcomp +Vcpkg +VCRT +vcruntime +vcvars +VDesktop +vdi +vdupq +vec +VERBSONLY +VERBW +VERIFYCONTEXT +verrsrc +VERSIONINFO +Versioning +VFT +vget +vgetq +vid +VIDCAP +videoconference +videoconferencevirtualdriver +VIDEOINFOHEADER +viewbox +viewmodel +vih +virtualkey +visiblecolorformats +Visibletrue +VKey +VKTAB +vmovl +vorrq +VOS +vpaddlq +Vpn +vqsubq +VREDRAW +vreinterpretq +VSC +VSCBD +vscdb +vsconfig +VSCROLL +vsetq +vsonline +vstemplate +VSTHRD +VSTT +vswhere +vtable +Vtbl +WANTPALM +wbem +wbemuuid +WBounds +wca +wcautil +WCE +wcex +WClass +wcsnicmp +WDA +wdp +wdupenv +weakme +webcam +webpage +websearch +webserver +website +wekyb +Wevtapi +wgpocpl +whitespaces +WIC +wifi +wikipedia +wildcards +winapi +winappdriver +winauto +wincodec +Wincodecsdk +wincolor +windef +windir +WINDOWCREATED +WINDOWEDGE +WINDOWNAME +WINDOWPLACEMENT +WINDOWPOSCHANGED +WINDOWPOSCHANGING +Windowsapp +WINDOWSBUILDNUMBER +Windowscodecs +windowsdesktop +windowssearch +windowssettings +WINDOWSTYLES +WINDOWSTYLESICON +windowsx +windowwalker +winerror +WINEVENT +winevt +winexe +winforms +winfx +winget +wingetcreate +Winhook +winkey +WINL +winmd +winmm +winmsg +winnt +winres +winrt +winsdk +winsdkver +winspool +winternl +WINTHRESHOLD +winui +winuiex +winuser +winxamlmanager +wistd +withinrafael +Withscript +wix +wixproj +wixtoolset +WIXUI +WKSG +Wlkr +wmain +Wman +wmi +WMICIM +WMKEYDOWN +WMKEYUP +wmp +WMSYSKEYDOWN +WMSYSKEYUP +wnd +WNDCLASS +WNDCLASSEX +WNDCLASSEXW +WNDPROC +wordpad +workaround +workflows +workspaces +wox +wparam +wpf +wpftmp +wpr +wprp +wql +wregex +WResize +writefile +Wrk +wrl +wsf +wsh +wsl +wss +wstr +wsz +wtoi +WTS +wtsapi +WTSAT +wtypes +Wubi +wuceffectsi +WVC +Wwan +Wwanpp +XAttribute +Xbox +XBUTTON +XBUTTONDBLCLK +XBUTTONDOWN +XBUTTONUP +xcopy +XDocument +XElement +XFile +XIncrement +XLoc +XNamespace +XOffset +XPixel +XResource +xsi +XStr +XVIRTUALSCREEN +Yamalia +YIncrement +yinle +yinwang +yinyue +YOffset +YStr +YUY +yuyoyuppe +YUYV +YVIRTUALSCREEN +YVU +YVYU +Zabaykalsky +ZEROINIT +ZIndex +zipfile +zipfolder +zonable +zoneset +Zoneszonabletester +Zonev +Zykova +zzz diff --git a/.github/actions/spell-check/line_forbidden.patterns b/.github/actions/spell-check/line_forbidden.patterns new file mode 100644 index 0000000000..e8c5179a47 --- /dev/null +++ b/.github/actions/spell-check/line_forbidden.patterns @@ -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 diff --git a/.github/actions/spell-check/patterns.txt b/.github/actions/spell-check/patterns.txt new file mode 100644 index 0000000000..774349778a --- /dev/null +++ b/.github/actions/spell-check/patterns.txt @@ -0,0 +1,179 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns + +# Automatically suggested patterns +# hit-count: 2206 file-count: 617 +# IServiceProvider +\bI(?=(?:[A-Z][a-z]{2,})+\b) + +# hit-count: 111 file-count: 57 +# hex runs +\b[0-9a-fA-F]{16,}\b + +# hit-count: 89 file-count: 36 +# GitHub SHAs (markdown) +(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|) + +# hit-count: 67 file-count: 59 +# w3 +\bw3\.org/[-0-9a-zA-Z/#.]+ + +# hit-count: 47 file-count: 3 +# Contributor +\[[^\]]+\]\(https://github\.com/[^/\s"]+\) + +# hit-count: 45 file-count: 2 +# Non-English +[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]* + +# hit-count: 22 file-count: 18 +# stackexchange -- https://stackexchange.com/feeds/sites +\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/) + +# hit-count: 7 file-count: 3 +# Wikipedia +\ben\.wikipedia\.org/wiki/[-\w%.#]+ + +# hit-count: 5 file-count: 3 +# vs devops +\bvisualstudio.com(?::443|)/[-\w/?=%&.]* + +# hit-count: 3 file-count: 3 +# githubusercontent +/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]* + +# hit-count: 2 file-count: 2 +# mailto urls +mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,} + +https?://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]* +# GitHub SHAs +\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b +://github\.(?:com|blog)/[^\w")]+ +(?:\[[0-9a-f]+\]\(https:/|)/github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b +# githubusercontent +://githubusercontent\.com/[^\w")]+ +# gist github +/gist\.github\.com/[^/]+/[0-9a-f]+ + +# msdn +\b(?:download\.visualstudio|docs|msdn)\.microsoft\.com/[-_a-zA-Z0-9()=./]* + +# medium +link\.medium\.com/[a-zA-Z0-9]+ +\bmedium\.com/\@[^/]+/[-\w]+ + +publicKeyToken=(['"]|)[0-9a-f]+\g{-1} +\@sha256:[0-9a-f]{64}\b + +# data urls +(['"])data:.*?\g{-1} +data:[-a-zA-Z=;:/0-9+]*,\S* + +# uuid: (or CompGUIDPrefix) +L?(["']|[-<({>]|\b)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{10,12}(?:\g{-1}|[<})>]) + +# c99 hex digits (not the full format, just one I've seen) +0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP] + +# URL escaped characters +\%[0-9A-F]{2} + +# wregex +std::wregex\(L"[^"]*"\) + +# hash +Hash="[0-9A-F]{40}" +# SHA256 hash +'[0-9A-F]{64}' + +# hex digits including css/html color classes: +(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23|L")[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b + +(?:L"[abAB]+", ){3}L"[abAB]+" +"Lorem[^"]+?\." +TestCase\("[^"]+" + +# Test line with hexadecimal colors +\[DataRow\("[0-9A-F]{6}", \d{3}, \d{3}, \d{3}\)\] +\[DataRow\("[0-9A-F]{6}", \d{3}.\d{1}, \d{3}.\d{1}, \d{3}.\d{1}\)\] +\[DataRow\("[0-9A-F]{6}", "[BCGMRY]\d\d?", \d{3}, \d{3}\)\] + +# version suffix v# +[Vv]\d+(?:\b|(?=[a-zA-Z_])) + +# Windows paths +\\native +\\netcoreapp +\\netstandard +\\network +\\notifications +\\recyclebin +\\Registry +\\registry +\\reinstall +\\Resize +\\resource +\\Resources +\\restart +\\restore +\\result +\\rotating +\\runner +\\runtimes +\\Telemetry +\\telemetry +\\testapp +\\tests +\\tools + +# plugin.json +^ "ID": "[0-9A-F]{32}",$ + +# UnitTests +\[DataRow\(.*\)\] + +# Id info inside markdown file (registry.md) +^\|\s+ID\s+\|\s*\`[0-9A-F]{32}\` + +# TestCase strings intentionally have non dictionary items +\[TestCase\(new string.*\] + +# D2D +D?2D + +# marker for ignoring a comment to the end of the line +^.*/\* #no-spell-check-line \*/.*$ +// #no-spell-check.*$ + +http://tes/ + +# tar arguments +\b(?:\\n|)tar(?:\s+-[a-zA-Z]+|\s[a-z]+)+ + +# fabricbot.json +"id": "\S+" +"commentPattern": ".*" +# Questionably acceptable forms of `in to` +# Personally, I prefer `log into`, but people object +# https://www.tprteaching.com/log-into-log-in-to-login/ +\b[Ll]og in to\b + +# acceptable duplicates +# ls directory listings +# /bin/ls -l output +[-bcdlpsw](?:[-r][-w][-sx]){3}\s+\d+\s+(\S+)\s+\g{-1}\s+\d+\s+ +# C types and repeated CSS values +\s(center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s +# go templates +\s(\w+)\s+\g{-1}\s+\`(?:graphql|json|yaml): +# 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}\.$ + +# ignore long runs of a single character: +\b([A-Za-z])\g{-1}{3,}\b diff --git a/.github/actions/spell-check/reject.txt b/.github/actions/spell-check/reject.txt new file mode 100644 index 0000000000..b5a6d36809 --- /dev/null +++ b/.github/actions/spell-check/reject.txt @@ -0,0 +1,10 @@ +^attache$ +benefitting +occurences? +^dependan.* +^oer$ +Sorce +^[Ss]pae.* +^untill$ +^untilling$ +^wether.* diff --git a/.github/workflows/spelling2.yml b/.github/workflows/spelling2.yml new file mode 100644 index 0000000000..0cbb2ce08c --- /dev/null +++ b/.github/workflows/spelling2.yml @@ -0,0 +1,122 @@ +# spelling.yml is blocked per https://github.com/check-spelling/check-spelling/security/advisories/GHSA-g86g-chm8-7r2p +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: + push: + branches: + - "**" + tags-ignore: + - "**" + pull_request_target: + branches: + - "**" + tags-ignore: + - "**" + types: + - 'opened' + - 'reopened' + - 'synchronize' + +jobs: + spelling: + name: Spell checking + permissions: + contents: read + pull-requests: read + actions: read + outputs: + followup: ${{ steps.spelling.outputs.followup }} + 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: check-spelling + id: spelling + uses: check-spelling/check-spelling@v0.0.21 + with: + config: .github/actions/spell-check + suppress_push_for_open_pull_request: 1 + checkout: true + check_file_names: 1 + spell_check_this: check-spelling/spell-check-this@prerelease + post_comment: 0 + use_magic_file: 1 + extra_dictionary_limit: 10 + extra_dictionaries: + cspell:software-terms/src/software-terms.txt + cspell:cpp/src/stdlib-cpp.txt + cspell:filetypes/filetypes.txt + cspell:cpp/src/stdlib-c.txt + cspell:fullstack/fullstack.txt + cspell:html/html.txt + cspell:css/css.txt + + 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: + config: .github/actions/spell-check + 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: + config: .github/actions/spell-check + checkout: true + spell_check_this: check-spelling/spell-check-this@prerelease + task: ${{ needs.spelling.outputs.followup }}