From 9824d136f19f45c3d644bdc24d2aece932b7a570 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 22 Oct 2024 07:45:04 -0400 Subject: [PATCH] Add check-spelling --- .github/actions/spelling/README.md | 18 + .github/actions/spelling/advice.md | 31 + .github/actions/spelling/allow.txt | 5 + .../actions/spelling/block-delimiters.list | 19 + .github/actions/spelling/candidate.patterns | 718 +++ .github/actions/spelling/excludes.txt | 121 + .github/actions/spelling/expect.txt | 4107 +++++++++++++++++ .../actions/spelling/line_forbidden.patterns | 251 + .github/actions/spelling/patterns.txt | 125 + .github/actions/spelling/reject.txt | 13 + .github/workflows/spelling.yml | 162 + 11 files changed, 5570 insertions(+) create mode 100644 .github/actions/spelling/README.md create mode 100644 .github/actions/spelling/advice.md create mode 100644 .github/actions/spelling/allow.txt create mode 100644 .github/actions/spelling/block-delimiters.list create mode 100644 .github/actions/spelling/candidate.patterns create mode 100644 .github/actions/spelling/excludes.txt create mode 100644 .github/actions/spelling/expect.txt create mode 100644 .github/actions/spelling/line_forbidden.patterns create mode 100644 .github/actions/spelling/patterns.txt create mode 100644 .github/actions/spelling/reject.txt create mode 100644 .github/workflows/spelling.yml diff --git a/.github/actions/spelling/README.md b/.github/actions/spelling/README.md new file mode 100644 index 000000000..da6f2e9d9 --- /dev/null +++ b/.github/actions/spelling/README.md @@ -0,0 +1,18 @@ +# check-spelling/check-spelling configuration + +File | Purpose | Format | Info +-|-|-|- +[dictionary.txt](dictionary.txt) | Replacement dictionary (creating this file will override the default dictionary) | one word per line | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary) +[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow) +[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject) +[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) +[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only) +[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) +[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) +[block-delimiters.list](block-delimiters.list) | Define block begin/end markers to ignore lines of text | line with _literal string_ for **start** followed by line with _literal string_ for **end** | [block ignore](https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Block-Ignore#status) + +Note: you can replace any of these files with a directory by the same name (minus the suffix) +and then include multiple files inside that directory (with that suffix) to merge multiple files together. diff --git a/.github/actions/spelling/advice.md b/.github/actions/spelling/advice.md new file mode 100644 index 000000000..a32d1090a --- /dev/null +++ b/.github/actions/spelling/advice.md @@ -0,0 +1,31 @@ + +
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. + +
+ + +:steam_locomotive: If you're seeing this message and your PR is from a branch that doesn't have check-spelling, +please merge to your PR's base branch to get the version configured for your repository. diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt new file mode 100644 index 000000000..61567618d --- /dev/null +++ b/.github/actions/spelling/allow.txt @@ -0,0 +1,5 @@ +github +https +ssh +ubuntu +workarounds diff --git a/.github/actions/spelling/block-delimiters.list b/.github/actions/spelling/block-delimiters.list new file mode 100644 index 000000000..6e071c008 --- /dev/null +++ b/.github/actions/spelling/block-delimiters.list @@ -0,0 +1,19 @@ +# Public Keys +-----BEGIN PUBLIC KEY----- +-----END PUBLIC KEY----- + +# RSA Private Key +-----BEGIN RSA PRIVATE KEY----- +-----END RSA PRIVATE KEY----- + +# GPG Public Key +-----BEGIN PGP PUBLIC KEY BLOCK----- +-----END PGP PUBLIC KEY BLOCK----- + +# GPG Signature +-----BEGIN PGP SIGNATURE----- +-----END PGP SIGNATURE----- + +# Certificates +-----BEGIN CERTIFICATE----- +-----END CERTIFICATE----- diff --git a/.github/actions/spelling/candidate.patterns b/.github/actions/spelling/candidate.patterns new file mode 100644 index 000000000..8160d7ebd --- /dev/null +++ b/.github/actions/spelling/candidate.patterns @@ -0,0 +1,718 @@ +# marker to ignore all code on line +^.*/\* #no-spell-check-line \*/.*$ +# marker to ignore all code on line +^.*\bno-spell-check(?:-line|)(?:\s.*|)$ + +# https://cspell.org/configuration/document-settings/ +# cspell inline +^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b + +# patch hunk comments +^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .* +# git index header +index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40} + +# file permissions +['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s] + +# css url wrappings +#\burl\([^)]+\) + +# 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 +#\bdata:[-a-zA-Z=;:/0-9+]*,\S* + +# https/http/file urls +(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|] + +# 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]+ + +# asciinema v2 +^\[\d+\.\d+, "[io]", ".*"\]$ + +# 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(?:/[a-z]+/(?:#!|)[^/\s"]+)* +# 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 SHA refs +\[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]* +# 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} + +# GitHub actions +\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+ + +# 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 + +# binance +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-zA-Z]{3,} +# ipfs url +/ipfs/[0-9a-zA-Z]{3,} + +# 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+ + +# codepen +\bcodepen\.io/[\w/]+ + +# registry.npmjs.org +\bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+ + +# getopts +\bgetopts\s+(?:"[^"]+"|'[^']+') + +# ANSI color codes +(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m + +# URL escaped characters +#%[0-9A-F][A-F](?=[A-Za-z]) +# lower URL escaped characters +#%[0-9a-f][a-f](?=[a-z]{2,}) +# 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./]+ + +# pki +-----BEGIN.*-----END + +# pki (base64) +LS0tLS1CRUdJT.* + +# 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}|[iu]\d+)\b +# integrity +integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1} + +# https://www.gnu.org/software/groff/manual/groff.html +# man troff content +\\f[BCIPR] +# '/" +\\\([ad]q + +# .desktop mime types +^MimeTypes?=.*$ +# .desktop localized entries +^[A-Z][a-z]+\[[a-z]+\]=.*$ +# Localized .desktop content +Name\[[^\]]+\]=.* + +# IServiceProvider / isAThing +#(?:\b|_)(?:(?:ns|)I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b)) + +# crypt +(['"])\$2[ayb]\$.{56}\g{-1} + +# apache/old crypt +(['"]|)\$+(?:apr|)1\$+.{8}\$+.{22}\g{-1} + +# sha1 hash +\{SHA\}[-a-zA-Z=;:/0-9+]{3,} + +# machine learning (?) +\b(?i)ml(?=[a-z]{2,}) + +# python +\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,}) + +# scrypt / argon +\$(?:scrypt|argon\d+[di]*)\$\S+ + +# go.sum +\bh1:\S+ + +# scala imports +^import (?:[\w.]|\{\w*?(?:,\s*(?:\w*|\*))+\})+ + +# scala modules +("[^"]+"\s*%%?\s*){2,3}"[^"]+" + +# container images +image: [-\w./:@]+ + +# Docker images +^\s*FROM\s+\S+:\S+(?:\s+AS\s+\S+|) + +# `docker images` REPOSITORY TAG IMAGE ID CREATED SIZE +\s*\S+/\S+\s+\S+\s+[0-9a-f]{8,}\s+\d+\s+(?:hour|day|week)s ago\s+[\d.]+[KMGT]B + +# Intel intrinsics +_mm_\w+ + +# Input to GitHub JSON +content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1} + +# This does not cover multiline strings, if your repository has them, +# you'll want to remove the `(?=.*?")` suffix. +# The `(?=.*?")` suffix should limit the false positives rate +# printf +#%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA])(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) + +# Alternative printf +# %s +#%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"]) + +# Python string prefix / binary prefix +# 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 +(?|m([|!/@#,;']).*?\g{-1}) + +# perl qr regex +(?|\(.*?\)|([|!/@#,;']).*?\g{-1}) + +# perl run +perl(?:\s+-[a-zA-Z]\w*)+ + +# C network byte conversions +#(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\() + +# Go regular expressions +regexp?\.MustCompile\(`[^`]*`\) + +# regex choice +\(\?:[^)]+\|[^)]+\) + +# proto +^\s*(\w+)\s\g{-1} = + +# sed regular expressions +sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2} + +# node packages +#(["'])@[^/'" ]+/[^/'" ]+\g{-1} + +# go install +go install(?:\s+[a-z]+\.[-@\w/.]+)+ + +# pom.xml +<(?:group|artifact)Id>.*?< + +# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571 +urn:shemas-jetbrains-com + +# kubernetes pod status lists +# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase +\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+ + +# kubectl - pods in CrashLoopBackOff +\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+ + +# kubernetes object suffix +-[0-9a-f]{10}-\w{5}\s + +# posthog secrets +([`'"])phc_[^"',]+\g{-1} + +# xcode + +# xcodeproject scenes +(?:Controller|destination|ID|id)="\w{3}-\w{2}-\w{3}" + +# xcode api botches +customObjectInstantitationMethod + +# msvc api botches +PrependWithABINamepsace + +# configure flags +.* \| --\w{2,}.*?(?=\w+\s\w+) + +# font awesome classes +\.fa-[-a-z0-9]+ + +# bearer auth +(['"])[Bb]ear[e][r] .*?\g{-1} + +# bearer auth +\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]+ + +# basic auth +(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1} + +# base64 encoded content +#([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1} +# base64 encoded content in xml/sgml +>[-a-zA-Z=;:/0-9+]{3,}== 0.0.22) +\\\w{2,}\{ + +# American Mathematical Society (AMS) / Doxygen +TeX/AMS + +# File extensions +\*\.[+\w]+, + +# eslint +"varsIgnorePattern": ".+" + +# Windows short paths +[/\\][^/\\]{5,6}~\d{1,2}[/\\] + +# cygwin paths +/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+ + +# in check-spelling@v0.0.22+, printf markers aren't automatically consumed +# printf markers +(?v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) + +# Compiler flags (Unix, Java/Scala) +# Use if you have things like `-Pdocker` and want to treat them as `docker` +#(?:^|[\t ,>"'`=(])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# Compiler flags (Windows / PowerShell) +# This is a subset of the more general compiler flags pattern. +# It avoids matching `-Path` to prevent it from being treated as `ath` +#(?:^|[\t ,"'`=(])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})) + +# Compiler flags (linker) +,-B + +# libraries +(?:\b|_)lib(?:re(?=office)|)(?!era[lt]|ero|erty|rar(?:i(?:an|es)|y))(?=[a-z]) + +# WWNN/WWPN (NAA identifiers) +\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b + +# iSCSI iqn (approximate regex) +\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b + +# curl arguments +\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* +# set arguments +\b(?:bash|sh|set)(?:\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-)/ +# github runner temp folders +/home/runner/work/_temp/[-_/a-z0-9]+ diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt new file mode 100644 index 000000000..3e91bb03f --- /dev/null +++ b/.github/actions/spelling/excludes.txt @@ -0,0 +1,121 @@ +# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes +(?:^|/)(?i)COPYRIGHT +(?:^|/)(?i)LICEN[CS]E +(?:^|/)(?i)third[-_]?party/ +(?:^|/)3rdparty/ +(?:^|/)generated/ +(?:^|/)go\.sum$ +(?:^|/)MobileSettings\.xml$ +(?:^|/)package(?:-lock|)\.json$ +(?:^|/)Pipfile$ +(?:^|/)pyproject.toml +(?:^|/)swfobject\.js$ +(?:^|/)uMain\.dfm$ +(?:^|/)vendor/ +(?:^|/|\b)requirements(?:-dev|-doc|-test|)\.txt$ +(?:|$^ 89.02% - excluded 73/82)/bin/[^/]+$ +/testdata/gfx/gfx_test_fonts_separate/[^/]+$ +[^/]\.abc$ +[^/]\.bin$ +[^/]\.dds$ +[^/]\.fla$ +[^/]\.gfx$ +[^/]\.res$ +[^/]\.swd$ +[^/]\.swf$ +[^/]\.tga$ +\.a$ +\.ai$ +\.all-contributorsrc$ +\.avi$ +\.bmp$ +\.bz2$ +\.cert?$|\.crt$ +\.class$ +\.coveragerc$ +\.crl$ +\.csr$ +\.dll$ +\.docx?$ +\.drawio$ +\.DS_Store$ +\.eot$ +\.eps$ +\.exe$ +\.gif$ +\.git-blame-ignore-revs$ +\.gitattributes$ +\.gitkeep$ +\.graffle$ +\.gz$ +\.icns$ +\.ico$ +\.ipynb$ +\.jar$ +\.jks$ +\.jpe?g$ +\.key$ +\.lib$ +\.lock$ +\.map$ +\.min\.. +\.mo$ +\.mod$ +\.mp[34]$ +\.o$ +\.ocf$ +\.otf$ +\.p12$ +\.parquet$ +\.pdf$ +\.pem$ +\.pfx$ +\.png$ +\.psd$ +\.pyc$ +\.pylintrc$ +\.qm$ +\.s$ +\.sig$ +\.so$ +\.svgz?$ +\.sys$ +\.tar$ +\.tgz$ +\.tiff?$ +\.ttf$ +\.wav$ +\.webm$ +\.webp$ +\.woff2?$ +\.xcf$ +\.xlsx?$ +\.xpm$ +\.xz$ +\.zip$ +^\.github/actions/spelling/ +^\Q.github/workflows/spelling.yml\E$ +^\Qbuildconfig.xml\E$ +^\Qlibsrc/cmykjpeg/src/org/monte/media/jpeg/Generic CMYK Profile.icc\E$ +^\Qlibsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/font/character_ranges.txt\E$ +^\Qlibsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/font/font_preview_samples.txt\E$ +^\Qlibsrc/ffdec_lib/testdata/gfx/gfx_test_fonts_compact/command.txt\E$ +^\Qlibsrc/ffdec_lib/testdata/graphics/Cute Cat - 3092.flv\E$ +^\Qlibsrc/gnujpdf/src/gnu/jpdf/PDFGraphics.java\E$ +^\Qlibsrc/jsyntaxpane/jsyntaxpane/src/main/resources/META-INF/services/jsyntaxpane/scripts/insertdate.js\E$ +^\Qlibsrc/jsyntaxpane/jsyntaxpane/src/main/resources/META-INF/services/jsyntaxpane/syntaxkits/flasm3methodinfosyntaxkit/combocompletions.txt\E$ +^\Qlibsrc/jsyntaxpane/jsyntaxpane/src/main/resources/META-INF/services/jsyntaxpane/syntaxkits/flasm3syntaxkit/combocompletions.txt\E$ +^\Qlibsrc/jsyntaxpane/jsyntaxpane/src/main/resources/META-INF/services/jsyntaxpane/syntaxkits/flasmsyntaxkit/combocompletions.txt\E$ +^\Qsrc/com/jpexs/decompiler/flash/gui/locales/GraphTreeFrame.properties\E$ +^\Qsrc/de/javagl/treetable/AbstractTreeTableModel.java\E$ +^libsrc/ffdec_lib/testdata/as3_embed/assets/ +^libsrc/ffdec_lib/testdata/gfx/gfx_test_fonts/ +^libsrc/ffdec_lib/testdata/gfx/gfx_test_gradients/ +^libsrc/ffdec_lib/testdata/gfx/gfx_test_images_tga_pack/ +^libsrc/ffdec_lib/testdata/gfx/gfx_test_sounds/ +^libsrc/jlayer-1\.0\.2/src/main/resources/javazoom/ +^libsrc/ttf/ +^nsis_locales/(?!English) +^resources/flashlib/ +_[a-z]+(?:_[A-Z]+|)\.properties$ +ignore$ diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt new file mode 100644 index 000000000..c0346d082 --- /dev/null +++ b/.github/actions/spelling/expect.txt @@ -0,0 +1,4107 @@ +aabbcc +abbrvs +abbs +abcasm +abcbulletblue +abcbulletgray +abcclassinfo +abcclean +abccode +abcconstantpool +abcd +abcdasm +abcdata +abcdecimal +ABCDEFGHIJKL +ABCDEFGHIJKLMNOPQRSTUVWXY +abcdefghjiklmnopqrstuvwxyz +abcdouble +abce +abcexception +abcexplorer +abcexploretrait +abcexport +abcflags +abcfloat +abcinstanceinfo +abcint +abcmerge +abcmetadata +abcmethodbody +abcmethodinfo +abcmultiname +abcnamespace +abcnamespaceset +abcreplace +abcs +abcscriptinfo +abcstring +abctag +abctraits +abcuint +ABIOS +ABORTWARNING +abovenormal +abreak +Abstaende +abx +ACCESSDENIED +acode +acolor +acontinue +ACPI +actionadd +actioncontainers +Actionlist +ACTIONRECORD +actionscript +actionscriptsyntaxkit +activex +adata +addclass +addexport +addfunction +additionalmodules +additionalparam +addplugindir +addproperty +addressproperty +addrfix +addtocontextmenu +addtrait +Adelta +adl +adobehomepage +adpcm +ADPCME +adr +advancedsettings +Advapi +aeiouy +AEnd +aex +AFile +aforinif +afp +agentlib +agentpath +ags +Aguilera +ahoj +airglobal +airpath +ajmp +alertable +Algorithmen +alimsoftware +allcharacters +ALLCHILDREN +allh +ALLLANGUAGES +allocationlength +allopns +alltranslated +alphabiasshift +ALPHABITMAPDATA +ALPHACOLORMAPDATA +alphadec +alphanum +alpharadbias +alpharadbshift +ALREADYINSTALLED +alsairafi +alterneigh +altersingle +altglyph +ames +amf +amxmlc +aname +ANDEQ +Annots +ANR +antcall +antex +antfile +antialiasing +anticlock +antlib +anttask +antversion +anzeigen +aos +apath +apgeneratedsrcdir +APICOM +apiprivate +apiversioning +appdata +apperr +applytype +appmenu +APPWINDOW +APTX +apu +Arbeitsbuch +ARCHITEW +arec +argb +argsfile +Arnout +arnouten +arrowdown +arrowtail +arrowup +Artsimovich +ASAO +asasm +ascentdescentleading +asciitochar +asclass +asconfig +asdec +ASender +ASF +asinterface +Asize +asms +asoc +ASQ +asr +asre +ASSIGNPRIMARYTOKEN +astype +astypelate +asv +ata +atags +Atclause +atext +ati +atleast +atmax +atmin +ATRAC +ATTRIBUTENAME +ATTRIBUTEVALUE +ATTRNAMEVAR +ATTRVALVAR +attrx +atype +audiocodecid +AUDIODATA +AUDIOFILE +audiosamplerate +audiosamplesize +auds +aufgerufen +aufruft +aurl +Authenticode +autoboxing +Autobuild +AUTOCHK +autoclosing +autodeobfuscate +autodeobfuscation +autokern +AUTOZONE +auxceps +avals +AVIBMPDIB +avih +AVIIF +avimainheader +avioldindex +AVIPALCHANGE +AVIPCM +AVISF +avistreamheader +AVIX +avm +avt +awidth +awt +ayman +backedges +BACKGROUNDCOLOR +BACKGROUNDCOPY +backlink +Backpatch +badcomment +badid +Badiella +bading +BADKEY +BADSIG +badstring +BADTIME +baduri +bagr +bais +BALIGN +baos +basefile +baseoffset +basetsd +bashsyntaxkit +basictag +batchtest +bba +Bbits +bca +bcb +bcdedit +bcdfghjklmnpqrstvwz +bci +bcx +bdctx +Bdelta +bdt +beaninfo +beanshell +bechtold +belownormal +bestbiasd +bestbiaspos +bestd +bestpos +betafreq +betagamma +betashift +BEVELFILTER +bex +bez +bezout +bfill +bframe +BGRA +BGRc +biasdist +bic +bigs +bimg +binarydata +binaryexcludes +binaryincludes +binarysearch +BINARYTAG +binarytestincludes +bindex +bininfo +bistream +bitbuf +bitdepth +BITFIELDS +bitindex +bitlshift +BITMAPDATA +BITMAPFILEHEADER +bitmapfill +BITMAPINFO +BITMAPINFOHEADER +BITMAPINFOHEADR +bitmaps +bitnot +bitrates +bitrshift +BITSPIXEL +bitstream +bitstring +biturshift +BITWISEAND +BITWISEOR +BITWISESHIFT +BITWISEXOR +biu +bji +bkptline +ble +BLENDFUNCTION +blendmode +bln +blockset +blocktypenumber +bluewin +BLURFILTER +bmatrix +bmax +BMHD +bmi +BMIH +BMPDIB +bname +BNo +Boardflavors +bodybefore +Bodys +BOOTFILE +BOOTMGR +bordercolor +borland +boxblur +boyerf +Bpl +bpline +bpm +BPoint +bpp +brasilian +brdata +breadcrumb +breakat +breakcandidate +breakpointlist +breakpos +brec +Brooktree +bswf +Btable +BText +BTV +bufferer +bufferp +BUFFERSIZE +bufferu +bugtracker +buildingscripttree +buildlog +BUILDNUMBER +buildtime +BUILTAT +buttoncondaction +buttonicon +BUTTONRECORD +Bval +byacc +byt +byteread +bytesize +bytesread +bzzt +cacls +Calibri +callargs +callfunction +callinterface +callmethod +callouts +callproperty +callpropertyav +callproplex +callpropvoid +callstatic +callsuper +callsuperid +callsupervoid +Camick +Cancedda +cannotaddcharacter +CANNOTCONSOLIDATE +CANNOTDOWNLOAD +cannotencrypt +cannotreadfontfile +canpin +Capasha +caprica +CAPSLOCK +CARDACTIONSCRIPT +CARDACTIONSCRIPTPANEL +Cardan +Cardano +CARDDUMPVIEW +CARDEMPTYPANEL +CARDFOLDERLISTPANEL +CARDFOLDERPREVIEWPANEL +CARDFONTPANEL +CARDHEADER +CARDPREVIEWPANEL +CARDTEXTPANEL +CARETCOLOR +casecount +CASEINSENSITIVE +caseoffsets +casesensitive +Casteljau +castop +CATID +cbbox +CBench +cbf +Cbi +CBit +CBT +cbut +cca +ccanvas +cch +ccode +CCs +cctx +CDDL +cdir +cdp +cdx +cdy +Cehi +cei +CELLBORDER +CELP +CENTERJSAMPLE +centerx +centery +cer +cerc +CEvent +cex +cfdisk +cff +cfgs +cfont +cft +CFX +CGJ +CGMS +CGMSA +chainedmapper +changeinplace +changeslog +channelnumber +Chapmann +characterid +charactertag +CHARID +CHARLITERAL +chartoascii +Chech +CHECKCLICK +checkfilter +checkstyle +checkupdates +Chenxu +childs +Chinaski +chkconfig +chkdsk +chkntfs +cht +chtag +chukn +CHV +Chyba +cicd +cidinfo +CIDTo +cidtogidmap +cindex +cindices +cinepak +cinit +cinitcode +cint +citem +citt +cjennings +cji +ckey +cksum +classexists +CLASSFACTORY +classfiles +classfileset +classfilesetref +classguid +classinfo +classinitializer +classloader +classpathref +classpaths +classtrait +clctn +cldr +clearrecent +clen +CLERKEXISTS +CLERKNOTFOUND +CLexer +CLFS +CLIENTCREATESTRUCT +clientid +CLIENTSITE +CLike +clipactionrecord +CLIPACTIONS +CLIPBRD +clipdepth +CLIPEVENTFLAGS +CLIPFORMAT +clisteners +clojuresyntaxkit +clonesprite +closeall +clpbrd +CLSIDs +clsname +clt +cmap +Cmb +cmds +cme +cmf +CMK +cmx +cmy +CMYJKJPEG +cmykjpeg +cnf +cns +cntp +codegenop +codehaus +codelength +codeql +codetab +coefs +COERROR +cofunctional +colordialog +colorizing +COLORKEY +COLORMAPDATA +colormapped +COLORMATRIXFILTER +colorschemes +colortransform +COMADMIN +combocompletions +Commaised +commandline +commitish +commondesktop +COMMONLOG +commonset +commonshape +compareresources +compilerarg +COMPILERKIND +COMPILERPATH +compiletime +COMPLEXREGION +COMPLUS +compobj +componentclassname +comptran +COMPUTERNAME +COMQC +comtext +condnode +CONSOLIDATIONFAILED +constantindices +constantpool +constantxx +constructprop +constructsuper +consts +controlflow +CONVOLUTIONFILTER +COPP +copycount +COPYDELETEORG +COPYFROMRESOURCE +copylibs +copylibstask +COPYRETURNORG +COPYTO +COPYTOCLASSOREXPORTNAME +COPYTODEPS +coreceavm +cosext +counta +countb +cpio +cpool +cpos +CProgress +CRandom +crcp +createallsubdirs +CREATEDIBSECTION +CREATESTRUCT +creatingwindow +Cri +CRM +CRNG +crossreference +cse +cshape +csize +csmts +csplit +Csq +CSRSS +cstype +CSyntax +Ctag +CText +cti +Ctl +ctorarg +ctrans +Ctrls +CTRYNAME +ctsay +Ctvrty +cupdebug +cupsym +curpos +cursize +CUSTOMFUNCTION +customparameter +cutdirsmapper +cval +cvar +cvid +CVSD +CWS +CXCURSOR +CXDLGFRAME +cxform +CXFORMWITHALPHA +CXFRAME +CXICON +cxy +CYCURSOR +CYDLGFRAME +CYFRAME +CYICON +dacl +danielreese +darkcornersoftware +dashmatch +Dasm +datamodified +datas +datfiles +dbcc +dbch +dbd +Dbi +dbj +dblock +dbp +DBT +dby +dcm +DCOM +dcs +dctx +DDCCI +DDCRET +dderror +DDOS +ddrescue +dds +ddsreader +ddx +ddxdxddydy +ddy +deadcode +debian +debugfile +debuggee +debuggerlog +debuggerreplace +debuggging +debuginfo +debugline +debugpanel +debugpcode +debugswf +debugtool +decimalsupport +declend +declocal +declocalp +decompilation +decompiled +decompiles +decompiling +Decs +decvax +decwrl +DEFAULTCOLOR +DEFAULTFOLDER +DEFAULTSIZE +defaultstate +defaultsyntaxkit +defaultvalue +definefunc +definefunction +definelocal +defragmented +Deinitializes +deinstalled +DEINSTALLING +deinstalls +deinterlace +deldescendants +DELETEKEY +deleteonexit +deleteproperty +deletepropertylate +delfile +delphi +deltastack +deo +deobf +deobfuscatenew +deobfuscateold +deobfuscateoptions +deobfuscatepop +deobfuscating +depcache +Depnd +depthstate +dequantize +deringing +derrt +dery +desktopentry +desktophints +desktopicon +destdir +destfile +DETAILCARDAS +DETAILCARDDEBUGSTACKFRAME +DETAILCARDEMPTYPANEL +DETAILCARDTAGINFO +DETECTCOMPARE +DETECTCOMPLETE +DETECTVERSION +devicefont +DEVICEINTERFACE +devicetype +DEVTYP +dfm +dframe +dfx +dge +DHP +DHT +dhyan +Diachenko +dialoginput +dic +didata +differentsigns +DIGIADPCM +DIGIFIX +DIGIREAL +DIGISTD +DIGITALK +digitno +DIID +dircolors +directediting +Directorry +DIRECTORYSERVICE +directvalues +dirset +disabledecompilation +discrim +disfunctional +diskcomp +diskcopy +Dispatchable +dispid +dispinterface +DISPLAYCHANGE +DISPLAYEDIT +displayrect +displdr +DISPPARAMS +DISTINCTROW +DIVEQ +dkd +dkey +dlg +DLGPROC +dloop +DManager +dmask +dmax +dmg +dmin +DMM +dname +DNan +doaction +Doc'ed +dof +Dofera +doi +doif +doinit +doinitaction +DOLBY +domx +donot +donotshowagain +dopenable +dopop +dosbatch +dosbatchsyntaxkit +DOSBOX +doskey +dotest +dotimestamp +dotsq +dotssprite +dottedchain +doubletoatom +doubletype +Doubrovkine +dowhile +downloadnow +downloadsuccessful +downmix +downmixing +DOWNRESULT +downsampling +DOYOU +dpd +DPLAY +dpos +dpr +dpx +dpy +DQT +DQuote +DRAGDROP +drawed +DRAWPREVIEW +Dropbox +dropshadow +DROPSHADOWFILTER +droptarget +Druhy +drun +DSAs +DSAT +dsd +dsde +dse +dsf +dsh +DSPGROUP +DSqrt +dss +dsum +dsx +dsy +dtc +dtcr +dtde +DText +dtime +dtl +dtm +dtval +dumpas +DUMPBYTEARRAY +dumpsplit +dumpswf +dumpview +DUPLICATEMOVIECLIP +dvai +dval +DVD +dvf +DVI +dvp +dvt +DVTARGETDEVICE +DWL +DWM +DWOR +dwordlong +dxat +dxf +DXG +dxgkrnl +dxm +dxns +dxnslate +dxs +dyat +dyf +dym +dynamictext +DYNFONTIMAGE +EASTASIA +easygui +EASYPANEL +eawt +ebody +ebph +ebpw +ebsp +eby +ECHOSC +echoxml +ECIMAL +ecj +Ecriture +editation +editbox +editorkit +editorpane +edittext +Edt +edu +EEA +eecs +eex +Ehigh +eightynine +eimages +Eimantas +Elimit +elliot +EMatch +Emax +Emin +emptyfield +enabledebugging +ENABLEDPOPUP +ename +enamestr +encargs +enddrag +endinitclip +endip +endobj +endoflines +endoflist +endstream +endtagname +enet +Engelen +enjoypa +enlog +enm +ent +enternew +eofclose +eofval +eoi +eqp +ERASEBKGND +ERASENOW +ericzbeard +ERRF +errorcode +errorencoding +erroronmissingdir +errorproperty +errstring +erstellen +ESPCM +ESSGREATER +estdata +estr +Etchet +EText +eti +etype +EULA +evar +eventlog +EVENTLOGRECORD +EVENTNAME +evl +evt +Ewith +Excep +EXCEPINFO +exceptionend +exceptionstart +exceptiontarget +excmd +exd +executiondata +EXENAME +EXF +exfiles +EXPLICITNAMESPACE +explist +explizit +expmsb +exportabc +exportables +exportassets +exportdialog +exportembed +exporterinfo +exportfiletimeout +exportfla +exportflashdevelop +exportidea +exportjava +exportname +exportsel +exporttimeout +exportvscode +exportxml +expressioncommand +EXSTYLE +extaction +extags +EXTENDEDKEY +extitle +Extrahandling +EXTRALIGHT +extraxtdir +ezb +fai +failonerror +failonviolation +failureproperty +Famfam +fastactionlist +fastavm +FASTSPEECH +fbackground +FBAS +fbp +fcanvas +fcc +fcode +fctx +FDE +fdecompiled +fdepth +fdformat +fdir +fdisk +fdw +felem +fes +ffd +ffdec +ffile +ffname +fframe +ffs +FFXX +FGlyph +fgp +fgrad +fgrep +Fheader +fidx +fieldalign +fifi +fiftyseven +fileattributes +fileformat +fileoffset +fileschanged +fileset +filesizes +filetime +filetitle +fileurl +filever +fillstyle +FILLSTYLEARRAY +filtera +filterb +filterchain +FILTERLIST +filtermapper +FILTERSPECs +fimg +finallyjumps +FINALLYPART +finallys +findbugs +finddef +finderrorheader +findex +findpart +findprop +findproperty +findpropglobal +findpropglobalstrict +findpropstrict +findstr +findtag +finishedin +FINISHPAGE +finishpart +FINISHTAG +FINISHVARTAG +FINRET +FIntf +Firefox +firstframe +firstid +firstp +fis +FITPAGE +FITRECT +fixcrlf +FIXEDPARAMETER +fji +fjump +fla +flacomdoc +flagval +flashdebugger +FLASHINFO +flashlib +flashlite +flashpaper +flashplayer +flashprojector +FLASHVIEWER +FLASHW +FLASHWINFO +flashx +flasm +flasmsyntaxkit +flatest +flattenmapper +flaversion +flen +flexedit +flexpath +flexsdk +flg +floatair +floatp +floatsupport +floop +FLOWDESCRIPTOR +flowspec +FLVTAG +flynnk +fmode +fmsg +fmsware +fmtest +fnfe +fnode +fnseq +fnt +fntttf +focalgradient +focusrect +folderopen +foldersounds +foldersprites +followsymlinks +fontastic +fontclass +fontid +FONTIMAGE +FONTINFO +fontpanel +fonty +fopenable +foraif +forajmp +FORCEDOS +FORCEMINIMIZE +FORCEOFFFEEDBACK +FORCEONFEEDBACK +forend +fori +forinlevel +forinret +forkmode +FORMATETC +forminfo +fos +fourcc +FOURTYEIGHT +FOURTYFOUR +foutdir +FPoint +fprevious +fprop +fpt +fqn +fractpart +frameadd +framecnt +framecount +framedata +framedrop +frameinvalid +framelength +frameloss +framenum +framescripts +framesize +framesizeloaded +framesloaded +frc +frect +freeactionscript +freetransform +frest +Friesen +frm +Frob +fromto +fsb +fscommand +fscope +FSMO +fsrc +fsv +fswf +ftag +ftemp +FText +fti +ftim +ftime +ftimeline +Ftm +ftn +ftrait +fue +fuer +FULLAND +fulldf +FULLOR +FULLTEXT +functionitem +funname +fval +fvalues +FVE +FWP +FWPM +GAction +gammashift +gbc +gbevin +gbf +Gby +gct +gdi +Geert +generateswd +generictag +generictageditors +genfiles +gensrcdir +getdescendants +getflushed +GETFOLDER +getglobalscope +getglobalslot +getinstancemetadata +getkey +getlex +getlocalx +getloops +getouterscope +getownproperty +getproperty +getpropertylate +getscopeobject +getslot +getsuper +gettime +GETTIMER +gettinghilights +gettingvariables +gettoset +getu +getvariable +gfill +gfx +gfxexport +ggf +ggt +Gheader +Ghz +GIFCOMPR +gifreader +GIFs +gil +GINA +Gleichzeitiges +globalclass +GLOBALCONST +globalfunc +globalrename +globmapper +GLOWFILTER +glyf +GLYPHENTRY +GLYPHIDX +gmatrix +gmx +Gnomovision +gnujpdf +Goldau +googlecode +googlemail +Gotoaddress +gotoandplay +GOTOANDSTOP +gotoframe +gotolabel +gotomainclass +GOVERNSID +gpt +gpu +GRADIENTBEVELFILTER +GRADIENTGLOWFILTER +GRADIENTIMAGE +gradrecord +graftabl +graphexport +graphparts +graphviz +gratio +grd +greaterequals +greaterthan +grfdex +groovysyntaxkit +Grouchnikov +groupingtable +GSM +gstring +gta +gti +gts +GTX +GUITHREADINFO +gvt +GWL +GXT +Hajda +hameister +HANDLEBy +Hansson +hardligh +hardlight +HARDWAREINPUT +harmanair +harmanencrypted +harpo +HASINDEX +haslayout +hasnext +HASPARENT +Hausmatt +Hauspie +Haxe +hbitmap +hbm +hbmp +hbr +hbrush +hcursor +hdc +HDCP +HDEVNOTIFY +hdr +hdrl +headcrashing +headerframecount +HEADERIMAGE +headerstring +helpus +hexas +hexdata +hexedit +hexview +hfont +hgap +hgdiobj +hget +hgetbits +hhea +hhk +hhmm +hicon +hideobject +highlightings +highquality +hiligh +hilight +hilighting +hilite +hiliter +hinst +HITTEST +HIWORD +HKCR +HKCU +HKEYBy +HKLM +HLayout +hle +hlen +hmap +hmember +hmenu +HMetrics +hmtx +hnt +hohoho +honfika +HOOKPROC +HORIX +Hotkeys +hotmail +hovno +hpalette +hpen +HPPEMIT +hpsf +hputbuf +Hreljac +hresult +hrgn +hrsrc +hsac +hsb +HScale +hscroll +hshift +hsize +hsstell +htab +htext +HTN +htw +huffcodetab +huffcodtable +huffmann +Hutter +huu +hwnd +HWNDFIRST +HWNDLAST +HWNDNEXT +HWNDPREV +Hzre +iae +iai +Ias +ibg +ibitstream +ibr +icanvas +icc +icf +icm +icns +icoimage +iconifying +iconinfo +ICONSTOP +ict +icting +ictx +idata +IDCT +Iddle +IDecoder +idelay +identifierdeobfuscation +IDIGNORE +IDRETRY +idscan +Idtags +IDTYPE +iends +ieport +iex +ifaces +ifaif +ifbody +ifdown +ifed +iffalse +ifframe +IFFRAMELOADED +ifi +ifl +ifnge +ifngt +ifnle +ifnlt +ifstricteq +ifstrictne +ift +iftrue +ifup +igchar +iggi +iggy +iggyfile +ignodes +ignorebackground +ignoreversion +igv +ihnp +iid +iin +iindex +iinit +iip +iitem +ijk +IKEEXT +ILBM +iline +ILINESTYLE +IMA +IMAADPCM +Imagebase +imageid +imageio +imagesfolder +imax +imdata +IMDCT +IME +imgd +implementsop +importasset +Importat +importbinarydata +importfont +importimage +importmorphshape +importmovie +importmovies +importother +importscript +importshape +importsound +importsprite +importsymbolclass +importtab +importtext +importxml +imt +incatch +inclocal +inclocalp +includeantruntime +includeemptydirs +includesfile +Indexnumber +ine +inetc +inexpr +infinally +infoflags +INFs +inheritall +initalpha +initarray +initclip +initcode +initfields +initializedconst +initializedvar +initing +initnet +initobject +initpragma +initproperty +initrad +initradius +initscope +initscopedepth +initthrow +INITY +injectas +innerfunction +innershadow +inno +Inof +inp +inpage +inputencoding +inputstream +insertafter +insertbefore +insertbeginning +insertcode +insertdate +insertend +insertmacro +inspos +Inss +installvlc +instanceinfo +instanceinitializer +INSTDIR +INSTFILES +insti +instream +insv +intag +intbias +intbiasshift +intcmp +Intelli +intellij +interdomain +Intermetall +INTERNALCONSTANT +internalflashviewer +INTERNALPAINT +internalviewer +intestdata +Intf +intmitxa +intmitxb +intmitya +intmityb +intpart +intry +intwrap +INVALIDARG +invalidfontfile +INVALIDFRAME +INVALIDLSN +invalidregexp +invdet +inx +inxbuild +inxobject +inxsearch +iob +ioe +IOEx +ioffset +IOPM +ipath +ipfix +iploop +iro +ISAKMP +isb +isbn +isbold +isd +ISDEBUG +isfalse +isint +ISINTERLEAVED +isitalic +Isitor +iss +issperr +isstart +issuenum +istarts +istep +istrue +istype +istypelate +itemj +itemr +itemtypes +ITF +itype +IUnknown +iuser +ival +Iwadare +Jaca +jacoco +jarfile +JARFILENAME +jargs +jart +Jaume +javaagent +javac +Javactive +javactivex +javagl +Javahome +javalayer +javaresource +javascriptsyntaxkit +javasyntaxkit +javaw +javazoom +jaxrpc +JBand +jbomutils +jboucher +JBreadcrumb +jcb +jclass +JCommand +jctb +JDKs +JDOC +jdone +jdwp +Jef +Jelliffe +JFIFSOI +jfiles +jflex +JFlow +JGoodies +JIdea +jindent +jindr +jindra +jindrapetrik +jitpack +jla +jlap +jlayer +jlc +jletter +jletterdigit +jloop +jlp +jmf +jmods +jna +jnlp +jpacker +jpattern +jpda +jpdf +JPEGX +JPersistent +jpexs +JPGA +JPGB +JPGC +JPGD +jpghtml +jpos +jpproxy +jpt +jrb +jre +JREIf +JREINFO +JRepeat +JRibbon +JRich +jsa +Jscroll +JScrollable +jsep +JSFL +jslike +jso +jsondatafile +JSroll +jsyntax +jsyntaxpane +jtf +JTrackable +JTri +jtt +jttdata +jtxt +junindent +JUunit +JVER +jvmarg +JVMs +jvnet +jxar +kalip +KARG +KBDLLHOOKSTRUCT +kbit +kbytes +KDC +Kein +Keine +ker +KERNINGRECORD +Kernings +kevin +keyb +KEYBDINPUT +keychain +KEYEVENTF +Keymaps +keyone +keytip +Khz +killall +Kirill +kirillcool +kitsfortypes +kld +klikatice +klute +KMGTPE +Knotentext +kof +Kohonen +koiru +konec +kosuri +kotlin +Kratz +Krbtgt +ktm +Kto +kupr +kvals +kweiner +labe +labelend +laf +LANGCODE +LANGDLL +LANGLOAD +LANGNAME +lastc +lastcols +lastframe +lastid +LASTINPUTINFO +lastone +LAUNCHSETUP +layerschanged +lbl +Lbr +LBUTTON +LBUTTONDOWN +Lby +lcanvas +lcid +lck +lcontinue +LCONTROL +lctx +LCURLY +lda +Ldef +ldr +ldt +LDU +leadlink +leadsto +Leeuw +leftoff +Lempel +lengthcount +lenret +LENTGH +Lentzsch +Lernout +lessequals +LESSGREATER +lessthan +Leung +Levl +lexers +LEXSTATE +lfcanvas +lfctx +lfimgd +lfinally +lfpix +lgfill +LHND +LIBID +likum +limgd +linbits +lindex +LINECOMMENT +linecontainsregexp +linelen +linenum +linestart +linestyle +LINESTYLEARRAY +linetokenizer +linkreport +linmax +listconfigs +Listswf +lix +ljcb +ljrb +lloc +LMEM +LMENU +lmerr +lng +LOADBYTES +loadcache +loadfont +LOADFROMFILE +loadingpleasewait +LOADMAP +loadmemory +LOADMOVIE +LOADMOVIENUM +loadoldversion +loadproperties +loadresource +LOADTRANSPARENT +LOADURL +LOADVARIABLES +LOADVARIABLESNUM +loadversion +localcount +localfile +localreg +localregcount +locjump +lockcenter +LOCKCOUNT +lockroot +locy +LOGICALAND +LOGICALOR +logname +logon +longbool +LONGLON +LONGLONG +lookupswitches +loopaddr +loopblk +loopc +loopcand +loopcontainer +loopdata +loopex +loopframes +looph +loopi +loopip +loopj +loopk +loopm +loopn +loopnext +loopobj +loopoff +loopon +loopopened +loopp +loopparts +loopprocess +loopread +loopregs +looproot +loopsetmembers +loopsize +loopspre +looptags +looptodo +looptrait +loopwalk +loopwith +LOUVET +LOWERTHAN +LOWORD +lparam +lpb +lpbi +lpbmi +lpbmih +lpc +lpcb +lpcch +LPCTSTR +lpdw +lpfl +lpfn +lpft +lpgui +lpix +lpkruger +LPOVERLAPPED +lppe +lppt +lpr +lprc +lprint +lprintd +lprintq +lprm +lproj +LPSECURITY +lpsz +LPTR +lpushbyte +lpv +lpvoid +lpwcx +LPWNDCLASSEX +lre +LRef +lresult +lsa +lsb +LSHIFTEQ +lstart +ltarget +lthrow +lti +luasyntaxkit +Luc +luid +lval +lvmethod +LWA +LZM +lzmaprop +lzmaproperties +macrodef +macroend +Macromed +macromedia +MAH +mai +mailslot +mainclass +mainmovie +MAKEINTRESOURCE +makensis +malgun +manifestencoding +MAPI +maplay +markerswitch +Marklevels +markus +marshallings +martinkoza +maskedid +maxabs +maxbits +MAXCHANNELS +maxcode +maxdelta +maxend +maxgroup +maxh +maxheap +maxhscroll +maxid +maximizable +MAXJSAMPLE +maxlevel +maxlocal +MAXLONG +maxmaxcode +maxnetpos +maxp +MAXSCALE +maxscope +maxscopedepth +maxscroll +maxstack +MAXVALUE +maxw +maxx +maxy +mbasciitochar +mbchartoascii +mbchr +mbg +mbi +mblength +mbody +mbord +mbp +MBR +mbstringextract +mbstringlength +mbsubstring +mccs +MCFG +mcvax +mdat +mdct +mdf +mdfile +MDICREATESTRUCT +MDIMAXIMIZE +mdm +MEDIASERVER +MEDIASPACE +MEDIAVISION +membername +membuf +memorysearch +MEMORYSTATUSEX +mes +METADATAINFO +METADATATAG +METADIRECTORY +metafile +metainf +metainfo +methodbody +methodindex +methodinfo +methodinfosyntaxkit +methodtrait +mfs +mfull +mgardi +MGTPE +mhreljac +mhs +Microsystem +mindex +minfo +mingc +minimizable +miniport +minpicturebytes +minpos +minreg +MINSCALE +minscope +MINUSEQ +MINUSMINUS +MINVALUE +Miron +miscompilation +miterclip +miterstroke +MJPEG +mjpg +MJPGDHT +mkbom +mkdist +mkey +mkisofs +mlc +MMdd +mmreg +mmu +mmv +mmx +mmy +moar +Mochi +mochicrypt +Modell +MODEQ +MODULEENTRY +moduleinfo +modulemainclass +modulepath +moduletask +modulu +MOF +mohlo +MONIKERALREADYREGISTERED +montemedia +Morphed +MORPHFILLSTYLE +MORPHFILLSTYLEARRAY +MORPHFOCALGRADIENT +MORPHGRADIENT +MORPHGRADRECORD +MORPHLINESTYLE +MORPHLINESTYLEARRAY +morphshape +mostcommon +MOUSEINPUT +MOVEFILE +MOVETODEPS +movi +movieclip +moviesfolder +MPEGLAYER +mpis +mru +msb +msc +MSDTC +MSGRESULT +msm +MSMQ +msn +MSNAUDIO +mssipotf +MSSTD +mst +MSXML +mtools +mtroot +MULTEQ +Multilanguage +MULTINAM +multiname +MULTINAMEA +MULTINAMEL +MULTINAMELA +MULTIPLEOPENS +multitouch +multiusage +MUSTUSEINDEX +Mval +mvn +mxmlc +MXOFF +myas +mycheckbox +mycircle +myclass +myclip +myconst +mydir +myf +myfilecomp +myfiledec +MYFONT +mygraph +myhash +myjson +mymethod +myname +myns +myobj +mypackage +mypkg +myprop +myrect +myregexp +myslot +mystar +mystvar +myvargetonly +myvarsetonly +Naashorn +nabc +nai +namespacekind +namespaceset +NAMESPACESUFFIX +Naohide +napr +Nathaan +natorder +navic +nazdar +nbactions +nbbrowse +nbbuild +nbits +nbjpda +nbjpdareload +nbjpdastart +nbprofiledirect +nbproject +NBSTAT +NBTSTAT +Nbytes +ncanvas +NCCREATE +NCDESTROY +NCPAINT +NCs +nctx +ncycles +ndata +ndigit +ndis +ndp +nds +ndx +ndxa +ndxb +ndy +ndya +ndyb +nearmax +nearmouse +nearst +neco +NEGINFINITY +NEGZERO +nellymoser +nerby +netbeans +netbiasshift +netindex +Netlogon +netsize +netstring +Netword +NEUQUANT +newactivation +Newbyte +newc +newcatch +newchars +newclass +newcmds +newcount +newdebuggerpkg +neweq +newex +newfunction +newimport +newinstruction +newlist +newlocal +newmapping +newmatrix +newmethod +newobject +newpercent +newpipe +newpos +newprogress +newstyles +newswf +newtlen +newuni +newval +newvar +newver +newvermessage +newversion +newversionavailable +nex +nextbody +nextframe +nextip +nextname +nextpart +nexts +nextsize +nextvalue +nfe +Nfontname +Nfontsize +nga +nic +Nickals +nidx +nightlybuild +nimport +nins +nio +nlen +nline +NLSTEXT +NLTM +nmchar +nmembers +nmstart +nname +NOACCESS +noagent +nobak +nobj +nobundle +noch +nocharacter +nocheck +NOCHILDREN +NOCOMPACT +NOCYCLE +noddraw +nodep +NOERASE +nofill +nofinret +nohup +NOINTERFACE +NOINTERNALPAINT +nojump +noname +nonbreak +nonchild +nonclient +nonconfigured +noncontainer +nondebug +nondifferential +nonewver +nonewversion +NONINFRINGEMENT +nonlibrary +nonmenu +nonmethods +Nonrepeating +nonribbon +nonscalar +nonshapes +nonsmoothed +nonstring +Nonversioned +NOORDER +NOPARENT +NOPRECEDENCE +noprocess +nops +NOREPEAT +norig +normalval +NORRIS +noscale +noselect +noselection +noserializer +nospaces +NOSUBSCRIBERS +nosys +notaregexp +NOTAUTH +notavailable +notavailonthisplatform +noteditable +notex +NOTIMPL +notoall +notree +notset +NOTSINGLEPHASE +NOTSUPPORTED +notunix +NOTUPDATED +NOTZONE +NOUNLOAD +NOZORDER +nparams +npe +npp +nps +npw +NRotate +nsano +NScale +nscript +nsd +nsdef +nsdict +nse +nsh +nsi +nsimport +nsindex +nsisant +nskind +nslookup +nsn +nsprop +nss +nssa +nsset +nswf +NTczkc +NTDS +NTE +nthe +NTLM +NTranslate +NTSTATUS +NTVDM +ntype +nullpointer +NULLREGION +Nullsoft +NUMBERCONTEXT +numbytes +numchars +numer +numfillstyles +numgradients +numlinestyles +numread +numtags +nvp +nvs +NXRRSET +nza +nzb +oargs +obfus +OBJBLOCK +objheight +objinreg +objnoreg +OBJREF +objser +objwidth +obuffer +OBUFFERSIZE +OCTED +ocx +odc +Oepsilon +OFFPATH +offsetback +ofs +ofst +oidentifier +OIns +ois +Ojb +oldchars +oldctx +oldframe +oldop +oldpct +oldpop +oldtp +oldversion +OLESTREAM +OLEVERB +OLIADPCM +OLICELP +OLIGSM +OLIOPR +OLISBC +OMAC +ome +Omnicore +omt +omx +omy +onclip +ondemand +onecase +onedata +onfalse +onloaded +onode +ontrue +onxxx +openables +opengl +openinside +opensource +openswfinside +opentags +opfix +opkg +oplock +optimizedsize +OREQ +oret +originalbytes +origis +origt +Orost +OSId +ossup +ossupport +OSVERSIONINFO +OSVERSIONINFOEX +osx +otherdoc +otherns +otherone +ourset +oursidetrycatch +outdir +outdirectory +outex +outfunc +outofbounds +outp +outpos +outputdir +outputencoding +outputfile +outputformat +outputname +outputp +outputproperty +outputstream +outrect +outsidepart +ovalue +PACKAGEINTERNALNS +packagemapper +PACKAGENAMESPACE +padd +pagemode +pagenum +PALCHANGES +PALETTEENTRY +Panedivider +Panedocsdivider +PAnsi +paour +parallelspeedup +paramname +parentindex +parentname +parentnodes +PARMs +passlib +PASTLWTR +pathchk +pathconvert +pathelement +pathpart +pathsource +pathvar +patternset +Pawel +pblend +pbmi +pbstr +pby +pce +PChar +pcinit +pcnt +pcode +pcodehex +pcr +pctzoom +pdata +PDC +PDFs +pdp +pdw +pdx +pdy +pei +Pels +PENTIUM +peora +pepka +perlin +Perpdfddf +perpendiculardfddf +petrik +petsd +pevlr +pex +pexpr +PFM +pfwi +pgrfdex +phelps +phicon +phk +PIII +pinnable +pipename +placeobject +PLACETAG +plaf +plainsyntaxkit +PLATFORMID +plattform +Playercontrols +playerglobal +playerpath +pleasewait +plii +PLUSEQ +PLUSPLUS +pmenu +pmi +pnd +PNGs +pobj +podle +pointsedit +poolable +popscope +popups +Poskanzer +powerstate +poxyran +ppkg +pplace +ppos +ppunk +ppv +preauthentication +precomputation +precontinue +preflag +PREMULT +preparse +prereq +preservelastmodified +presetdef +pretab +prettyformat +prevar +prevblck +prevframe +PREVIEWSIZE +previouscol +prevs +printasbitmap +PRINTASBITMAPNUM +printcap +printenv +printgraph +PRINTNUM +prinz +privat +PRIVATENAMESPACE +probs +processallclasses +PROCESSENTRY +processinstr +processormodulepath +processorpath +procset +productinfo +PRODUCTINFOTAG +PROGRAMFILES +Programovani +PROJECTID +projecto +propertiessyntaxkit +propertyfile +propertyindex +propertyref +propertyset +prot +protat +PROTECTEDNAMESPACE +protectedns +PRST +prvblk +Psapi +psco +pservers +pseudohandle +psfb +psfi +psfs +PSMT +psp +psvm +PSYSUINT +psz +ptags +pti +ptimer +PTRBy +puppycrawl +puscope +pused +PUser +pushback +pushbyte +pushbyteminusone +pushconstant +pushdecimal +pushdnan +pushdouble +pushduplicate +pushfalse +pushfloat +pushingpixels +pushins +pushint +pushitem +pushnamespace +pushnan +pushnull +pushnum +pushscope +pushshort +pushtrue +pushuint +pushundefined +pushwith +Puzrin +pvar +PVR +pwi +PYTHONINDENT +pythonsyntaxkit +QControl +QNa +qname +QNAMEA +quantizationsteps +Quaqua +Quelle +quickfind +quicktime +quotacheck +quotactl +quotien +rabc +rabcasm +RABCDASM +radbias +radbiasshift +radek +radiusbias +radiusbiasshift +radiusdec +radpower +raf +RAMDISK +ramge +randa +rande +randelshofer +randf +randi +randomnumber +randomword +rasterizing +rawedit +rawid +rawout +rawstring +RBUTTON +RBUTTONDOWN +Rby +rcode +RCONTROL +rcp +rcpm +rctx +RCURLY +rdh +RDW +reachableparts +readlimit +READMODE +realityinteractive +realmaster +Recents +recentsearch +RECORDSEPARATOR +RECOVERYALREADYDONE +RECOVERYINPROGRESS +rectx +recursesubdirs +redistributors +REFTYPE +refu +REGDB +regdeo +regexes +regexpmapper +regid +regindex +registerxx +regitems +regpoint +reinitialization +releasedate +relinking +remainingbytes +remoting +removecharacter +removecharacterwithdependencies +removedeadcode +removefromcontextmenu +removeinstancemetadata +REMOVEMOVIECLIP +removemultiple +removesprite +removetrait +removetraps +remsync +renameall +renameinvalid +renameinvalididentifiers +renice +reparray +reparse +REPEATBLOCK +replacealpha +replacecharacter +replacecharacterid +replaceimage +replaceitem +replacementtext +replaceregex +replacesprite +replacestring +replacetrace +replacewithtag +REPLAYREQUEST +replicator +requantization +requantized +resamplewav +resetspacing +resizability +resname +resolveconst +resolvedx +resourcecount +resourcedates +resourcestring +Resourcing +reste +restorecontrolflow +restval +retc +retcode +retep +RETEXIT +retexpr +RETFINAL +reti +retlen +RETRYNOW +RETURNINDEXEDARRAY +returntype +returnvalue +returnvoid +rfields +rfirst +RFM +RGBQUAD +RGBT +rgfill +rgi +rgn +RGNDATA +RGNDATAHEADER +rgvar +rhetorex +rhex +riboon +ridata +RIFFV +rightclick +rightoff +riid +RLIKE +rname +rnum +rnwk +ROCKWELL +RODC +romain +rootswf +rotateanticlockwise +rotateclockwise +rotateskew +ROWMAP +rownum +ROWTYPE +rozdilne +RPos +RRef +rrest +rri +RSHIFTEQ +rsl +rtd +RTP +rtq +RTQNAME +RTQNAMEA +RTQNAMEL +RTQNAMELA +rtrn +Rtsjx +rttl +rubysyntaxkit +ruleset +runas +RUNFULLSCREEN +runjdwp +runtimeclasspath +Ruslan +Rwith +rxmin +rymin +SACL +Sadziak +saettler +safecall +Sairafi +salam +salign +SAMECACHE +SAMEFORMATETC +Sameline +samplecode +sampledata +samplefac +samplelength +samplenumber +samplepixels +Sano +sansserif +SAs +Sasaki +saveall +saveas +saveasexe +sbe +SBI +Sbits +SBLIMIT +sbr +sbt +sbw +sbytes +scalasyntaxkit +SCALEBITS +scalefac +scalefact +scalefactor +scalemode +SCALESHEAR +scalex +scalexf +scaley +scaleyf +scanerror +scanline +scansize +scard +scenebias +sceneframe +scfsi +SChannel +Scheerer +Schroeter +scm +SCOD +scode +Scopeand +SCOPECHAIN +scopepos +scopestack +screenloc +screenshots +scriptadd +SCRIPTDATA +SCRIPTDATADATE +SCRIPTDATALONGSTRING +SCRIPTDATAOBJECT +SCRIPTDATAOBJECTEND +SCRIPTDATASTRING +SCRIPTDATAVALUE +SCRIPTDATAVARIABLE +SCRIPTDATAVARIABLEEND +scriptend +scriptexport +scriptinitializer +scriptname +scriptobject +scriptpack +scriptsfolder +scrollers +scrollpane +Scrollpos +scrs +sctx +scx +SDBIU +sdec +sdf +sdi +sdiff +sdoc +sdx +sdy +searchas +searchresults +searchtext +seb +secondp +secpol +segw +Seite +selectas +selectbkcolor +selectclass +selectcolor +selectid +selectopen +selecttrait +Selektieren +selfile +selftest +semicoloned +sendenter +seproject +serclose +serh +serl +serr +SERVICEPACKMAJOR +SERVICEPACKMINOR +serz +Setable +setadvancevalues +SETCOUNT +setcursor +setglobalslot +sethalt +SETHOTKEY +setinstancemetadata +setlanguage +setloc +setlocals +setlocalx +setmember +setnohalt +setprop +setproperty +setpropertylate +setreg +setsdxns +setslot +setsuper +settarget +SETUPAPI +SETUPFILE +setupfinished +SETUPOUTCOME +setvariable +setzen +sev +sfb +sfbcnt +sfd +sfile +sfntly +sfreq +sft +sftable +sfunc +sgt +shapecache +shapefixer +shapenum +shaperecord +shapesfolder +SHAPEWITHSTYLE +sharepoint +shead +SHELLEXECUTEINFO +SHFILEINFO +SHGFI +shmem +shorttag +SHORTVERNAME +showall +SHOWDEFAULT +showframe +showhide +showin +showlog +SHOWMAXIMIZED +SHOWMINIMIZED +SHOWMINNOACTIVE +SHOWNA +SHOWNOACTIVATE +SHOWNORMAL +showoutput +SHOWWINDOW +shx +sidata +sideeffect +sidex +sids +SIF +SIMPLEREGION +SINGLEQUOTED +singlescript +singletext +sinit +sinitcode +SISO +sitem +siz +skinparts +skipifsilent +skm +slashesh +Slispinner +slist +slocate +slotconst +slotconsttrait +slotid +slotname +SMALLICON +smallpos +smallval +smartcard +smartfoxserver +SMask +sme +smember +smil +SMIME +Smp +SMPROGRAMS +smx +smy +SNa +sname +snan +SNAPALL +SNAPHEAPLIST +SNAPMODULE +SNAPPROCESS +sneq +SOFB +SOFC +SOFD +SOFE +SOFF +softsound +SOI +SOMECACHES +somemethod +somens +someprop +somesub +somevar +SOmit +SONARC +sopn +SORENSON +soundbuftime +SOUNDDATA +SOUNDENVELOPE +SOUNDFORMAT +SOUNDINFO +soundmute +SOUNDRATE +soundsfolder +SOUNDSIZE +soundstream +soundstreamhead +SOUNDTYPE +sourcefiles +sourceforge +sout +spacingpair +Spalten +spd +spe +specialbits +specialmethod +speex +sph +spi +splitbar +SPLITPANE +SPN +spos +spr +spriteinvalid +spritesfolder +spti +spw +SQLEXCEPTION +sqlsyntaxkit +SQLWARNING +SQML +sqr +SQSTRING +SQuote +sra +srcoff +srcs +srctest +srd +SRK +ssel +SSLIMIT +sslot +ssr +sss +sstar +ssti +sstle +sstring +stacknext +stackoverflow +stackpos +stackswap +Staldenmattweg +standalonenight +startdrag +STARTF +STARTFINISHTAG +STARTMENU +STARTMENUPAGE +startpos +startprofiler +startswitch +STARTUPINFO +STARTUPINFOEX +STARTVARTAG +startxref +STATDATA +staticinitializer +STATICPROTECTEDNS +STDGMEDIUM +stdole +stefan +stejny +stepinto +stepout +stepover +STGM +stle +STOPALLSOUNDS +stopclassname +STOPDRAG +stopparts +stopsounds +storepass +storeregister +storetype +strd +streamreader +Strein +strf +strh +stricteq +strictequals +stringequals +stringextract +stringgreater +stringlength +stripjavacomments +striplinebreaks +strl +strn +stvariables +stylesindex +subactions +subarra +subarrays +subauthority +subbandnumber +subbands +subclassof +subcnt +subdata +subdiv +subkeys +sublimiter +subloader +submethod +subout +subref +subsprite +Subtables +subtag +subusesvars +subvalue +subvar +subvariables +subwiz +subworkers +suitename +sumdelta +superclasses +supo +suppressionfilter +suppressionxpathfilter +suppresssuper +svalue +svar +svgxml +swc +swd +swfdecrypt +swfencrypt +swffile +swfitem +SWFNAME +swfpreview +swfs +swftext +swftools +swfver +swi +swlen +SWNE +SWP +sws +swt +swz +sxi +symb +symbolclass +symbolclassfile +Symbolek +syncmode +syncword +syntaxkit +syntaxstyles +sysclasspath +SYSDATE +SYSINT +SYSKEYDOWN +Syspart +syspropertyset +systemmodulepath +systemmodules +systemtime +SYSUINT +SYSVOL +SZD +tablelayout +tablemodels +tac +taginfo +taglist +taglistview +tagscript +tagtree +talsyntaxkit +tarfileset +targers +targetpath +taskdef +tbd +tbl +tbssvc +TBuf +Tby +TCall +Tcast +Tcb +tcerror +tchar +TColor +TControl +TCPDF +tcr +TCurrent +TDN +techno +techsmith +tellcmds +tellist +telltarget +telse +tempdatastream +temporaire +temporaryreg +tempreg +TEMPSIZE +ternars +ternat +testclass +TESTDATADIR +testhalt +testincludes +testlib +testmethods +testname +testng +testpackage +testslots +teststub +testtimes +testtry +tetha +TEXGLYPH +textaligncenter +textalignjustify +textalignleft +textalignright +textcomponent +textfields +textfile +textindent +textplain +textposition +TEXTRECORD +textsfolder +textsformatted +textsplain +textunindent +textuppercase +tfactory +tfi +tfile +TFM +TForm +Tfrm +tga +TGet +Tgl +TGoto +TGUID +tgz +thebuffer +thel +thepic +thepicture +thes +thirdp +THIRTYTWO +thn +throwpart +ths +timelined +TIMERNOFG +timesroman +tina +titem +tlb +TLBIDs +tlen +tlf +tli +tlines +tmat +tmax +tmetadata +tmgs +tmin +tmodel +tmpf +tmr +tms +TMsg +tmu +TMy +tname +tnext +tnode +tobias +TObject +tocolor +todd +todir +TOGGLEHIGHQUALITY +TOGGLEMENUITEM +togglequality +tokenfilter +TOKENTYPES +tolocal +Toolhelp +TOOLWINDOW +TOOMANY +topint +Topologi +TOREMOVE +tosystem +totalframes +totbit +touchscreen +TOWAV +tparser +tpart +tpath +tpf +TPipe +tplace +TPlay +tpmapi +Tpng +tpos +tprev +traceroute +traitadd +traitname +traitremove +traitsize +traitslist +TRANSACTIONCLOSED +Transfm +transformbasic +transformflipx +transformflipy +transformmatrix +transformmove +transformpoint +transformrotate +transformscale +transformskew +TRANSID +transitioning +translatex +translatey +trat +trc +treeitems +treelen +treenode +treetable +treg +Treti +Triff +trm +trojuh +TRUESPEECH +tryenable +tsa +Tsay +tscc +tsci +tselect +TSet +TShockwave +tsize +tsort +tstamp +TStop +tstr +ttable +ttb +ttem +ttffile +TThread +TTimer +ttm +Turkowski +turtlevax +tuto +TVar +twalljava +tweeked +Tweener +tweens +twindagger +twip +twoway +txdtc +txf +txml +txmldoc +txthelp +txts +tymed +TYPEDADDRESS +typelibrary +Typen +typenames +typenumber +typevalue +ubits +ucf +udata +uin +uinteger +UIPI +ULON +ULONGLON +ULONGLONG +ulp +ultimatefallback +ULTRADARK +ULTRALIGHT +ULW +UMI +umjammer +umontreal +UNABLEFINDAFTER +UNABLEINSTALL +unaliased +unbiasnet +uncache +Uncompresses +und +undable +undefineds +undomanager +undos +Unescapes +unexpand +Ungrabs +unichr +Unifont +Unindents +uninst +Uninstallation +Uninstaller +uninstallexe +Uninstalls +uninstantiated +UNINSTKEY +uninstlocal +uniqfilter +UNIQUESORT +unis +Unisys +unixmac +unk +UNKNOWNTAG +UNLOADMOVIE +UNLOADMOVIENUM +unmanage +unmarshall +unnamespaced +unpackagemapper +UNPAGE +unplus +unpopped +Unported +UNPOWERED +unpremultiply +unr +Unreads +Unregisters +unser +unshar +unsignedinteger +unsup +unswizzled +unswizzling +Untitledas +unzoom +updatedable +UPDATENOW +UPDATEREQUIRED +upgrademodulepath +upravit +URIEx +urlcheckfailed +urlgetsuccessfull +urshift +URSHIFTEQ +usb +USECOUNTCHARS +USEDEFAULT +USEDEFAULTCURSORS +useexternalfile +usefile +USEFILLATTRIBUTE +USEHOTKEY +usenativebasedir +USENONE +useoutlines +USEPOSITION +USERDATA +USEREG +usermod +USERMODE +USESHOWWINDOW +USESIZE +USESTDHANDLES +USETHUMBS +USHIFT +USHOR +usre +UWORD +uwyn +vaact +valcmd +validitems +valueclass +VALUENAME +VARCHARACTER +variablename +varincdec +VARPROPSETTER +varval +vavi +vbr +vbri +VBRIVBR +VBXADPCM +vchanged +vcl +vclass +vclshlctrls +vclx +vcname +VCP +vdata +vdir +velikost +VERBNAME +VERDATE +verifyop +verifypass +VERNAME +versionfile +versionx +Vetrenko +vetsinou +VGACOLOR +vgap +Vid +videocodecid +VIDEODATA +videodatarate +VIDEOINFOHEADER +Videologic +VIDEOPACKET +videoprt +viewattr +viewext +viewgraph +viewhex +viewhexpcode +viewresources +Virt +Visitcode +visitorder +Vitaly +vkind +VLayout +vlc +vlcj +vname +vnd +vnumber +vobject +vom +vot +voxware +VQLPC +vsb +VScale +vstr +vtle +vtype +vuint +vvv +vwi +VYUY +Wahlers +waitforframe +waitingfordissasembly +WASCAPTUREFILE +wasstatic +watdcsu +WAVEFORMAT +WAVEFORMATEX +WAVEFORMATEXTENSIBLE +wcmd +Webfonts +webhelp +webpage +Wecsvc +weil +WELCOMEFINISHPAGE +WELCOMEPANEL +welcometo +wellbehaved +wellformed +wenn +werden +werner +whbaos +whi +whileaif +whileajmp +wia +widelines +WILLDOWNLOAD +WILLINSTALL +winamp +WINAPI +Winbase +WINBASEAPI +Windef +WINDIR +WINDOWINFO +WINDOWSUPDATE +Winerror +Winnet +winnt +WINRM +withs +wloop +WMI +wmode +wnd +WNDCLASS +wndclassex +WNDENUMPROC +WNDPROC +WOR +wordpointer +wordsize +wparam +WRITEABLECONST +writeblock +writecolourmap +writecopy +wrk +wsize +WSL +wvar +wvi +XACT +XAngle +xar +xattrname +xattrval +xbar +XBefore +XButton +xcenter +xcontent +XControl +xcopy +XCount +XCursor +xdg +xelem +XEnd +XENROLL +XEvent +XException +xfl +XFloat +Xfm +XHalf +XHeight +xhtmlsyntaxkit +xing +XInstance +XInteger +XIntercept +xlen +xlist +xlr +xmean +xmessage +XMK +XMLAVM +XMLCDATA +XMLCDATAALONE +XMLCLOSETAGFINISH +XMLCOMMENT +XMLCOMMENTALONE +xmldoc +xmlfileset +XMLINSTR +XMLOPENTAG +XMLOPENTAGATTRIB +XMLSTARTTAG +xmlsyntaxkit +xmltag +XMLUI +xmouse +xmp +xmpmeta +xmptk +XNM +xobject +xofs +xored +XOREQ +xoring +xorval +xpacket +xpathsyntaxkit +XPels +xpos +xrefs +xscale +xsi +XSpring +xstate +xtaga +xtagb +XText +XUpdate +xval +Xvfb +xxxx +xxxxx +xxxxxx +xxxxxxx +xxyy +YAMAHA +YAngle +ybar +YBefore +ycc +ycck +YCCKTo +ycenter +YCount +YCr +YCursor +ydelta +YEnd +yestoall +YFloat +YHalf +YInstance +YInteger +ylen +ymean +YMK +ymouse +ynew +YNM +yof +yorig +yourfile +Yoyodyne +YPels +ypos +YRef +yscale +YSpring +YText +YUV +YUYV +YXDOMAIN +YXRRSET +yybegin +yychar +yycharat +yyclose +yycolumn +yyeof +YYINITIAL +yylength +yylex +yylexthrow +yyline +yypushback +yypushbackstr +yyreset +yyrset +yystate +yytext +yyy +Zabcdefghijklmnopqrstuvwxyz +ZEROFILL +ZEROINIT +zeroone +zipfileset +zis +zlab +ZMBV +zonedata +ZONERECORD +zoomable +zoomfit +zoomin +zoomint +zoomnone +zoomout +zos +ZWS diff --git a/.github/actions/spelling/line_forbidden.patterns b/.github/actions/spelling/line_forbidden.patterns new file mode 100644 index 000000000..7f70bc8c5 --- /dev/null +++ b/.github/actions/spelling/line_forbidden.patterns @@ -0,0 +1,251 @@ +# reject `m_data` as VxWorks defined it and that breaks things if it's used elsewhere +# see [fprime](https://github.com/nasa/fprime/commit/d589f0a25c59ea9a800d851ea84c2f5df02fb529) +# and [Qt](https://github.com/qtproject/qt-solutions/blame/fb7bc42bfcc578ff3fa3b9ca21a41e96eb37c1c7/qtscriptclassic/src/qscriptbuffer_p.h#L46) +#\bm_data\b + +# Were you debugging using a framework with `fit()`? +# 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 skip all the other tests. +#\bfit\( + +# Should be `HH:MM:SS` +\bHH:SS:MM\b + +# Should be `86400` (seconds in a standard day) +\b84600\b(?:.*\bday\b) + +# Should probably be `2006-01-02` (yyyy-mm-dd) +# Assuming that the time is being passed to https://go.dev/src/time/format.go +\b2006-02-01\b + +# Should probably be `YYYYMMDD` +\b[Yy]{4}[Dd]{2}[Mm]{2}(?!.*[Yy]{4}[Dd]{2}[Mm]{2}).*$ + +# Should be `a priori` or `and prior` +(?i)(? Don't use `can not` when you mean `cannot`. The only time you're likely to see `can not` written as separate words is when the word `can` happens to precede some other phrase that happens to start with `not`. +# > `Can't` is a contraction of `cannot`, and it's best suited for informal writing. +# > In formal writing and where contractions are frowned upon, use `cannot`. +# > It is possible to write `can not`, but you generally find it only as part of some other construction, such as `not only . . . but also.` +# - if you encounter such a case, add a pattern for that case to patterns.txt. +\b[Cc]an not\b + +# Should be `GitHub` +(?"'`=(])-(?:(?:J-|)(?:D(?!ouble)|[WXY])|[L])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}) + +# hit-count: 269 file-count: 24 +# IServiceProvider / isAThing +(?:\b|_)(?:(?:ns|)I(?!Psec)|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b)) + +# hit-count: 57 file-count: 38 +# uuid: +\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b + +# hit-count: 29 file-count: 29 +# File extensions +\*\.[+\w]+, + +# hit-count: 27 file-count: 11 +# version suffix v# +(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_])) + +# hit-count: 8 file-count: 2 +# pom.xml +<(?:group|artifact)Id>.*?< + +# hit-count: 3 file-count: 1 +# GitHub actions +\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+ + +# hit-count: 1 file-count: 1 +# tar arguments +\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ + +\\u00[0-9A-F]{2} + +uniIdentityH = ".*" + +# Win32 +(?:int|MessageId:) (?:(?:[A-Z]+_E|CERT|CO|DNS_ERROR|ERROR|IMAGE|OLEOBJ|OSS|RPC|SM|TPM|WM|XACT)_|WSA)\w+ + +3D(?=[A-Z]) + +# german +[\w\s]*\s+(?:[Dd]ie|der)\s+[\w\s]* + +# czech +[\w\s]*\s+(?:bude|jako|kdyz|oddeleny|pouze)\s+[\w\s]* + +# 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(?:g(?=[a-z])|)|[Ss]ign)(?:ed|ing)?) in to\b + +# to opt in +\bto opt in\b + +# acceptable duplicates +# ls directory listings +[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+ +# mount +\bmount\s+-t\s+(\w+)\s+\g{-1}\b +# C types and repeated CSS values +\s(auto|buffalo|center|div|false|inherit|long|LONG|none|normal|null|solid|thin|transparent|true|very)(?: \g{-1})+\s +# C enum and struct +\b(?:enum|struct)\s+(\w+)\s+\g{-1}\b +# go templates +\s(\w+)\s+\g{-1}\s+\`(?:graphql|inject|json|yaml): +# doxygen / javadoc / .net +(?:[\\@](?:brief|defgroup|groupname|link|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+(?:static|override|readonly|required|virtual))*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s + +# macOS file path +/MacOS + +# Python package registry has incorrect spelling for macOS / Mac OS X +"Operating System :: MacOS :: MacOS X" + +# "company" in Germany +\bGmbH\b + +# IntelliJ +\bIntelliJ\b + +# 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/spelling/reject.txt b/.github/actions/spelling/reject.txt new file mode 100644 index 000000000..5cc86ef80 --- /dev/null +++ b/.github/actions/spelling/reject.txt @@ -0,0 +1,13 @@ +^attache$ +^bellow$ +benefitting +occurences? +^dependan.* +^diables?$ +^oer$ +Sorce +^[Ss]pae.* +^Teh$ +^untill$ +^untilling$ +^wether.* diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml new file mode 100644 index 000000000..43b7c293e --- /dev/null +++ b/.github/workflows/spelling.yml @@ -0,0 +1,162 @@ +name: Check Spelling + +# 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 comment, 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 + +# SARIF reporting +# +# Access to SARIF reports is generally restricted (by GitHub) to members of the repository. +# +# Requires enabling `security-events: write` +# and configuring the action with `use_sarif: 1` +# +# For information on the feature, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-SARIF-output + +# Minimal workflow structure: +# +# on: +# push: +# ... +# pull_request_target: +# ... +# jobs: +# # you only want the spelling job, all others should be omitted +# spelling: +# # remove `security-events: write` and `use_sarif: 1` +# # remove `experimental_apply_changes_via_bot: 1` +# ... otherwise adjust the `with:` as you wish + +on: + push: + branches: + - "**" + tags-ignore: + - "**" + pull_request_target: + branches: + - "**" + types: + - "opened" + - "reopened" + - "synchronize" + issue_comment: + types: + - "created" + +jobs: + spelling: + name: Check Spelling + permissions: + contents: read + pull-requests: read + actions: read + security-events: write + 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@prerelease + with: + suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} + checkout: true + check_file_names: 1 + spell_check_this: check-spelling/spell-check-this@prerelease + post_comment: 0 + use_magic_file: 1 + report-timing: 1 + warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check,unclosed-block-ignore-begin,unclosed-block-ignore-end + experimental_apply_changes_via_bot: 1 + use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }} + check_extra_dictionaries: '' + extra_dictionaries: | + cspell:software-terms/dict/softwareTerms.txt + cspell:php/dict/php.txt + cspell:java/src/java.txt + cspell:python/src/common/extra.txt + cspell:filetypes/filetypes.txt + cspell:java/src/java-terms.txt + cspell:aws/aws.txt + cspell:clojure/src/clojure.txt + cspell:python/src/python/python-lib.txt + cspell:css/dict/css.txt + cspell:lua/dict/lua.txt + cspell:html/dict/html.txt + cspell:typescript/dict/typescript.txt + cspell:fullstack/dict/fullstack.txt + cspell:node/dict/node.txt + cspell:r/src/r.txt + cspell:python/src/python/python.txt + cspell:dotnet/dict/dotnet.txt + cspell:django/dict/django.txt + cspell:npm/dict/npm.txt + cspell:golang/dict/go.txt + cspell:scala/dict/scala.txt + cspell:mnemonics/src/mnemonics.txt + cspell:shell/dict/shell-all-words.txt + cspell:cpp/src/stdlib-cpp.txt + cspell:cryptocurrencies/cryptocurrencies.txt + cspell:cpp/src/lang-keywords.txt + cspell:k8s/dict/k8s.txt + cspell:cpp/src/compiler-msvc.txt + cspell:cpp/src/compiler-clang-attributes.txt + + update: + name: Update PR + permissions: + contents: write + pull-requests: write + actions: read + runs-on: ubuntu-latest + if: ${{ + github.event_name == 'issue_comment' && + github.event.issue.pull_request && + contains(github.event.comment.body, '@check-spelling-bot apply') && + contains(github.event.comment.body, 'https://') + }} + concurrency: + group: spelling-update-${{ github.event.issue.number }} + cancel-in-progress: false + steps: + - name: apply spelling updates + uses: check-spelling/check-spelling@prerelease + with: + experimental_apply_changes_via_bot: 1 + checkout: true + ssh_key: "${{ secrets.CHECK_SPELLING }}"