From 583c904347d4e8a323f7b53e79b74fcce7941d82 Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Mon, 30 Dec 2024 14:59:10 +0100 Subject: [PATCH] [Github CI] Add spellcheck action Signed-off-by: Christian Parpart --- .github/actions/spelling/allow/allow.txt | 7 + .github/actions/spelling/allow/api-terms.txt | 39 + .github/actions/spelling/allow/names.txt | 10 + .github/actions/spelling/allow/patterns.txt | 54 + .github/actions/spelling/allow/qt-terms.txt | 56 + .../actions/spelling/allow/terminal-terms.txt | 157 +++ .../actions/spelling/allow/uncategorized.txt | 1080 +++++++++++++++++ .github/workflows/build.yml | 61 + .spellcheck.yml | 24 + docs/CONTRIBUTING.md | 2 +- docs/configuration/colors.md | 2 +- docs/demo/ime.md | 2 +- .../color-palette-update-notifications.md | 2 +- metainfo.xml | 3 +- src/contour/Config.cpp | 2 +- src/contour/ConfigDocumentation.h | 4 +- src/contour/ContourApp.cpp | 2 +- src/contour/ContourGuiApp.cpp | 2 +- src/contour/display/shaders/text.frag | 2 +- src/crispy/CLI.h | 2 +- src/crispy/StrongLRUCache.h | 4 +- src/crispy/StrongLRUHashtable.h | 10 +- src/vtbackend/Grid.h | 4 +- src/vtbackend/Line.h | 2 +- src/vtbackend/Screen.cpp | 2 +- src/vtbackend/primitives.h | 2 +- src/vtrasterizer/DecorationRenderer.cpp | 2 +- src/vtrasterizer/Decorator.h | 2 +- 28 files changed, 1515 insertions(+), 26 deletions(-) create mode 100644 .github/actions/spelling/allow/allow.txt create mode 100644 .github/actions/spelling/allow/api-terms.txt create mode 100644 .github/actions/spelling/allow/names.txt create mode 100644 .github/actions/spelling/allow/patterns.txt create mode 100644 .github/actions/spelling/allow/qt-terms.txt create mode 100644 .github/actions/spelling/allow/terminal-terms.txt create mode 100644 .github/actions/spelling/allow/uncategorized.txt create mode 100644 .spellcheck.yml diff --git a/.github/actions/spelling/allow/allow.txt b/.github/actions/spelling/allow/allow.txt new file mode 100644 index 0000000000..fd95120e9e --- /dev/null +++ b/.github/actions/spelling/allow/allow.txt @@ -0,0 +1,7 @@ +FreeBSD +OpenBSD +UpperCamelCase +copy'n'paste +lowerCamelCase +macOS +zypper diff --git a/.github/actions/spelling/allow/api-terms.txt b/.github/actions/spelling/allow/api-terms.txt new file mode 100644 index 0000000000..4293bdc7ee --- /dev/null +++ b/.github/actions/spelling/allow/api-terms.txt @@ -0,0 +1,39 @@ +EPOLLIN +FSM +FTERRORS +FUNCDNAME +GLES +GLFW +GLIBCXX +GLchar +GLenum +GLfloat +GLsizei +GLsizeiptr +GLuint +HPCON +HRESULT +IUnknown +PIDVNODEPATHINFO +PIPESTATUS +SSHDSS +SSHRSA +STARTUPINFO +STARTUPINFOEX +STREQUAL +STRONGHASH +UCRT +VAO +VBO +WCA +WIF +WINAPI +WINCOMPATTRDATA +WORKDIR +addrinfo +addrlen +catchorg +cerrno +consolas +coretext +fbo diff --git a/.github/actions/spelling/allow/names.txt b/.github/actions/spelling/allow/names.txt new file mode 100644 index 0000000000..145059161e --- /dev/null +++ b/.github/actions/spelling/allow/names.txt @@ -0,0 +1,10 @@ +AYNSTAYN +Caloras +Dicharry +Vladim +Vladimir +christianparpart +dankamongmen +parpart +whisperity +yaraslaut diff --git a/.github/actions/spelling/allow/patterns.txt b/.github/actions/spelling/allow/patterns.txt new file mode 100644 index 0000000000..6cabd72882 --- /dev/null +++ b/.github/actions/spelling/allow/patterns.txt @@ -0,0 +1,54 @@ +AFAF +AGHIE +DEFG +EEEEE +EFAB +FAFD +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBCDJ +FBF +FFAF +FFFA +FFFC +FFFD +FGI +FGI +FHI +FHI +Fabcdef +GHHIJL +GHJ +Gijkl +IJKL +KLMNO +KLMNOPQRST +MNOP +MNOPQR +XXXXX +XXXXXXXXX +XYIU +XYIU +YWI +YWJj +aaaaa +aaaaaa +aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz +aanimate +abbcdf +abdeff +abz +aca +acaf +acdf +bbb +bce +bda +cdcd +cde +cdef +cdefg diff --git a/.github/actions/spelling/allow/qt-terms.txt b/.github/actions/spelling/allow/qt-terms.txt new file mode 100644 index 0000000000..5b06614a4d --- /dev/null +++ b/.github/actions/spelling/allow/qt-terms.txt @@ -0,0 +1,56 @@ +QAbstract +QApplication +QAudio +QByte +QClipboard +QCore +QDebug +QDesktop +QElapsed +QEvent +QFile +QFocus +QFont +QGui +QHost +QHover +QIO +QIcon +QImage +QInput +QJS +QKey +QMLJSDEBUGGER +QMatrix +QMedia +QMessage +QMeta +QMime +QModel +QMouse +QNative +QObject +QOffscreen +QOpen +QPoint +QProcess +QQml +QQuick +QRect +QRegion +QRunnable +QSG +QScreen +QStandard +QString +QStyle +QSurface +QSystem +QTimer +QType +QUrl +QVariant +QVector +QWheel +QWindow +Qunused diff --git a/.github/actions/spelling/allow/terminal-terms.txt b/.github/actions/spelling/allow/terminal-terms.txt new file mode 100644 index 0000000000..7b20c0a3bf --- /dev/null +++ b/.github/actions/spelling/allow/terminal-terms.txt @@ -0,0 +1,157 @@ +ANSIDSR +ANSISYSSC +APC +APPCURSOR +APPKEYPAD +BSU +CELLBACKGROUND +CELLFOREGROUND +CHT +CNL +COLORBG +COLORCURSOR +COLORFG +COLORMOUSEBG +COLORMOUSEFG +COLORSPECIAL +COLORTERM +CSI +CSIUENHCE +CSIUENTER +CSIULEAVE +CSIUQUERY +CSIu +DECALN +DECARM +DECAUPSS +DECAWM +DECBI +DECBKM +DECCARA +DECCIR +DECCKM +DECCOLM +DECDC +DECDLD +DECERA +DECFI +DECFRA +DECIC +DECKPAM +DECKPM +DECKPNM +DECLRM +DECLRMM +DECNKM +DECNRCM +DECOM +DECPCTERM +DECPS +DECRA +DECRC +DECRLM +DECRM +DECRQM +DECRQPSR +DECRQSS +DECRS +DECSASD +DECSC +DECSCA +DECSCL +DECSCLM +DECSCPP +DECSCUSR +DECSDM +DECSED +DECSEL +DECSERA +DECSIN +DECSIXEL +DECSLPP +DECSLRM +DECSM +DECSNLS +DECSPP +DECSSCLS +DECSSDT +DECSTBM +DECSTR +DECSWT +DECTABSR +DECTCEM +DECTEK +DECXCPR +DSRs +ESC +EXTRABLACK +EXTRALIGHT +Ghostty +Guake +HPR +HVP +LNM +NEL +OSC +RCOLORBG +RCOLORCURSOR +RCOLORFG +RCOLORHIGHLIGHTBG +RCOLORHIGHLIGHTFG +RCOLORMOUSEBG +RCOLORMOUSEFG +RCOLPAL +RIS +SETCOLPAL +SETCWD +SETFONTALL +SETICON +SETMASK +SETWINTITLE +SETXPROP +SGCI +SGRRESTORE +SGRSAVE +Setulc +Sixel +Smol +Smulx +TEs +TMUX +UTF +VTEs +WHEELDOWN +WHEELUP +WINDOWMANIP +WINMANIP +XTCAPTURE +XTGETTCAP +XTPOPCOLORS +XTPOPSGR +XTPUSHCOLORS +XTPUSHSGR +XTREPORTCOLORS +XTRESTORE +XTSAVE +XTSETTCAP +XTSHIFTESCAPE +XTSMGRAPHICS +XTVERSION +XTWINOPS +ZWJ +acsc +cbt +ccc +conhost +conpty +contourterminal +ctl +ctlseqs +cuf +cursorline +cursorto +cuu +dcl +dcs +fbterm +zellij diff --git a/.github/actions/spelling/allow/uncategorized.txt b/.github/actions/spelling/allow/uncategorized.txt new file mode 100644 index 0000000000..d8a34ea7d1 --- /dev/null +++ b/.github/actions/spelling/allow/uncategorized.txt @@ -0,0 +1,1080 @@ +ABE +ABX +ACCENTPOLICY +ACRYLICBLURBEHIND +ALTSCREEN +ARGN +ASL +ASingle +AUTORCC +Advapi +Aftertabs +Alacritty +Applicationkeypad +Aquuires +Autmoc +BASEPATH +BGRA +BLURBEHIND +BSDs +Blurrable +CDEFGHIJ +CDY +CFURL +CInclude +CLEARTYPE +CODEHALTH +CONOUT +COPYTOCLIPBOARD +COPYTOSELECTIONCLIPBOARD +Crafters +DATAROOTDIR +DBus +DCCACHE +DCMAKE +DCODE +DCONTOUR +DEFGHIJKL +DENABLE +DESTDIR +DISTDIR +DLIBTERMINAL +DLIBUNICODE +DMACDEPLOYQT +DNOMINMAX +DPEDANTIC +DQt +DSTRONGHASH +DUMPSTATE +DUSE +Danich +ERRORDEF +Extrawurst +FFFDu +FFFFFFFFu +FFu +FITZPATRICK +FIXMEs +FONTDIR +FPCV +FPHSA +FSM +Ftm +GDC +GNinja +Graphe +HISTTIMEFORMAT +HOSTBACKDROP +HOWTO +HTJ +Harf +Hashtale +Highlevel +Hyperlinked +IBeam +IID +INCLUDEDIR +Inerrupts +Inheritables +Integerv +Interm +Invokig +Jexer +Jhcg +KEYENC +KNOWNHOSTS +Kitware +Koblinger +Konq +Kuake +LFT +LIBEXECDIR +LPPROC +Librarires +MAKELANGID +MAKEWORD +MYTOKEN +Mip +Miscelenous +Mswsock +Mutualy +NBH +NDrop +NOLINTNEXTLINE +NOMINMAX +NONINFRINGEMENT +NSURL +NVIDIA +NXT +Neundorf +OBJCXX +OESC +OPENSSH +OSTYPE +OSx +OTH +OUTOFORDER +Objectiv +Objectui +Outptr +PACKAGENAME +PANDOC +PKGNAME +POD'ness +PPV +PQRST +PRV +PSEUDOCONSOLE +PTYIn +PWSTR +Parameteriv +Pbs +Pls +Powerline +Quicklabs +RANDGEN +RELEASEBODY +RELEASENAME +RLENGTH +ROOTDIR +RPMS +RSTART +Representsthe +Rmol +Rougier +SBottom +SCOSC +SRPMS +SRightt +SUBLANG +Seach +Sensetivity +Shakesbeer +Shuold +Stringi +TCSANOW +TESTINGG +TLDR +TLeftt +TRANSPARENTGRADIENT +TTop +Termius +Thirs +Transmittion +UNorm +Unitalic +Upsample +VERSINFO +VPART +VTT +Vondru +WSADATA +Wconversion +Wdangling +Wduplicate +Wduplicated +Wextra +Wfinal +Whildcard +Wimplicit +Wlogical +Wmissing +Wnewline +Wno +Wnull +Wpessimizing +Wredundant +Writen +Wsign +Wsuggest +XProtect +Ype +ZAxis +acion +acrylicblur +adb +aera +afef +aixterm +alex +allcolors +alloc'ed +allrepos +altlinux +ambiuous +ansicode +antialiasing +anyofallof +appendixe +appimage +appimagecrafters +appimagetool +applica +archlinux +arcval +arget +armv +arpa +asume +atempts +attachements +aur +automoc +autowrap +availabe +backgrounded +backtab +bashhub +basline +behing +bindir +binutils +bithacks +bitmaps +bitpacking +blackletter +bothner +botom +boundaried +boxdrawing +brightgreen +bugprone +bugtracker +buildpackage +buildroot +buildsystems +buildtype +buildx +bundleutiliies +burdain +buttom +cachable +capi +capturebuffer +cardridge +ccache +cdir +charcell +charwidth +checkp +chunli +cincerely +cincludeme +civis +clamav +clangd +clickable +clipboarded +closesocket +cmder +cmpeq +cnorm +codeberg +codechecker +codeowners +colorizing +colorschemes +colum +comitted +compa +consolab +consolai +consolaz +controlmaint +convinient +copyback +coreutils +costimize +cotire +cpack +cplusplus +cppbestpractices +cstyle +ctest +ctu +cuan +cursosr +cursosrline +cuswtom +cvvis +cxa +cxxabi +czf +czpf +datatracker +dbar +dbgsym +dcbbd +dchecker +ddeb +ddfaff +deadcode +debhelper +debian +debsign +debuginfo +debugsource +debuild +debversion +deccra +decoratioins +decrpm +dejavu +delimieters +demibold +demilight +devblogs +dfcb +diagonalval +diemensions +diffutils +dimensionss +directwrite +disalbe +distfile +distfiles +dladdr +dlfcn +dmg +dnf +dnkl +dockerhub +documentaion +doi +dotnet +downsample +downsampled +downsampling +downval +dpr +dsl +dwrite +ebo +ech +ecrc +edu +eee +efbcd +efc +efe +efef +efgh +egmontkob +einfo +elease +embedd +emojipedia +emul +emulatoors +endfunction +endmacro +enusre +envionment +eptr +ericniebler +esac +eslok +ethanhs +eventfd +exclamationmark +execinfo +execv +exitence +extdebug +facepalm +facepalming +faf +fakeroot +fastpath +fastpipe +fba +fbpad +fcc +fccfg +fdiagnostics +feda +fedoraproject +fff +ffff +ffffff +fgbg +fgh +fghij +filledval +finit +fira +fixiate +flathub +flatpakrepo +fmtlib +fno +fnord +fontconfig +forkpty +fortytwo +framebuffers +freeaddrinfo +freetype +freetyped +frequencey +fronend +fsanitize +fsl +ftheader +fui +fulscreen +functrace +fzf +fzt +gai +gcov +geekyeggo +getent +gfxproj +ghijkl +gifs +gitlab +gitweb +glightbox +glsl +googlesource +gpos +gpu +graind +graphicaleffects +gruvbox +gsl +gstreamer +gtkmm +hackerb +halfpixel +harfbuzz +hashcode +hashslot +havee +hendrikmuhs +hewbrew +highcon +highp +histcontrol +hla +hori +hostkey +hpa +hree +hterm +htons +hwnd +ibus +icns +iconset +iconutil +ietf +iflag +ignoreboth +ignoredups +ignorespace +ijklmnoq +ime +immintrin +incrrease +independant +indexmap +infinte +inforce +informationally +inherites +inidcator +inifinite +initc +inlinehilite +innser +insalled +installable +instanciated +instanciation +integreation +invis +invokcation +inwap +ioctl +ishift +isntead +iss +itaic +iterm +itmes +itr +ixetunchmdbkywjgarvlsfqzo +jbeder +jcgt +jkhl +jkl +julia +junle +jurplel +kawase +kbs +kcbt +kcm +kcmfonts +kcub +kcud +kcuf +kcuu +kdch +kde +keller +keybind +keybinds +keymapping +keysyms +khlp +khome +kich +kmous +kmscon +knownhost +knp +konsole +kovidgoyal +kpp +kri +kservices +kund +kwin +landingpage +ldd +ldv +lefticus +leftval +lflag +libavcodec +libavdevice +libavformat +libavutil +libb +libbz +libcap +libcom +libcrispy +libdbus +libdeflate +libdouble +libexpat +libfontconfig +libfreetype +libfreetyped +libfuse +libgcc +libgdk +libgl +libglu +libglvnd +libgpg +libharfbuzz +libjpeg +libkeyutils +libname +libncurses +libpcre +libpng +libproc +libqcocoa +libqrcodegen +libqt +librange +libsixel +libsqlite +libssh +libswscale +libtermbench +libterminal +libunicode +libunistring +libutempter +libutil +libvtbackend +libvte +libvterm +libx +libxcb +libxcursor +libxkbcommon +libyaml +libz +linenums +linksafe +lisah +llu +loadu +logstore +lowp +lrucache +lsb +lsix +luigi +lukka +macdeployqt +magick +maintencne +manjaro +materialx +maxfd +mbold +mdim +mediatype +mediump +memaccess +memleak +metainfo +mgnr +mhausenblas +milli +mimalloc +mimmicking +minimalistic +minstantly +mintty +mkchangelogmd +mkdebchangelog +mkdocs +mksquashfs +mno +mobileprovision +moduile +mojibake +mosra +movemask +mozilla +msgr +multimediaquick +multimediawidgets +multisession +mvp +mvpa +naaaaa +nabcde +nbar +nbytesdecoded +ncneofetch +ncv +nems +neofetch +neovim +netdb +netinet +netto +nfghij +nfo +nfont +nitroshare +nologo +norweigian +notcureses +notcurses +noteworty +noto +npc +nprbytes +nread +nsecs +nsight +ntrap +nwritten +oaw +octicons +ocupies +ofs +ofthe +oga +oiw +oldt +onedark +opencollective +opengl +openglwidgets +openshaper +opensuse +optin +osc +osfhandle +osl +osuosl +ourselfs +outisde +outputfile +outro +oveflow +overides +overlined +pacman +paletter +pallete +papercolor +paramn +paramter +parserfailures +particularily +patchelf +pch +pdp +performa +permenently +pgrep +pidinfo +pixbuf +pixmap +pixmaps +pkgconf +pkill +platfroms +popos +posibilities +positvie +powerlevel +pqr +preciding +precission +precmds +preexec +preexecs +presense +programatically +protocl +protocls +provied +psh +pthread +putpixel +pvi +pwsz +pymdownx +pyspelling +qbuffer +qcolor +qmake +qml +qmlcompiler +qmlcore +qmldir +qmlimport +qmllocalstorage +qmlmodels +qmlworkerscript +qmlxmllistmodel +qpa +qqmlextensionplugin +qrc +qreal +qrenderdoc +qresource +qtbase +qtdeclarative +qthread +qtmultimedia +qtqml +qtquick +qtquickcontrols +qtshadertools +qttools +qtver +qtwayland +qtx +quickcontrols +quickdialogs +quickimpl +quicklayouts +quickparticles +quickshapes +quicktemplates +quicktest +quickwidgets +rankdir +ranksep +rasterization +rasterize +rasterized +rasterizes +rasterizing +rcaloras +rdparty +rdynamic +reaaally +readfd +recognises +relase +remaints +renderables +renderutil +repeative +repology +respawing +respone +resuze +retifrav +reuiqred +reuqested +rezero +rightval +ritm +riverar +rmacs +rmam +rmean +rmir +rmkx +rmso +rmxx +roflmao +rounted +rpath +rpmbuild +rpmdevtools +rquired +rstuvwxyz +rtime +runvcpkg +rvalues +rvp +rxvt +sadface +sandboxing +scanline +sccache +screenshots +screnn +scrollback +scrolloff +sctatus +seander +seguiemj +seguisb +seguisbi +seguisli +seguisym +segv +semilight +sensetive +seperated +sequencially +serr +sessioni +setab +setaf +setname +setrgbb +setrgbf +setzero +sgr +shadertools +shae +shellcheck +shemes +shopt +shrinked +sigaction +sigemptyset +signo +sigset +sitm +sixel +sixels +skipfile +slahes +smacs +smaler +smam +smcup +smir +smkx +smxx +socio +socktype +softprops +softreset +somecolors +sourceforge +sourceline +sout +spatialaudio +squashfs +squidfunk +srcpkgs +ssrobins +sstr +stackoverflow +statuslines +stellarscience +strdup +streamlineing +stringview +strntoul +stylyzed +subcmd +subparam +subshells +substvars +superfences +supersampling +suse +swaping +sysdep +sysdeps +systemtrayicon +systray +tarides +tbc +tbh +tbp +tcap +tcflag +tcflush +tcgetattr +tcgetpgrp +tcpip +tcsh +termbench +termbenchpro +termcap +terminfo +textshaping +thena +there're +thicknes +thirdparty +thr +timepoint +timeval +tio +tions +tldp +tonsky +topdir +trackpad +transitioning +trapni +trivialbuffer +truecolor +tsl +ucd +uild +ultimatively +ultrablack +ultrabold +ultralight +undefind +unexpectly +uniblock +unistd +unittests +unrotate +unwrappable +upval +urxvt +usascii +userauth +usesh +usualy +utempter +uxe +vaesdq +vaesimcq +valgrind +vam +vap +vararg +vbar +vceqq +vcs +vdupq +veorq +versionsuffix +vfork +vgetq +viewn +vimspector +visibile +visiblity +viw +vld +vmactions +vnodepathinfo +vor +vpa +vpi +vreinterpretq +vrip +vsetq +vshrq +vsraq +vtbackend +vte +vtparser +vtpty +vtrasterizer +vtui +vunerabilities +warpdotdev +wcwidth +wdicharry +werror +wez +wezterm +wikipedia +windeployqt +winki +winrt +winsize +wintitle +wix +woboq +wordlists +workarounds +workerscript +worldmap +wrappable +writefd +wrl +wrt +wsa +wtmp +xabb +xae +xaf +xbcbcbc +xcb +xcc +xcf +xda +xdc +xdg +xebdbb +xeee +xeeeeee +xenl +xfabd +xfb +xfbf +xfdf +xff +xfffefe +xffff +xffffff +xgr +xinerama +xkb +xpixel +xproto +xstable +xtermjs +xutils +xvpa +xxxx +xxxxxx +xxxxxxxx +xzpf +yim +yiw +ypixel +zsync diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3423e72122..4afb9ca5b8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,6 +52,67 @@ jobs: - name: "Checking for open PR-related TODO items" run: ./scripts/check-pr-todos.sh + check_spelling: + name: Check spelling + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + actions: read + security-events: write + outputs: + followup: ${{ steps.spelling.outputs.followup }} + steps: + - uses: check-spelling/check-spelling@v0.0.24 + name: Check spelling + id: spellcheck + with: + suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} + checkout: true + check_file_names: 1 + spell_check_this: contour-terminal/contour@master + 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 + check_extra_dictionaries: "" + dictionary_source_prefixes: > + { + "cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/" + } + extra_dictionaries: | + cspell:aws/aws.txt + cspell:cpp/compiler-clang-attributes.txt + cspell:cpp/compiler-msvc.txt + cspell:cpp/ecosystem.txt + cspell:cpp/lang-keywords.txt + cspell:cpp/stdlib-c.txt + cspell:cpp/stdlib-cmath.txt + cspell:cpp/stdlib-cpp.txt + cspell:csharp/csharp.txt + cspell:css/css.txt + cspell:dart/dart.txt + cspell:django/django.txt + cspell:dotnet/dotnet.txt + cspell:filetypes/filetypes.txt + cspell:fullstack/fullstack.txt + cspell:golang/go.txt + cspell:html/html.txt + cspell:java/java-terms.txt + cspell:java/java.txt + cspell:lorem-ipsum/dictionary.txt + cspell:mnemonics/mnemonics.txt + cspell:node/node.txt + cspell:npm/npm.txt + cspell:php/php.txt + cspell:powershell/powershell.txt + cspell:python/common/extra.txt + cspell:python/python/python-lib.txt + cspell:python/python/python.txt + cspell:r/r.txt + cspell:software-terms/softwareTerms.txt + cspell:typescript/typescript.txt + check_clang_format: name: "Check C++ style" runs-on: ubuntu-24.04 diff --git a/.spellcheck.yml b/.spellcheck.yml new file mode 100644 index 0000000000..de42ed3928 --- /dev/null +++ b/.spellcheck.yml @@ -0,0 +1,24 @@ +matrix: +- name: Markdown + aspell: + lang: en + dictionary: + encoding: utf-8 + pipeline: + - pyspelling.filters.markdown: + - pyspelling.filters.html: + comments: false + ignores: + - code + - pre + sources: + - '**/*.md' + wordlists: + - .wordlist.txt + default_encoding: utf-8 +- name: cpp + sources: + - '**/*.{cpp,hpp,c,h}' + pipeline: + - pyspelling.filters.cpp: + line_comments: false diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 83d054ee59..c3508ef463 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -11,7 +11,7 @@ You can also see some live development on [Twitch](https://www.twitch.tv/christi ## Some general tips: -- Please keep in mind, this project is still in its very early stages (started Augost 2019) and thus +- Please keep in mind, this project is still in its very early stages (started August 2019) and thus under very active development. It's not perfect nor bug-free yet. - Please fork the main repository at [github.com/contour-terminal/contour](https://github.com/contour-terminal/contour.git) then git clone your repository into your preferred location. diff --git a/docs/configuration/colors.md b/docs/configuration/colors.md index ff693efd39..948075e2b8 100644 --- a/docs/configuration/colors.md +++ b/docs/configuration/colors.md @@ -41,7 +41,7 @@ color_schemes: ### `cursor` -section in the configuration file let you costimize the color of the cursosr and optionally override the text color. +section in the configuration file let you customize the color of the cursor and optionally override the text color. ``` yaml color_schemes: default: diff --git a/docs/demo/ime.md b/docs/demo/ime.md index cc31b20a2a..e84475c751 100644 --- a/docs/demo/ime.md +++ b/docs/demo/ime.md @@ -5,7 +5,7 @@ An input method (or input method editor, commonly abbreviated IME) is an operati ## Example of emoji input in contour using ibus -List of emojis from [unicode](http://unicode.org/emoji/charts/full-emoji-list.html) +List of emoji from [unicode](http://unicode.org/emoji/charts/full-emoji-list.html) You can insert any unicode character using ibus IME by pressing Ctrl+Shift+u (default) and then insert unicode code for the emoji or other character. diff --git a/docs/vt-extensions/color-palette-update-notifications.md b/docs/vt-extensions/color-palette-update-notifications.md index b854ea1026..0c10c19d09 100644 --- a/docs/vt-extensions/color-palette-update-notifications.md +++ b/docs/vt-extensions/color-palette-update-notifications.md @@ -16,7 +16,7 @@ Ideally we are getting CLI tools like [delta]() to query the theme mode before s to the terminal to make the output look more in line with the rest of the desktop. But also TUIs like vim should be able to reflect dark/light mode changes as soon as the -desktop has charnged to light/dark mode or the user has changed the terminal profile. +desktop has changed to light/dark mode or the user has changed the terminal profile. ## Query the current theme mode? diff --git a/metainfo.xml b/metainfo.xml index 562adaab0e..e8ddefbf82 100644 --- a/metainfo.xml +++ b/metainfo.xml @@ -111,6 +111,7 @@
  • Fixes tab switch crash after resize
  • Fixes tab shrinking after tab creation/switches when a non-zero horizontal window margin is configured
  • Fixes backtab (Shift+Tab) handling (#1685)
  • +
  • Fixes various spelling typos across the codebase (#1688)
  • @@ -691,7 +692,7 @@
    • Reverts change from 0.2.0: "Changes behaviour when receiving `U+FE0E` (VS15) to not enforce the width of 1 but leave it as is (usually 2). This seems to match what the web browser is doing, too."
    • -
    • Adds support for loading terminal color schemes from an exernal file, such as `~/.config/contour/colorschemes/onedark.yml` for the scheme `onedark` (file file format is simply a sub-tree of how colors can be specified inline).
    • +
    • Adds support for loading terminal color schemes from an external file, such as `~/.config/contour/colorschemes/onedark.yml` for the scheme `onedark` (file file format is simply a sub-tree of how colors can be specified inline).
    • Adds some more tmux-extension entries to the terminfo database that are supported by contour (`Ss`, `Se`, `Cs`, `Smol`, `Smulx`, `Setulc`).
    • Adds `Sync` capability entry to terminfo file.
    • Adds many more pixel-perfect graphical characters: `23A1`..`23A6`, `2580`..`2590`, `2594`..`259F`, `1FB00`..`1FB3B`, `1FB3C`..`1FBAF`, `1FBF0`..`1FBF9`.
    • diff --git a/src/contour/Config.cpp b/src/contour/Config.cpp index ea7c7afc4c..515572d7f8 100644 --- a/src/contour/Config.cpp +++ b/src/contour/Config.cpp @@ -2255,7 +2255,7 @@ std::string createForColorScheme(Config const& c) entry.searchHighlight.background, entry.searchHighlight.backgroundAlpha); - processWithDoc(documentation::SearchHighlihtFocused {}, + processWithDoc(documentation::SearchHighlightFocused {}, entry.searchHighlightFocused.foreground, entry.searchHighlightFocused.foregroundAlpha, entry.searchHighlightFocused.background, diff --git a/src/contour/ConfigDocumentation.h b/src/contour/ConfigDocumentation.h index ee5d6c0fb2..4a743206ac 100644 --- a/src/contour/ConfigDocumentation.h +++ b/src/contour/ConfigDocumentation.h @@ -948,7 +948,7 @@ constexpr StringLiteral SearchHighlightConfig { " background_alpha: {}\n" }; -constexpr StringLiteral SearchHighlihtFocusedConfig { +constexpr StringLiteral SearchHighlightFocusedConfig { "\n" "{comment} Search match highlighting (focused term). Similar to selection " "highlighting.\n" @@ -1794,7 +1794,7 @@ using YankHighlight = DocumentationEntry; using NormalModeCursorline = DocumentationEntry; using Selection = DocumentationEntry; using SearchHighlight = DocumentationEntry; -using SearchHighlihtFocused = DocumentationEntry; +using SearchHighlightFocused = DocumentationEntry; using WordHighlightCurrent = DocumentationEntry; using WordHighlight = DocumentationEntry; using IndicatorStatusLine = DocumentationEntry; diff --git a/src/contour/ContourApp.cpp b/src/contour/ContourApp.cpp index cd821e0ab5..56fdeb3f4d 100644 --- a/src/contour/ContourApp.cpp +++ b/src/contour/ContourApp.cpp @@ -289,7 +289,7 @@ Let's go through the different sections of the global configurations in the file )"; std::string_view const additionalInfo = R"( -### Defaut global parameters +### Default global parameters ```yaml platform_plugin: auto diff --git a/src/contour/ContourGuiApp.cpp b/src/contour/ContourGuiApp.cpp index cb15b2d3a2..cadf9c331f 100644 --- a/src/contour/ContourGuiApp.cpp +++ b/src/contour/ContourGuiApp.cpp @@ -527,7 +527,7 @@ void ContourGuiApp::setupQCoreApplication() return defaultAppName; }(); - // On Wayland, we want to set the Applicion Id to the configured value via the desktop file name. + // On Wayland, we want to set the Application Id to the configured value via the desktop file name. // We use the desktop file name as the application id, because that's what Qt uses to set the // app id on Wayland. // I know this sounds weird. This is because it is weird. But it's the only way to set the diff --git a/src/contour/display/shaders/text.frag b/src/contour/display/shaders/text.frag index 94e4b189c9..733f5aada8 100644 --- a/src/contour/display/shaders/text.frag +++ b/src/contour/display/shaders/text.frag @@ -47,7 +47,7 @@ void renderLcdGlyphSimple() fragColor = vec4(v.rgb * fs_textColor.rgb, a); } -// Calcualtes subpixel shifting. +// Calculates subpixel shifting. // // @param current current pixel to render // @param previous previous pixel, left neighbor of current. diff --git a/src/crispy/CLI.h b/src/crispy/CLI.h index 4f45472174..28a3080950 100644 --- a/src/crispy/CLI.h +++ b/src/crispy/CLI.h @@ -81,7 +81,7 @@ struct command // std::vector children = {}; command_list children = {}; command_select select = command_select::Explicit; - std::optional verbatim = {}; // Unly allowed if no sub commands were specified. + std::optional verbatim = {}; // Only allowed if no sub commands were specified. }; using command_list = command::command_list; diff --git a/src/crispy/StrongLRUCache.h b/src/crispy/StrongLRUCache.h index 756fcf863d..cfd72dfb43 100644 --- a/src/crispy/StrongLRUCache.h +++ b/src/crispy/StrongLRUCache.h @@ -63,7 +63,7 @@ class strong_lru_cache /// Clears all entries from the cache. void clear(); - // Delets the key and its associated value from the LRU cache + // Deletes the key and its associated value from the LRU cache void remove(Key key); /// Touches a given key, putting it to the front of the LRU chain. @@ -89,7 +89,7 @@ class strong_lru_cache /// if it wasn't in the cache just yet. [[nodiscard]] Value& operator[](Key key) noexcept; - /// Assignes the given value to the given key. + /// Assigns the given value to the given key. /// If the key was not found, it is being created, otherwise the value will /// be re-assigned with the new value. Value& emplace(Key key, Value value) noexcept; diff --git a/src/crispy/StrongLRUHashtable.h b/src/crispy/StrongLRUHashtable.h index 9055b9b493..aeed875f40 100644 --- a/src/crispy/StrongLRUHashtable.h +++ b/src/crispy/StrongLRUHashtable.h @@ -146,7 +146,7 @@ class strong_lru_hashtable /// if it wasn't in the hashtable just yet. [[nodiscard]] Value& operator[](strong_hash const& hash) noexcept; - /// Assignes the given value to the given hash key. + /// Assigns the given value to the given hash key. /// If the hash key was not found, it is being created, /// otherwise the value will be re-assigned with the new value. Value& emplace(strong_hash const& hash, Value value) noexcept; @@ -685,7 +685,7 @@ void strong_lru_hashtable::inspect(std::ostream& output) const entryIndex = entry.prevInLRU; } - auto const humanReadableUtiliation = [](auto a, auto b) -> std::string { + auto const humanReadableUtilization = [](auto a, auto b) -> std::string { auto const da = static_cast(a); auto const db = static_cast(b); auto const dr = (da / db) * 100.0; @@ -700,15 +700,15 @@ void strong_lru_hashtable::inspect(std::ostream& output) const output << std::format("-------------------------------------------------------------\n", _name); output << std::format("hashslot collisions : {} ({})\n", hashSlotCollisions, - humanReadableUtiliation(hashSlotCollisions, _hashCount.value)); + humanReadableUtilization(hashSlotCollisions, _hashCount.value)); output << std::format("stats : {}\n", _stats); output << std::format("hash table capacity : {} ({} utilization)\n", _hashCount.value, - humanReadableUtiliation(_size, _hashCount.value)); + humanReadableUtilization(_size, _hashCount.value)); output << std::format("entry count : {}\n", _size); output << std::format("entry capacity : {} ({} utilization)\n", _capacity.value, - humanReadableUtiliation(_size, _capacity.value)); + humanReadableUtilization(_size, _capacity.value)); output << std::format("-------------------------------------------------------------\n", _name); } diff --git a/src/vtbackend/Grid.h b/src/vtbackend/Grid.h index 52b2fb8625..1f4f4dcced 100644 --- a/src/vtbackend/Grid.h +++ b/src/vtbackend/Grid.h @@ -260,7 +260,7 @@ struct LogicalLine } private: - // Finds the maximum number of charecters of searchText that can be matched from right end of line + // Finds the maximum number of characters of searchText that can be matched from right end of line [[nodiscard]] size_t searchPartialMatch(std::u32string_view searchText, const Line& line, bool isCaseSensitive) const noexcept @@ -278,7 +278,7 @@ struct LogicalLine return 0; } - // Finds the maximum number of charecters of searchText that can be matched from left end of line + // Finds the maximum number of characters of searchText that can be matched from left end of line [[nodiscard]] size_t searchPartialMatchReverse(std::u32string_view searchText, const Line& line, bool isCaseSensitive) const noexcept diff --git a/src/vtbackend/Line.h b/src/vtbackend/Line.h index b5ad7359f0..66fe97fb91 100644 --- a/src/vtbackend/Line.h +++ b/src/vtbackend/Line.h @@ -151,7 +151,7 @@ class Line /** * Fills this line with the given content. * - * @p start offset into this line of the first charater + * @p start offset into this line of the first character * @p sgr graphics rendition for the line starting at @c start until the end * @p ascii the US-ASCII characters to fill with */ diff --git a/src/vtbackend/Screen.cpp b/src/vtbackend/Screen.cpp index a4e52e9e53..068f82e7f6 100644 --- a/src/vtbackend/Screen.cpp +++ b/src/vtbackend/Screen.cpp @@ -992,7 +992,7 @@ void Screen::eraseCharacters(ColumnCount n) // would go outside margins. // TODO: See what xterm does ;-) - // erase characters from current colum to the right + // erase characters from current column to the right auto const columnsAvailable = pageSize().columns - boxed_cast(realCursorPosition().column); auto const clampedN = unbox(clamp(n, ColumnCount(1), columnsAvailable)); diff --git a/src/vtbackend/primitives.h b/src/vtbackend/primitives.h index 246ab7b2ab..7216391b5e 100644 --- a/src/vtbackend/primitives.h +++ b/src/vtbackend/primitives.h @@ -464,7 +464,7 @@ enum class ScreenType : uint8_t }; // TODO: Maybe make boxed.h into its own C++ github repo? -// TODO: Differenciate Line/Column types for DECOM enabled/disabled coordinates? +// TODO: Differentiate Line/Column types for DECOM enabled/disabled coordinates? // // Line, Column : respects DECOM if enabled (a.k.a. logical column) // PhysicalLine, PhysicalColumn : always relative to origin (top left) diff --git a/src/vtrasterizer/DecorationRenderer.cpp b/src/vtrasterizer/DecorationRenderer.cpp index 9acf7030c8..76961d6129 100644 --- a/src/vtrasterizer/DecorationRenderer.cpp +++ b/src/vtrasterizer/DecorationRenderer.cpp @@ -221,7 +221,7 @@ auto DecorationRenderer::createTileData(Decorator decoration, }); } case Decorator::DashedUnderline: { - // Devides a grid cell's underline in three sub-ranges and only renders first and third one, + // Divides a grid cell's underline in three sub-ranges and only renders first and third one, // whereas the middle one is being skipped. auto const thicknessHalf = max(1u, unsigned(ceil(underlineThickness() / 2.0))); auto const thickness = max(1u, thicknessHalf * 2); diff --git a/src/vtrasterizer/Decorator.h b/src/vtrasterizer/Decorator.h index 06d19a434a..94c5aaa377 100644 --- a/src/vtrasterizer/Decorator.h +++ b/src/vtrasterizer/Decorator.h @@ -10,7 +10,7 @@ namespace vtrasterizer { -/// Dectorator, to decorate a grid cell, eventually containing a character +/// Decorator, to decorate a grid cell, eventually containing a character /// /// It should be possible to render multiple decoration onto the same coordinates. enum class Decorator : uint8_t