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 index c83423a8ef..1004eeaa60 100644 --- a/.github/actions/spell-check/advice.md +++ b/.github/actions/spell-check/advice.md @@ -1,7 +1,17 @@ -
If the flagged items do not appear to be text +
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, @@ -12,14 +22,4 @@ https://www.regexplanet.com/advanced/perl/) yours before committing to verify it 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). -
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 index ffbbf90dbc..979f48ee4f 100644 --- a/.github/actions/spell-check/allow/names.txt +++ b/.github/actions/spell-check/allow/names.txt @@ -1,17 +1,16 @@ -adamchilders +ABradley azchohfi bdoserror crutkas +dependabot Deuchert edwinzap -eltociear hallatore -harvastum +jefflord mshtang +naveensrinivasan nVidia -rcmaehl robmen -shandsj skycommand snickler sinclairinat 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 index bc08eed6e4..e8006d0a24 100644 --- a/.github/actions/spell-check/excludes.txt +++ b/.github/actions/spell-check/excludes.txt @@ -1,40 +1,92 @@ # See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes -(?:^|/)monacoSRC/ -(?:^|/)MonacoPreviewHandler/customLanguages/ -(?:^|/)MonacoPreviewHandler/monaco_languages.json -(?:^|/)MonacoPreviewHandler/index.html -(?:^|/)MonacoPreviewHandler/generateLanguagesJson.html -(?:^|/)MonacoPreviewHandler/monacoSpecialLanguages.js (?:^|/)(?i)COPYRIGHT (?:^|/)(?i)LICEN[CS]E -(?:^|/)package(?:-lock)\.json$ +(?:^|/)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/ -ignore$ [/.][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$ -\.jpg$ +\.jar$ +\.jks$ +\.jpe?g$ +\.key$ \.lcl$ +\.lib$ \.lock$ -\.min\. +\.map$ +\.min\.. \.mod$ +\.mp[34]$ +\.o$ +\.ocf$ +\.otf$ \.pdf$ +\.pem$ \.PNG$ \.png$ +\.psd$ +\.pyc$ +\.s$ \.stl$ -\.woff$ +\.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$ @@ -49,9 +101,4 @@ ignore$ ^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$ ^tools/CleanUp_tool/CleanUp_tool\.vcxproj\.filters$ ^tools/Verification scripts/Check preview handler registration\.ps1$ -^\.github/ -^\.github/actions/spell-check/ -^\.gitmodules$ -(?:^|/)WindowsSettings\.json$ -(?:^|/)timezones\.json$ -^\Q.pipelines/ESRPSigning_core.json\E$ +ignore$ diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index cb2563c8a8..469ead5345 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -1,6 +1,4 @@ aaaa -abcdef -ABCDEFGHIJKLMNOPQRSTUVWXYZ abgr abi ABlocked @@ -14,18 +12,20 @@ accessibilityinsights Acl aclapi AColumn -acos acrt -actioned activatable ACTIVATEAPP activationaction ADDUNDORECORD ADifferent +administra ADMINS +adml +admx advapi advfirewall AFeature +AFFINETRANSFORM AFX AGGREGATABLE AHybrid @@ -33,14 +33,11 @@ Akrotiri Aktobe ALarger alekhyareddy -alignas ALLAPPS ALLINPUT -Alloc ALLOWUNDO ALPHATYPE Altdown -altform alwaysontop amd AMF @@ -50,42 +47,37 @@ AMPROPSETID Andreanof anges angularsen +Animatable ansicolor ANull AOC aocfnapldcnfbofgmbbllojgocaelgdd APARTMENTTHREADED APeriod -api APIENTRY APIIs -Apm APPBARDATA appdata -APPICON -appid +APPEXECLINK +APPIDS appium -APPLASTZONE Applets Applicationcan applicationframehost +Applist applog appmanifest appref apps appwindow appwiz -appx -appxmanifest +appxpackage APSTUDIO AQS Aqtobe arcosh ARemapped argb -argc -args -argv arik Arity arjunbalgovind @@ -94,13 +86,10 @@ ARPPRODUCTICON ARRAYSIZE arsinh artanh -Artboard Artsakh asdf AShortcut ASingle -asm -aspnet ASSOCCHANGED ASYNCWINDOWPLACEMENT ASYNCWINDOWPOS @@ -112,55 +101,45 @@ atleast atlfile atlstr Attribs -attrs Atyrau aumid Aut Authenticode AUTHN AUTHZ -autogenerate -autogenerated AUTOHIDE AUTOMATIONPROPERTIES Autorun -Autostart AUTOUPDATE AValid Avanc -Awaitable awakeness awakeversion -AWAYMODE AYUV -backend backtracer -BADD bak Bashkortostan Bayan bbwe bck -Bcl Belarus betadele betsegaw BGR bgra -BGSOUNDS bhid -Bicubic bigbar bigobj -binaryformatter binlog +BITMAPFILEHEADER bitmapimage BITMAPINFO BITMAPINFOHEADER bitmask +BITSPIXEL bla Blockquotes -blog +blogs BLUEGRAY Bluetooth BLURBEHIND @@ -170,7 +149,6 @@ bms BNumber Bokm BOKMAL -boolalpha bootstrapper BOOTSTRAPPERINSTALLFOLDER Bopomofo @@ -189,9 +167,8 @@ Btn BTNFACE Bto buf -BUFSIZE bugreport -BUILDARCH +BUILDNUMBER buildtask buildtransitive Burkina @@ -205,7 +182,6 @@ callbackptr Cangjie CANRENAME CAPTURECHANGED -cassert CAtl cch CCom @@ -217,16 +193,13 @@ cdpx CENTERALIGN cguid changecursor -Changelog Changemove -charconv chdir CHILDACTIVATE CHILDWINDOW Choibalsan chrdavis chromaticities -chrono Chrzan CHT Chukotka @@ -235,16 +208,13 @@ cielab ciexyz cim CImage -cinttypes cla clangformat CLASSDC -classname CLASSNOTAVAILABLE clickable clickonce CLIENTEDGE -CLIENTPULL clientside CLIPCHILDREN Clipperton @@ -255,7 +225,6 @@ CLSCTX clsid Clusion cmder -Cmdlet cmdline Cmds CMIC @@ -263,17 +232,16 @@ CMINVOKECOMMANDINFO CMINVOKECOMMANDINFOEX CMock CMONITORS -cmp +cmpgt cmyk cnt Cocklebiddy coclass -codebase -codecvt CODENAME codeofconduct codereview Codespaces +codicon COINIT colorconv colorformat @@ -282,7 +250,6 @@ colorhistorylimit COLORKEY colorpicker COLORREF -colorscheme comctl COMDAT comdef @@ -290,39 +257,35 @@ comdlg comhost cominterop commandline +COMMANDTITLE commctrl Comoros companding -Compat COMPOSITIONFULL comsupp comsuppw comsuppwd comutil -Concat concrt -configs -Configurator CONFLICTINGMODIFIERKEY CONFLICTINGMODIFIERSHORTCUT CONOUT Consolas constexpr +consts contentdialog contentfiles CONTEXTHELP -contextmenu CONTEXTMENUHANDLER CONTROLL CONTROLPARENT Controlz -Coords copiedcolorrepresentation +corewebview cortana cotaskmem COULDNOT countof -cout CPower cppblog cppruntime @@ -332,28 +295,18 @@ CProj CREATESCHEDULEDTASK CREATESTRUCT CREATEWINDOWFAILED -cref critsec -crlf -cron Crossdevice CRSEL CSearch CSettings -csharp CSIDL -csignal cso CSRW -cstdint -cstdlib -cstring CStyle CSY -CTAB CTest -ctime -ctor +Ctl CTRLALTDEL Ctrls Ctx @@ -366,24 +319,27 @@ customaction CUSTOMACTIONTEST cvd CVirtual -cwchar +cvtepu +cvtsi cwd cxfksword CXSMICON CXVIRTUALSCREEN cxxopts cyberrex -Cyrl CYSMICON CYVIRTUALSCREEN cziplib +cziplob Dac dacl +damienleroy Danmarkshavn DARKPURPLE DARKTEAL DARKYELLOW datareader +datatemplate Datavalue DATAW davidegiacometti @@ -392,20 +348,23 @@ Dbg Dbghelp DBLCLKS DBLEPSILON +DCapture +DCBA DCOM +dcommon dcomp dcompi DComposition +DCR +DDevice ddf -DDLM +DDxgi Deact debian debugbreak DECLAR declspec -decltype Dedup -deduplicate DEFAULTBOOTSTRAPPERINSTALLFOLDER DEFAULTCOLOR DEFAULTFLAGS @@ -419,62 +378,44 @@ deinitialization DELA deletethis Delimarsky -delims dend DENORMAL Deondre depersist deprioritized -deps deref -deserialization -deserialize -deserialized DESKTOPABSOLUTEEDITING DESKTOPABSOLUTEPARSING desktopshorcutinstalled desktopwindowxamlsource -dest DEU devblogs devdocs devenum DEVMON -devops devpkey DEVSOURCE -dhcp -diffing -difftime DIIRFLAG dimm directshow -dirs DISABLEASACTIONKEY -dispid -DISPIDAMBIENTDLCONTROL DISPLAYCHANGE DISPLAYCONFIG displayname divyan -DLACTIVEXCTLS -DLCONTROL Dlg DLGFRAME DLGMODALFRAME dlib -DLIMAGES dllexport dllhost dllmain -dlls DNLEN Dns -doctype DONOTROUND +DONTRESOLVEDLLREFERENCES DONTVALIDATEPATH dotnet -DOWNLOADONLY DPICHANGED DPIs DPolicy @@ -486,7 +427,6 @@ drawingcolor dreamsofameaningfullife drivedetectionwarning dshow -dst dutil DVASPECT DVASPECTINFO @@ -497,11 +437,12 @@ DVSD DVSL DVTARGETDEVICE DWINRT +dwl dwm dwmapi -dwmcorei DWMCOLORIZATIONCOLORCHANGED DWMCOMPOSITIONCHANGED +dwmcorei DWMNCRENDERINGCHANGED Dwmp DWMSENDICONICLIVEPREVIEWBITMAP @@ -510,10 +451,11 @@ DWMWA DWMWCP DWMWINDOWATTRIBUTE DWMWINDOWMAXIMIZEDCHANGE -dword +DWORDLONG dworigin dwrite dxgi +dxgidebug dxgiformat dxguid ecount @@ -521,36 +463,31 @@ EData Edid EDITKEYBOARD editkeyboardwindow -editorconfig EDITSHORTCUTS editshortcutswindow EFile ekus -elif -elseif +emmintrin Emoji emptyrecyclebin +ENABLEDELAYEDEXPANSION +enabledisable ENABLEDPOPUP -endforeach -endif -endl endpointvolume endregion ENTERSIZEMOVE -entrypoint ENU -enum +enumerationoptions EOAC -eol epicgames -epo +epu Eqn ERASEBKGND EREOF EResize -ERRORMESSAGE -ERRORTITLE ERole +ERRORLEVEL +ERRORTITLE ESettings esize esrp @@ -559,6 +496,7 @@ etl etw Eucla EUQ +eurochange eventlog everytime evt @@ -570,8 +508,8 @@ EWXREBOOT EWXSHUTDOWN examplehandler examplepowertoy +EXCLUDEFROMCAPTURE exdisp -Executables executionpolicy exename exif @@ -580,18 +518,16 @@ exlist EXPCMDFLAGS EXPCMDSTATE explr -expr exsb EXSEL exstyle EXTENDEDKEY EXTENDEDVERBS eyetracker -fallthrough +fabricbot fancyzones FANCYZONESDRAWLAYOUTTEST FANCYZONESEDITOR -FANCYZONESWINDOWSTYLES Farbraum Faroe FARPROC @@ -603,49 +539,39 @@ fileapi FILEEXPLORER FILEFLAGS FILEFLAGSMASK +FILELOCKSMITH +FILELOCKSMITHEXT +FILELOCKSMITHLIB +FILELOCKSMITHLIBINTEROP FILEOP FILEOS -filepath FILESUBTYPE FILESYSPATH -filesystem FILETIME -FILETYPE FILEVERSION Filtergraph Filterkeyboard Filterx finalizer findfast -findstr -Firefox +firefox FIXEDFILEINFO -FLASHZONES -FLASHZONESONQUICKSWITCH -flt flyout -fmtlib FOF FOFX FOLDERID folderpath FORCEMINIMIZE -FORCEOFFLINE -foreach formatetc FRAMECHANGED -FRAMEDOWNLOAD -franky frankychen Froml -fstream +FROMTOUCH +FSCTL FTYPE -func Functiondiscoverykeys Futuna fwlink -fwrite -fxcop FZE gabime GAC @@ -657,27 +583,28 @@ GBs GCLP gcnew gcode -gcodepreviewhandler gdi gdiplus GDISCALED -generatesqlfromuserquery +getancestor +getasynckeystate GETDESKWALLPAPER GETDLGCODE GETDPISCALEDSIZE GETICON -getline GETMINMAXINFO GETSTATE GETTEXT GETTEXTLENGTH -github -githubusercontent -globals +GHND +globalassemblycache +Globbing +GMEM GNumber google -GPTR -gsuberland +gpo +gpu +GSM gtm gui guiddef @@ -685,11 +612,14 @@ GUITHREADINFO GValue gwl GWLP -haccel +HACCEL +handlekeyboardhookevent +handlerroutine hangeul hanselman -hardcoded +Hanzi Hardlines +hardlinks HARDWAREINPUT hashcode Hashset @@ -712,16 +642,13 @@ HEB Heiko helptext Heure -HEVC -hfile -HFONT +HGFE hglobal hhk HHmmss HHOOK hhx -Hiber -Hiberboot +HIBYTE HICON HIDEWINDOW highlighter @@ -739,25 +666,23 @@ HKLM HKPD HKU HLOCAL -HLSL HMD hmenu hmodule hmonitor HOLDENTER HOLDESC -homepage +HOMEPATH homljgmgpmcbpjbnjpfijnhipfkiclkd HOOKPROC Hostbackdropbrush -hostname -hotfix hotkeycontrol hotkeys hotlight hotspot Hovd HPAINTBUFFER +HPALETTE HRAWINPUT hread HREDRAW @@ -772,9 +697,11 @@ hsl hstring hsv htcfreek +HTCLIENT HTHUMBNAIL -Htmdid +HTOUCHINPUT HTTRANSPARENT +HValue Hvci hwb HWINEVENTHOOK @@ -783,120 +710,58 @@ HWNDFIRST HWNDLAST HWNDNEXT HWNDPREV -IAction -IActivated -IAnimatable -IApp -IApplication -IAppx -IAsync -IAudio -IBackground +hyjiacan IBase IBeam -IBind ICapture -icase ICEBLUE IClass -ICollection -IColor -ICommand -IComparer -ICompositor ICONERROR -IContext -ICONWARNING -ICore -ICreate IData -IDCANCEL IDD -IDelayed IDesktop -IDictionary -IDirectory -IDispatch -IDispatcher -IDisposable +IDirect idl IDLIST -IDOK IDOn IDR -IDrive idx IDXGI -IEasing -IEnum -IEnumerable -IEnumerator -IEnvironment -IEquality -IEquatable -IEvent IExec IEXPLORE -IExplorer Iface IFACEMETHOD IFACEMETHODIMP -IFancy -ifdef -IFeatures -IFile IFilter -ifndef -IFolder -IFormat -ifstream -IGraph +IGraphics iid -IImage Iindex -IInitialize -IInspectable IIO -IItem -IJson -IKs Ijwhost -IList +IKs ILogon IMAGEHLP imageresizer +IMAGERESIZERCONTEXTMENU IMAGERESIZEREXT +imageresizerinput imageresizersettings imagingdevices -IMain -IMarkdown ime -IMedia -IMem -IMessage imeutil -iminstall -IMoniker -IMouse -impl -IMulti -indierawk inetcpl Infobar INFOEXAMPLE Infotip ingbuffer inheritdoc -INITDIALOG initguid Inkscape Inlines inorder -INotification -INotify -inout INPC inproc +inputdev INPUTHARDWARE INPUTKEYBOARD INPUTLANGCHANGED @@ -917,96 +782,40 @@ Inste Intelli interactable Interlop -interop -Interoperability -intptr INTRESOURCE INVALIDARG invalidoperatioexception -IObject iobjectwithsitesetsite -IObservable -IOle iolewindowcontextsensitivehelp -iomanip -iostream -IPackage -IPath ipc ipcmanager -ipconfig -IPersist -IPin IPlugin IPower ipreview +ipreviewhandler ipreviewhandlertranslateaccelerator ipreviewhandlervisualssetfont -IPrincipal -IProgram IProperty IPublic -IQuery -IRead -IReference -IReflect -IRegistered -IRegistration -IRegistry -IReloadable -IRepository -IResource -IResult -ISavable isbi ISearch -IService -isetting +ISettings isfinite IShell -ISingle -ISmart isocpp iss -IStorage -IStream -istreambuf -istringstream -iswpunct -iswspace -ITab ITask -ITemplate -ITerminal -ITest ith -IThrottled -ithumbnail -ITrigger +ITHUMBNAIL Ittoqqortoormiit IUI IUnknown -IUri -IUrl -IUser -IValue -IVector -IView -IVirtual +ivirtualdesktopmanager IWbem -IWeb IWIC -iwindow -IWindows -IWork -IXaml -IXml +iwr IYUV -IZone -IZoom JArray -jarro -Jarryd jfif jgeosdfsdsgmkedfgdfgdfgbkmhcgcflmi jjw @@ -1017,21 +826,18 @@ jpnime JSONOf Jsons jsonval -jsoref junja jxr jyuwono KBDLLHOOKSTRUCT kbm KEYBDINPUT -keybindings keyboardeventhandlers keyboardmanager keyboardmanagercommon KEYBOARDMANAGEREDITOR keyboardmanagerstate keyboardmanagerui -keycode keydown keydropdowncontrol keyevent @@ -1039,7 +845,6 @@ KEYEVENTF keynum keyremaps keystokes -Keystool Keytool keyup Khakassia @@ -1057,10 +862,8 @@ Kyrgyzstan Kyzylorda LAlt Lambson -lamotile langword Lastdevice -Latn Laute laviusmotileng LAYOUTRTL @@ -1077,40 +880,35 @@ Ldone ldx LEFTSCROLLBAR lego -lemy len LError Lessthan LEVELID LExit -lgii lhs lhwnd -lia LIBID -Lifecycle LIGHTORANGE LIGHTTURQUOISE lindex linkedin linq LINQTo -Linux listview lld LLKH llkhf -Llvm lmcons LMEM LMENU lnk -LOADSTRING +LOADLIBRARYASDATAFILE +LOBYTE LOCALAPPDATA LOCALDISPLAY LOCALPACKAGE localport -localtime +LOCALSYSTEM LOCATIONCHANGE logconsole logfile @@ -1121,10 +919,10 @@ LOGPIXELSX LOn longdate LONGLONG -lookbehind lowlevel LOWORD lparam +LPBITMAPINFOHEADER LPBYTE LPCITEMIDLIST LPCMINVOKECOMMANDINFO @@ -1142,8 +940,8 @@ LPSAFEARRAY LPSTR lpsz lpt +LPTHREAD LPTOP -lptpm LPTSTR LPVOID LPW @@ -1158,6 +956,7 @@ lstrlen LTRB LTRREADING Luhansk +luid LWA lwin LZero @@ -1167,12 +966,11 @@ Macquarie Magadan Mainwindow majortype -makeappx +MAJORVERSION makecab MAKEINTRESOURCE MAKEINTRESOURCEW makepri -malloc Mangere Mangystau manifestdependency @@ -1181,6 +979,7 @@ MAPPEDTOSAMEKEY MAPTOSAMESHORTCUT MAPVK Markdig +Markovic Marquesas martinchrzan martinmoene @@ -1199,21 +998,15 @@ MCDT MCST MDICHILD MDL -mdpreviewhandler mdtext mdtxt mdwn MEDIASUBTYPE mediatype Melman -memcmp -memcpy -memset -MENUBREAK MENUITEMINFO MENUITEMINFOW -messageboxes -METACHARSET +menurc Metadatas metafile mfapi @@ -1229,7 +1022,6 @@ Midl mii MIIM millis -mimetype mindaro Minimatch Minimizable @@ -1238,14 +1030,14 @@ MINIMIZEEND MINIMIZESTART miniz minlevel +MINORVERSION Miracast -mirophone Mishkeegogamang mjpg mkd mkdn mlcfg -MMDDYYYY +MMdd mmdeviceapi mmi mmsys @@ -1253,6 +1045,7 @@ mmsystem mockapi MODECHANGE modernwpf +MODESPRUNED Moldova Mongala MONITORINFO @@ -1262,14 +1055,14 @@ monitorinfof Monthand Moq MOUSEACTIVATE +MOUSEEVENTF MOUSEHWHEEL MOUSEINPUT +MOUSELEAVE MOUSEMOVE -MOUSESWITCH MOUSEWHEEL MOVESIZEEND MOVESIZESTART -MOVEWINDOWS mozilla mpmc MRM @@ -1280,52 +1073,41 @@ msclr mscoree mscorlib msdata -MSDN msedge MSGFLT -mshtmdid MSIFASTINSTALL MSIHANDLE msiquery MSIRESTARTMANAGERCONTROL msix -msixbundle MSIXCA -MSIXVERSION MSLLHOOKSTRUCT Mso msp msrc +msstore mst msvc msvcp MTND Mul -multiline MULTIPLEUSE -Multiselect -multiset multizone Mundrabilla -mutex -mutexes -muxc mvvm myfile MYICON MYTZ NAMECHANGE nameof -namespace -namespaceanddescendants Navassa +navigatetostring NCACTIVATE ncc NCCALCSIZE NCCREATE NCDESTROY NCHITTEST -ncipe NCLBUTTONDBLCLK NCLBUTTONDOWN NCLBUTTONUP @@ -1340,27 +1122,24 @@ NCRBUTTONDBLCLK NCRBUTTONDOWN NCRBUTTONUP NCRENDERING -NDEBUG Ndombe ndp NEEDDISPATCH +Nemeth NESW netcore netcoreapp netcpl netframework -NETFX netsetup netsh -netstandard Neue newcolor newdev newitem newpath newrow -Newtonsoft -nia +newtonsoft niels nielslaute NIF @@ -1373,8 +1152,8 @@ NOASYNC NOCLOSEPROCESS NOCOPYBITS nodeca +nodiscard nodoc -noexcept NOINHERITLAYOUT NOINTERFACE NOLINKINFO @@ -1385,6 +1164,7 @@ nonclient NONCONVERT NONELEVATED NONINFRINGEMENT +nonpackaged nonstd NOOWNERZORDER NOPARENTNOTIFY @@ -1401,9 +1181,7 @@ Noronha NOSEARCH NOSENDCHANGING NOSIZE -notafter notfound -nothrow NOTIFICATIONSDLL NOTIFYICONDATAW NOTIMPL @@ -1414,35 +1192,30 @@ NOTRACK NOUPDATE NOZORDER NPH -npm -npos NResize +NTAPI ntdll NTFS NTSTATUS -nuget -nuint -nullopt -nullptr +nugets +nullonfailure numberbox NUMLOCK NUMPAD Nunavut Nusa -Nvidia nwc -NWSE Objbase OBJID objidl oblitum -octodex +ocr +Ocrsettings odbc odbccp Oem officehubintl ofs -ofstream oldcolor olditem oldnewthing @@ -1450,7 +1223,9 @@ oldpath oldtheme oleaut OLECHAR -OLEDB +oledb +oledbcommand +oledbconnection OLIVEGREEN onebranch onenote @@ -1465,10 +1240,9 @@ ORAW ORPHANEDDIALOGTITLE oss ostr -ostream -ostringstream +OSVERSIONINFOEX OSVERSIONINFOEXW -otating +osvi OUTOFCONTEXT OUTOFMEMORY outpin @@ -1478,22 +1252,20 @@ outro outsettings OVERLAPPEDWINDOW overlaywindow -Overridable Oversampling OWNDC -OWNERDRAW +Packagemanager PACL -pagos PAINTSTRUCT PALEBLUE palenshus PALETTEWINDOW paramref -params PARENTNOTIFY PARENTRELATIVEEDITING PARENTRELATIVEFORADDRESSBAR PARENTRELATIVEPARSING +PArgb parray PARTIALCONFIRMATIONDIALOGTITLE pathcch @@ -1507,8 +1279,6 @@ PCIDLIST PCWSTR pdb pdbonly -pde -pdfpreviewhandler pdo pdto pdtobj @@ -1517,12 +1287,15 @@ PDWORD pedrolamas PERCEIVEDFLAG pesi +peteblois PEXCEPTION pfn pfo pft pgp pguid +PHANDLE +PHANDLER phbm phbmp phwnd @@ -1533,7 +1306,6 @@ PIDLIST PINDIR pinfo pinvoke -Pipelinhttps pipename Pitcairn PKBDLLHOOKSTRUCT @@ -1543,21 +1315,23 @@ PLK ploc ploca plocm -plugin +plugins pluginsmodel PMSIHANDLE Pohnpei -popup +Popups POPUPWINDOW posix -Postion -powercfg +poweraccent powerlauncher +POWEROCR powerpreview powerrename +POWERRENAMECONTEXTMENU +powerrenameinput POWERRENAMETEST powertoy -powertoysinterop +POWERTOYNAME powertoyssetup Powrprof ppidl @@ -1571,17 +1345,13 @@ ppsrree ppsz pptal ppv -pragma prc precomp Prefixer Preinstalled -preload -PREMULTIPLIED -preperty prevhost previewer -PREVIEWHANDLERFRAMEINFO +previewhandlerframeinfo previewpane previouscamera PREVIOUSINSTALLFOLDER @@ -1591,7 +1361,6 @@ prgms pri Primorsky PRINTCLIENT -printf prm proactively PROCESSKEY @@ -1615,15 +1384,15 @@ psrree pstr pstream pstrm +PSYSTEM psz -PTB +ptb ptc ptd PTOKEN PToy -ptr ptstr -PVOID +PULONG pwa pwcs pwsh @@ -1636,13 +1405,11 @@ qit QITAB QITABENT qps -quateur -Queryable QUERYENDSESSION +queryfocus QUERYOPEN QUEUESYNC Quickime -QUICKLAYOUTSWITCH QUNS qwertyuiopasdfghjklzxcvbnm qword @@ -1654,7 +1421,6 @@ RAWINPUT RAWINPUTDEVICE RAWINPUTHEADER RAWPATH -rbegin Rbp RBUTTON RBUTTONDBLCLK @@ -1663,11 +1429,8 @@ RBUTTONUP rclsid RCONTROL RCtrl -readme READMODE -readonly READWRITE -REALTIME RECTDESTINATION RECTL rectp @@ -1675,25 +1438,24 @@ rects recyclebin redirectedfrom Redist -Redistributable +redistributable reencode reencoded -refactor -refactoring REFCLSID REFGUID REFIID REGCLS regedit -regex +regfile REGFILTER REGFILTERPINS REGISTERCLASSFAILED +registerhotkey registrypath regkey REGPINTYPES regsvr -reimplementing +reinit REINSTALLMODE reloadable Remapper @@ -1701,23 +1463,20 @@ remappings REMAPSUCCESSFUL REMAPUNSUCCESSFUL Remotable -REMOTEDISPLAY -REMOTESESSION Removelnk renamable RENAMEONCOLLISION Renamer -Reparse +reparse requery requerying rescap resgen resheader -Resizable resizers resmimetype RESOURCEID -RESTORESIZE +resourcemanager RESTORETOMAXIMIZED restrictedcapabilities restrictederrorinfo @@ -1726,41 +1485,38 @@ resw resx retval rfc -rfind RGBQUAD rgbs rgn rgs rhs ricardosantos -Richtext RIDEV RIGHTSCROLLBAR riid -riverar RKey +RLO RMENU RNumber roadmap robmensching Roboto +rooler roslyn Rothera +roundf ROUNDSMALL -royvou Rpc RRF rrr +RSAT rshift Rsp -rst Rstrtmgr RTB -RTCS RTLREADING RTSS ruleset -RUNACTIVEXCTLS runas rundll rungameid @@ -1768,9 +1524,11 @@ RUNLEVEL runsettings runtimeclass runtimeconfig +runtimeobject runtimes RUS -rvalue +Rutkas +RValue rvm rwin ryanbodrug @@ -1780,31 +1538,30 @@ safeprojectname SAMEKEYPREVIOUSLYMAPPED SAMESHORTCUTPREVIOUSLYMAPPED SAVEFAILED -scalability scancode scanled +Schd schedtasks Scip scipbe scoobe SCOPEID screenshot -scrollable scrollviewer sddl -sdk SDKDDK sdns searchterm +secauthz Secur -seekg -Segoe +securityoverview +segoe Sekan SENDCHANGE +sendinput sendvirtualinput -serializationexception -serializer -serizalization +Seperate +Seraphima serverside SETCONTEXT setcursor @@ -1819,9 +1576,8 @@ SETTEXT SETTINGCHANGE settingsheader settingshotkeycontrol -settingsv -Setttings SETWORKAREA +setzero sfgao SFGAOF SFP @@ -1837,10 +1593,10 @@ SHELLEXECUTEINFOW shellscalingapi SHFILEINFO SHGFI -SHIFTDRAG Shl shldisp shlobj +Shlw shlwapi shmem shobjidl @@ -1855,6 +1611,7 @@ Shortcuttool shortdate SHORTPATH shortsplit +should't showcolorname SHOWDEFAULT SHOWELEVATIONPROMPT @@ -1864,34 +1621,31 @@ SHOWMINNOACTIVE SHOWNA SHOWNOACTIVATE SHOWNORMAL -SHOWWINDOW +showwindow shtypes SICHINT sid siex -SIGABRT sigdn SIGNINGSCENARIO -signtool +Signtool SINGLEKEY singlekeyremapcontrol singletones -Sint sipolicy SIZEBOX Sizename SIZENESW SIZENS SIZENWSE -sizeof sizeread SIZEWE -sketchapp SKIPOWNPROCESS sku SLGP sln SMALLICON +smartphone SMTO snd snwprintf @@ -1900,7 +1654,6 @@ somil Soref SOURCECLIENTAREAONLY SOURCEHEADER -sourceid sourcesdirectory spam spdisp @@ -1910,25 +1663,21 @@ spec'ing specialfolder spesi splitwstring -sprintf spsi spsia spsrm spsv -sqlite SRCCOPY Srch sre Srednekolymsk SResize -SRGB srme srre srw srwlock +sse ssf -ssh -sstream STACKFRAME stackoverflow stackpanel @@ -1939,7 +1688,7 @@ STARTUPINFO STARTUPINFOEX STARTUPINFOW startupscreen -STATFLAG +statflag STATICEDGE STATSTG stdafx @@ -1947,35 +1696,20 @@ STDAPI stdcall stdcpp stdcpplatest -stdexcept -stdin -stdio -stdlib STDMETHODCALLTYPE STDMETHODIMP -stdout stefan Stereolithography -STGM +stgm STGMEDIUM sticpl stl -stoi -stol -stoll -stoul -stoull -strcmp -streampos -strftime -Stringified -Stringify +storelogo STRINGIZE stringtable stringval Strmiids strsafe -structs strutil sttngs Stubless @@ -1983,28 +1717,23 @@ STYLECHANGED STYLECHANGING stylecop Subdir -subfolder +subfolders subkey SUBLANG -submenu subquery -substr +subresource Sul Superbar -supressions Suri sut SVE SVGIn SVGIO -svgpreviewhandler svgz SWC SWFO SWP -swprintf SWRESTORE -swscanf SYMED SYMOPT SYNCMFT @@ -2015,60 +1744,60 @@ SYSCOMMAND SYSDEADCHAR sysdm SYSICONINDEX +sysinfo SYSKEY syskeydown -SYSKEYUP -SYSLIB -syslog +syskeyup SYSMENU SYSTEMAPPS -systemd +systemroot SYSTEMTIME +sysvol Tadele Tajikistan talynone TApp TApplication TApplied +Taras targ TARGETAPPHEADER TARGETDIR targetentrypoint TARGETHEADER targetnametoken -targetsize targetver taskbar taskkill tasklist taskschd tchar +Tcollab tcscpy TCustom tdbuild +TDefault TDevice telem -tellg Templated templatenamespace Tenggara +testapp testcase testhost testprocess -testtrocess -testzones TEXCOORD textblock +TEXTEXTRACTOR TEXTINCLUDE +themeresources THH THICKFRAME THISCOMPONENT THotkey -thre TILEDWINDOW timedate timediff -Timeline timeunion timeutil timezones @@ -2077,48 +1806,42 @@ TLayout tlb TMPVAR TNP -todo toggleswitch -Toolchain toolkitcontrols toolkitconverters Toolset toolwindow TOPDOWNDIB -toplevel +tostring +TOUCHEVENTF +TOUCHINPUT touchpad -toupper Towindow -towlower -towupper tracelogging traies -transcoded transicc Transnistria TRAYMOUSEMESSAGE triaging TRK trl -trunc Tshuapa -tspan TStr Tuva TValue -TYMED +TWF +tymed typedef TYPEKEY TYPEKEYBOARD TYPELIB TYPEMOUSE -typename -typeof typeparam TYPESHORTCUT UAC UAL uap +uapmanifestschema udit Udk Udmurtia @@ -2126,30 +1849,21 @@ Udp uefi UHash UIA -Uid -uint -uintptr -UIPI +uiauto +uid +UIEx +uipi UIs Ulaanbaatar ULARGE -ULLONG -ulong ULONGLONG -unchecks -uncomment uncompilable UNCPRIORITY -undef UNDNAME -unescape -Unicast -Unindent +UNICODETEXT Uninitialize -uninstall uninstalling uninstantiated -Uniq uniquifier Uniquifies unitconverter @@ -2157,55 +1871,50 @@ unittests unk unknwn UNLEN -unlicense Unmap unmute UNORM -unregister unregistering unremapped unsubscribe +unvirtualized Updatelayout UPGRADINGPRODUCTCODE -upto Uptool -upvote -uri -URLs Urville Usb USEDEFAULT USEFILEATTRIBUTES USERDATA USERDOMAIN -username userprofile USESHOWWINDOW USESTDHANDLES -ushort USRDLL Utc utf -utils uuidof Uvs uwp uxtheme UYVY +vabdq validmodulename +Vanara vcamp vccorlib vcdl +vcgtq VCINSTALLDIR vcm vcomp -vcredist +Vcpkg VCRT vcruntime vcvars VDesktop vdi -VDId +vdupq vec VERBSONLY VERBW @@ -2214,7 +1923,8 @@ verrsrc VERSIONINFO Versioning VFT -vformat +vget +vgetq vid VIDCAP videoconference @@ -2223,28 +1933,33 @@ VIDEOINFOHEADER viewbox viewmodel vih -virtualization +virtualkey visiblecolorformats Visibletrue -visualbrush -visualstudio VKey VKTAB +vmovl +vorrq VOS +vpaddlq Vpn +vqsubq VREDRAW +vreinterpretq VSC VSCBD vscdb -vscode vsconfig VSCROLL +vsetq vsonline vstemplate VSTHRD VSTT +vswhere vtable Vtbl +WANTPALM wbem wbemuuid WBounds @@ -2252,43 +1967,33 @@ wca wcautil WCE wcex -wchar WClass -wcout -wcscat -wcscmp -wcscpy -wcslen -wcsncmp wcsnicmp +WDA wdp wdupenv weakme webcam -webserver webpage +websearch +webserver website -webview wekyb Wevtapi -wformat wgpocpl -Whichdoes whitespaces WIC wifi -wiki wikipedia -wil wildcards winapi winappdriver +winauto wincodec Wincodecsdk wincolor windef windir -Windowcontrols WINDOWCREATED WINDOWEDGE WINDOWNAME @@ -2296,12 +2001,11 @@ WINDOWPLACEMENT WINDOWPOSCHANGED WINDOWPOSCHANGING Windowsapp -windowsappsdk -windowsappruntimeinstall WINDOWSBUILDNUMBER Windowscodecs windowsdesktop windowssearch +windowssettings WINDOWSTYLES WINDOWSTYLESICON windowsx @@ -2313,18 +2017,24 @@ winexe winforms winfx winget +wingetcreate Winhook winkey WINL winmd winmm -WINNT +winmsg +winnt winres winrt winsdk winsdkver winspool +winternl +WINTHRESHOLD winui +winuiex +winuser winxamlmanager wistd withinrafael @@ -2349,45 +2059,39 @@ WNDCLASS WNDCLASSEX WNDCLASSEXW WNDPROC -wofstream wordpad workaround -workflow +workflows workspaces -wostream -wostringstream wox wparam wpf +wpftmp wpr -wprintf wprp -WQL +wql wregex WResize writefile Wrk +wrl wsf wsh wsl wss wstr -wstring -wstringstream wsz wtoi WTS wtsapi WTSAT +wtypes Wubi wuceffectsi WVC Wwan Wwanpp -xamarin XAttribute -xbf -XBind Xbox XBUTTON XBUTTONDBLCLK @@ -2398,18 +2102,19 @@ XDocument XElement XFile XIncrement -XInstance XLoc XNamespace XOffset -xpath +XPixel XResource xsi XStr XVIRTUALSCREEN Yamalia YIncrement +yinle yinwang +yinyue YOffset YStr YUY @@ -2421,11 +2126,11 @@ YVYU Zabaykalsky ZEROINIT ZIndex +zipfile +zipfolder zonable -ZONECOLOR -ZONEHIGHLIGHTCOLOR zoneset -ZONESETCHANGE 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 index 68b06a098d..774349778a 100644 --- a/.github/actions/spell-check/patterns.txt +++ b/.github/actions/spell-check/patterns.txt @@ -1,4 +1,50 @@ # 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 @@ -43,8 +89,6 @@ Hash="[0-9A-F]{40}" # 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 -# ignore long runs of a single character: -\b([A-Za-z])\g{-1}{3,}\b (?:L"[abAB]+", ){3}L"[abAB]+" "Lorem[^"]+?\." TestCase\("[^"]+" @@ -95,7 +139,7 @@ TestCase\("[^"]+" \[TestCase\(new string.*\] # D2D -D2D +D?2D # marker for ignoring a comment to the end of the line ^.*/\* #no-spell-check-line \*/.*$ @@ -105,3 +149,31 @@ 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 index 350b7d0d01..0cbb2ce08c 100644 --- a/.github/workflows/spelling2.yml +++ b/.github/workflows/spelling2.yml @@ -1,10 +1,54 @@ # 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: - pull_request_target: push: - branches: ["**"] - tags-ignore: ["**"] + branches: + - "**" + tags-ignore: + - "**" + pull_request_target: + branches: + - "**" + tags-ignore: + - "**" + types: + - 'opened' + - 'reopened' + - 'synchronize' jobs: spelling: @@ -12,8 +56,9 @@ jobs: permissions: contents: read pull-requests: read + actions: read outputs: - internal_state_directory: ${{ steps.spelling.outputs.internal_state_directory }} + followup: ${{ steps.spelling.outputs.followup }} runs-on: ubuntu-latest if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'" concurrency: @@ -21,58 +66,57 @@ jobs: # 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@v0.0.20-alpha3 + 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 - dictionary_source_prefixes: '{"cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/master/dictionaries/"}' + 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 - check_extra_dictionaries: '' - - 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 + 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 - pull-requests: write - if: always() && needs.spelling.result == 'failure' && needs.spelling.outputs.internal_state_directory + if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push' 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@v0.0.20-alpha3 + uses: check-spelling/check-spelling@v0.0.21 with: config: .github/actions/spell-check - custom_task: comment - internal_state_directory: /tmp/data + 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 }}