ci: Add spell-check-this

* Copy https://github.com/check-spelling/spell-check-this/tree/main/.github
* Update spelling/excludes.txt
* Copy words of .vscode/settings.json -> "cSpell.words" to expect list
* Only check C++ and Dart files
* Exclude feedback_localization.dart
* Do not check Qt words
* Fill allow list with C++ 17 & Dart & Qt keywords
This commit is contained in:
Calcitem 2021-10-31 01:48:47 +08:00
parent e724a3b22a
commit 72a9ae9d74
9 changed files with 725 additions and 0 deletions

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

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

27
.github/actions/spelling/advice.md vendored Normal file
View File

@ -0,0 +1,27 @@
<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
<details><summary>If you see a bunch of garbage</summary>
If it relates to a ...
<details><summary>well-formed pattern</summary>
See if there's a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it.
If not, try writing one and adding it to the `patterns.txt` file.
Patterns are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
</details>
<details><summary>binary-ish string</summary>
Please add a file path to the `excludes.txt` file instead of just accepting the garbage.
File paths are Perl 5 Regular Expressions - you can [test](
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
../tree/HEAD/README.md) (on whichever branch you're using).
</details>
</details>

122
.github/actions/spelling/allow.txt vendored Normal file
View File

@ -0,0 +1,122 @@
abstract
alignas
alignof
and
as
asm
assert
async
atomic
auto
await
bitand
bitor
bool
break
cancel
case
cast
catch
char
class
co
commit
compl
concept
const
consteval
constexpr
constinit
continue
covariant
decltype
default
deferred
delete
do
double
dynamic
else
emit
enum
eq
equired
explicit
export
extends
extension
extern
external
factory
final
finally
float
for
foreach
friend
function
get
goto
hide
if
implements
import
inline
int
interface
late
library
local
long
mixin
mutable
namespace
new
noexcept
not
null
nullptr
operator
or
private
protected
public
reflexpr
register
reinterpret
requires
rethrow
return
set
short
show
signals
signed
sizeof
slots
static
struct
super
switch
sync
synchronized
template
this
thread
throw
try
typedef
typeid
typename
union
unsigned
using
var
virtual
void
volatile
wchar
while
with
xor
yield

39
.github/actions/spelling/excludes.txt vendored Normal file
View File

@ -0,0 +1,39 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)package(?:-lock|)\.json$
(?:^|/)vendor/
ignore$
\.avi$
\.ico$
\.jpe?g$
\.lock$
\.map$
\.min\.
\.mod$
\.mp[34]$
\.png$
\.wav$
^\.github/
(?:^|/)Copying\.txt$
(?:^|/)(?i)AUTHORS
(?:^|/)changlogs/
\.qrc$
\.ui$
\.ts$
\.pro$
\.rc$
\.vcxproj$
\.filters$
\.svg$
(?:^|/)(?i)Makfile
(?:^|/)perfect/
\.gradle$
(?:^|/)AndroidManifest\.xml$
(?:^|/)strings\.xml$
\.arb$
feedback_localization\.dart$
zobrist\.dart$
release\.sh$
\.txt$

474
.github/actions/spelling/expect.txt vendored Normal file
View File

@ -0,0 +1,474 @@
ALIGNAS
abcdefg
alignof
alloc
amd
andnetwork
APARTMENTTHREADED
APIENTRY
appbundle
APSTUDIO
ARGB
argc
args
argv
Arial
asm
attr
autobuild
AVX
backend
bak
Barlabel
bestmove
bestvalue
Bitboard
bitboard
bitset
boarditem
buf
BUFSIZ
cafebazaar
calcitem
cassert
CBB
cctype
cerr
chrono
cin
climits
Cls
cmake
Cnt
Codacy
codeql
COINIT
colorpicker
config
CONOUT
constexpr
cout
cpp
CREATESTRUCT
crusoe
cstdint
cstdio
cstdlib
cstring
CSTYLE
CTSL
ctx
cupertino
cwd
cygwin
Dalmax
DANDROID
datastore
dbg
DEFAULTTONEAREST
deque
dest
devicelocale
Dieharder
DISCARDABLE
dll
dms
DNDEBUG
DNO
dpi
DPICHANGED
DUSE
DWORD
elif
endif
endl
endthread
entrypoint
enum
erver
eula
expr
fallthrough
fastlane
fdroid
FFDEB
FFEDF
FFFEFEFE
FFFFEFD
FFFFFAF
FFFFFFFF
FILEFLAGS
FILEFLAGSMASK
fileno
FILEOS
FILESUBTYPE
FILEVERSION
firstguess
fluentui
FONTCHANGE
FPKV
freopen
fsanitize
fstream
ftp
fullmove
Func
GAMEBOOK
GAMECONTROLLER
GAMEITEM
gameover
gamescene
gameview
gamewindow
gcc
getcwd
getline
gitee
github
GLIBCXX
GNUC
google
graphicsconst
GRAPHICSVIEW
GWLP
halfmove
HASHBUCKET
hashmap
hashnode
hbr
hhmmss
HINSTANCE
HMODULE
HMONITOR
Hori
hostory
HREDRAW
html
htmlcsscolor
http
HUGEPAGE
HWND
hwnd
idx
ifdef
ifndef
ifstream
immintrin
INHAND
inits
intrin
iomanip
iostream
ipos
IPv
iqiyi
isready
isspace
istream
istringstream
jboolean
jint
jni
JNICALL
JNIEXPORT
jobject
json
jstring
ksize
lastvalue
len
Leptopdoa
Leptopoda
libsanmill
linux
lld
lldms
llds
llp
llu
llus
localhost
locbak
LOGD
LOGF
LOGI
LOGW
lowerbound
LPARAM
lparam
lpfn
lpsz
LPTHREAD
LPVOID
LPWSTR
LRESULT
LTWH
LUID
luid
MADV
madvise
MADWEASEL
MAKEINTRESOURCE
malloc
MANUALLISTVIEW
maxv
memalign
memcmp
memcpy
MEMORYSTATUSEX
memset
MESSAGEBOX
Microsoft
midgame
millgame
MINGW
MINIMIZEBOX
MINISIZE
minv
Mixin
mlist
mman
Monospace
movegen
movepick
MOVETYPE
msix
msvc
Mtdf
MTDF
MUEHLE
mul
mutex
MVC
namespace
NButton
NCCREATE
NDEBUG
NEEDREMOVE
newgame
nmake
NMM
nmmintrin
NMove
NOACTIVATE
nobestmove
NOCOLOR
nodestime
noexcept
NOLOCK
NOMINMAX
nop
noskipws
NOZORDER
npos
nsize
NTotal
nullptr
obc
obsender
ofstream
ooxo
oss
ostream
ostringstream
osx
params
patchlevel
pdf
PDWORD
pext
pgmptr
PGROUP
pid
pieceitem
Pixmap
plugin
png
ponderhit
popcnt
popcount
popup
posix
POSIXALIGNEDALLOC
pragma
prefetch
prefetches
Prefs
preloads
printf
println
PRNG
PRODUCTVERSION
psq
PSYSTEM
pthread
ptr
ptrint
pubsync
pvs
qgraphics
qgraphicsitem
qgraphicsitems
qint
qmake
qobject
qsearch
QTDIR
qtime
rdbuf
rdtscp
READONLY
READWRITE
readyok
registar
responsponds
Resync
rng
rotr
rtl
runloop
sanmill
SBg
SBn
sbumpc
screenshot
scrollable
SCs
SDa
SDe
Sebastiano
ses
setfill
setoption
setprecision
setstacksize
setw
SFa
SFi
SFr
sgetc
SGu
shlwapi
SHu
SId
sizeof
SJa
skipws
SKn
SKo
skvf
SLv
SMk
SMs
snackbar
SNb
SNl
snprintf
soundpool
sputc
sputn
srand
src
SRo
SRu
sscanf
SSk
SSl
SSq
SSr
SSSE
sstream
SSv
startpos
stdarg
stdcall
stderr
stdin
stdio
stdlib
stdout
STe
sterlund
STh
stof
strcmp
streambuf
stringify
stringstream
strlen
strlist
strncpy
strstr
SUBLANG
subosito
substr
Subtags
SVi
SWP
SYMED
sys
SYSMENU
SZh
TARG
tcp
Texel
TEXTINCLUDE
timeb
tmp
TODO
tolower
toolbar
tooltip
tte
ttmem
typedef
typename
uci
ucinewgame
uciok
UCT
uflow
uint
uintptr
undef
unimi
Uninitialize
unistd
unregister
upperbound
url
USERDATA
ushort
usleep
utf
utils
uuid
Validator
vcvarsall
VERSIONINFO
vigna
VNNI
VREDRAW
vsnprintf
vsync
wav
wchar
wifi
wiki
WINAPI
winbase
WINNT
winres
winver
wmd
Wnd
WNDCLASS
wparam
wstring
www
XCRASH
xmmintrin
xorshift
zeroland
zobrist
ZValue

3
.github/actions/spelling/only.txt vendored Normal file
View File

@ -0,0 +1,3 @@
\.h$
\.cpp$
\.dart$

7
.github/actions/spelling/patterns.txt vendored Normal file
View File

@ -0,0 +1,7 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
# Qt
Q.*$

7
.github/actions/spelling/reject.txt vendored Normal file
View File

@ -0,0 +1,7 @@
^attache$
benefitting
occurence
Sorce
^[Ss]pae
^untill
^wether

31
.github/workflows/spelling.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Spell checking
on:
pull_request_target:
push:
issue_comment:
types: [created]
jobs:
spelling:
name: Spell checking
runs-on: ubuntu-latest
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' ||
(
contains(github.event.comment.body, '@check-spelling-bot apply')
) }}
uses: actions/checkout@v2
- uses: check-spelling/check-spelling@main
id: spelling
if: ${{ github.event_name != 'issue_comment' ||
(
contains(github.event.comment.body, '@check-spelling-bot apply')
) }}
with:
experimental_apply_changes_via_bot: 1