Upgrade to check-spelling v0.0.25 (#18940)

- Various spelling fixes
- Refresh metadata (including dictionaries)
- Upgrade to v0.0.25

## Validation Steps Performed

- check-spelling has been automatically testing this repository for a
while now on a daily basis to ensure that it works fairly reliably:
https://github.com/check-spelling-sandbox/autotest-check-spelling/actions/workflows/microsoft-terminal-spelling2.yml

Specific in-code fixes:
- winget
- whereas
- tl;dr
- set up
- otherwise,
- more,
- macbook
- its
- invalid
- in order to
- if
- if the
- for this tab,...
- fall back
- course,
- cch
- aspect
- archaeologists
- an
- all at once
- a
- `...`
- ; otherwise,

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
This commit is contained in:
Josh Soref 2025-06-24 16:54:04 -04:00 committed by GitHub
parent 218c9fbe3e
commit 9c452cd985
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
107 changed files with 702 additions and 744 deletions

View File

@ -11,17 +11,11 @@ colorbrewer
commandlines commandlines
consvc consvc
copyable copyable
CText
dalet
dcs dcs
deselection deselection
dialytika
diffing diffing
Dimidium Dimidium
dje
downsides downsides
dze
dzhe
Emacspeak Emacspeak
Fitt Fitt
flac flac
@ -29,16 +23,13 @@ FTCS
gantt gantt
gfm gfm
ghe ghe
gje
godbolt godbolt
hstrings hstrings
hyperlinking hyperlinking
hyperlinks hyperlinks
Kbds Kbds
kje
libfuzzer libfuzzer
liga liga
lje
Llast Llast
Lmid Lmid
locl locl
@ -50,10 +41,8 @@ minimalistic
mkmk mkmk
mnt mnt
mru mru
nje
notwrapped notwrapped
NTMTo NTMTo
ogonek
overlined overlined
perlw perlw
postmodern postmodern
@ -75,18 +64,13 @@ rlig
rubyw rubyw
runtimes runtimes
servicebus servicebus
shcha
similaritytolerance
slnt slnt
stakeholders stakeholders
subpage subpage
sustainability sustainability
sxn sxn
Tencent Tencent
TLDR
tonos
toolset toolset
tshe
UEFI UEFI
uiatextrange uiatextrange
und und
@ -94,8 +78,5 @@ vsdevcmd
westus westus
workarounds workarounds
WSLs WSLs
wtconfig
XBox XBox
YBox YBox
yeru
zhe

View File

@ -2,11 +2,8 @@ aalt
abvm abvm
ACCEPTFILES ACCEPTFILES
ACCESSDENIED ACCESSDENIED
acl
aclapi
alignas alignas
alignof alignof
allocconsolewithoptions
APPLYTOSUBMENUS APPLYTOSUBMENUS
appxrecipe appxrecipe
bitfield bitfield
@ -15,29 +12,20 @@ BUILDBRANCH
BUILDMSG BUILDMSG
BUILDNUMBER BUILDNUMBER
BYCOMMAND BYCOMMAND
BYPOSITION
charconv charconv
CLASSNOTAVAILABLE
CLOSEAPP CLOSEAPP
cmdletbinding cmdletbinding
COLORPROPERTY
colspan colspan
COMDLG COMDLG
commandlinetoargv commandlinetoargv
commoncontrols
comparand
COPYFROMRESOURCE COPYFROMRESOURCE
cstdint cstdint
CXICON CXICON
CYICON CYICON
Dacl
dataobject dataobject
dcomp
debugbreak debugbreak
delayimp delayimp
DERR
dlldata dlldata
DNE
dnom dnom
DONTADDTORECENT DONTADDTORECENT
DWMSBT DWMSBT
@ -64,81 +52,42 @@ GETHIGHCONTRAST
GETMOUSEHOVERTIME GETMOUSEHOVERTIME
GETTEXTLENGTH GETTEXTLENGTH
HARDBREAKS HARDBREAKS
Hashtable
HIGHCONTRASTON HIGHCONTRASTON
HIGHCONTRASTW HIGHCONTRASTW
HIGHQUALITYSCALE HIGHQUALITYSCALE
hinternet hinternet
HINTERNET
hotkeys hotkeys
href href
hrgn hrgn
HTCLOSE HTCLOSE
hwinsta hwinsta
HWINSTA
IActivation
IApp
IAppearance IAppearance
IAsync
IBind
IBox
IClass
IComparable
IComparer
ICONINFO ICONINFO
IConnection
ICustom
IDialog
IDirect IDirect
Idn
IExplorer
IFACEMETHOD
IFile
IGraphics
IImage
IInheritable IInheritable
IMap
imm imm
IObject
iosfwd iosfwd
IPackage
isa isa
ISetup
isspace isspace
IStorage
istream istream
IStringable
ITab
ITaskbar
itow
IUri
IVirtual
KEYSELECT KEYSELECT
LCID LCID
LINEBREAK LINEBREAK
llabs
llu
localtime
lround lround
Lsa Lsa
lsass lsass
LSHIFT LSHIFT
LTGRAY LTGRAY
MAINWINDOW MAINWINDOW
MAXIMIZEBOX
medi medi
memchr
memicmp memicmp
MENUCOMMAND MENUCOMMAND
MENUDATA MENUDATA
MENUINFO MENUINFO
MENUITEMINFOW MENUITEMINFOW
MINIMIZEBOX MINIMIZEBOX
mmeapi
MOUSELEAVE MOUSELEAVE
mov mov
mptt
msappx
MULTIPLEUSE MULTIPLEUSE
NCHITTEST NCHITTEST
NCLBUTTONDBLCLK NCLBUTTONDBLCLK
@ -148,7 +97,6 @@ NCPOINTERUPDATE
NCRBUTTONDBLCLK NCRBUTTONDBLCLK
NIF NIF
NIN NIN
NOAGGREGATION
NOASYNC NOASYNC
NOBREAKS NOBREAKS
NOCHANGEDIR NOCHANGEDIR
@ -161,8 +109,6 @@ NOTIFYICONDATA
ntprivapi ntprivapi
NTSYSCALLAPI NTSYSCALLAPI
numr numr
oaidl
ocidl
ODR ODR
offsetof offsetof
ofstream ofstream
@ -172,22 +118,17 @@ OSVERSIONINFOEXW
otms otms
OUTLINETEXTMETRICW OUTLINETEXTMETRICW
overridable overridable
PACL
PAGESCROLL PAGESCROLL
PALLOC PALLOC
PATINVERT PATINVERT
PEXPLICIT
PICKFOLDERS PICKFOLDERS
PINPUT PINPUT
pmr pmr
ptstr
QUERYENDSESSION QUERYENDSESSION
rcx rcx
REGCLS REGCLS
RETURNCMD RETURNCMD
rfind rfind
RLO
rnrn
ROOTOWNER ROOTOWNER
roundf roundf
RSHIFT RSHIFT
@ -206,22 +147,17 @@ SHOWTIP
SINGLEUSE SINGLEUSE
SIZENS SIZENS
smoothstep smoothstep
snprintf
SOFTBREAK SOFTBREAK
spsc spsc
sregex
SRWLOC SRWLOC
srwlock srwlock
SRWLOCK SRWLOCK
STDCPP STDCPP
STDMETHOD STDMETHOD
strchr
strcpy strcpy
streambuf streambuf
strtoul strtoul
Stubless Stubless
Subheader
Subpage
syscall syscall
syscolors syscolors
SYSTEMBACKDROP SYSTEMBACKDROP
@ -238,23 +174,17 @@ tokeninfo
tolower tolower
toupper toupper
TRACKMOUSEEVENT TRACKMOUSEEVENT
TTask
TVal
UChar UChar
UFIELD UFIELD
ULARGE ULARGE
UOI UOI
UPDATEINIFILE UPDATEINIFILE
urlmon urlmon
userenv
USEROBJECTFLAGS USEROBJECTFLAGS
Vcpp Vcpp
Viewbox Viewbox
virtualalloc virtualalloc
vsnwprintf
wcsnlen wcsnlen
wcsstr
wcstoui
WDJ WDJ
winhttp winhttp
wininet wininet
@ -264,10 +194,8 @@ winstamin
wmemcmp wmemcmp
wpc wpc
WSF WSF
wsregex
WWH WWH
wwinmain wwinmain
xchg
XDocument XDocument
XElement XElement
xfacet xfacet

View File

@ -1,5 +1,4 @@
CHINESEBIG CHINESEBIG
choseong choseong
Jongseong Choseong
Jungseong CHOSEONG
ssangtikeut

View File

@ -1,4 +1,3 @@
alice
aliceblue aliceblue
antiquewhite antiquewhite
blanchedalmond blanchedalmond
@ -39,7 +38,6 @@ gainsboro
ghostwhite ghostwhite
greenyellow greenyellow
hotpink hotpink
indian
indianred indianred
lavenderblush lavenderblush
lawngreen lawngreen
@ -74,7 +72,6 @@ mediumvioletred
midnightblue midnightblue
mintcream mintcream
mistyrose mistyrose
navajo
navajowhite navajowhite
navyblue navyblue
oldlace oldlace
@ -88,7 +85,6 @@ papayawhip
peachpuff peachpuff
peru peru
powderblue powderblue
rebecca
rebeccapurple rebeccapurple
rosybrown rosybrown
royalblue royalblue
@ -109,9 +105,4 @@ webgrey
webmaroon webmaroon
webpurple webpurple
whitesmoke whitesmoke
xaroon
xray
xreen
xrey
xurple
yellowgreen yellowgreen

View File

@ -1,8 +1,8 @@
Consolas Consolas
emoji emoji
emojis emojis
Emojis
Extralight Extralight
Gabriola
Iosevka Iosevka
MDL MDL
Monofur Monofur

View File

@ -1,4 +1 @@
arigatoo
doomo
Kaomojis
TATEGAKI TATEGAKI

View File

@ -1,11 +1,2 @@
atan
CPrime
HBar
HPrime
isnan isnan
LPrime
LStep
powf
RSub
sqrtf
ULP ULP

View File

@ -4,12 +4,11 @@ advapi
akv akv
AKV AKV
altform altform
altforms Altforms
appendwttlogging appendwttlogging
appinstaller appinstaller
appx appx
appxbundle appxbundle
appxerror
appxmanifest appxmanifest
ATL ATL
autoexec autoexec
@ -25,66 +24,43 @@ CPRs
cryptbase cryptbase
cscript cscript
DACL DACL
DACLs
defaultlib defaultlib
diffs diffs
disposables disposables
dotnetfeed
DTDs
DWINRT
enablewttlogging enablewttlogging
HOMESHARE HOMESHARE
Intelli Intelli
issecret issecret
IVisual
libucrt libucrt
libucrtd libucrtd
LKG
LOCKFILE LOCKFILE
Lxss Lxss
makepri makepri
mfcribbon
microsoft microsoft
microsoftonline
MSAA MSAA
msixbundle msixbundle
MSVC MSVC
MSVCP MSVCP
mtu mtu
muxc muxc
netcore
Onefuzz
osgvsowi
PFILETIME
pgc pgc
pgo pgo
pgosweep pgosweep
powerrename
powershell powershell
priconfig priconfig
PRIINFO PRIINFO
propkey propkey
pscustomobject pscustomobject
QWORD QWORD
rdpclip
regedit regedit
resfiles resfiles
robocopy
SACLs SACLs
sdkddkver
segoe segoe
Shobjidl
sid sid
Skype
SRW SRW
sxs sxs
symbolrequestprod symbolrequestprod
Sysinternals Sysinternals
sysnative
systemroot
taskkill
tasklist
tdbuildteamid
ucrt ucrt
ucrtd ucrtd
unvirtualized unvirtualized
@ -92,12 +68,9 @@ USERDNSDOMAIN
VCRT VCRT
vcruntime vcruntime
Virtualization Virtualization
visualstudio
vscode vscode
VSTHRD VSTHRD
WINBASEAPI WINBASEAPI
winsdkver
wlk
wscript wscript
wslpath wslpath
wtl wtl

View File

@ -1,4 +1,3 @@
Anup
arkthur arkthur
austdi austdi
Ballmer Ballmer
@ -6,13 +5,11 @@ bhoj
Bhojwani Bhojwani
Bluloco Bluloco
carlos carlos
craigloewen
dhowett dhowett
Diviness Diviness
dsafa dsafa
duhowett duhowett
DXP DXP
ekg
eryksun eryksun
ethanschoonover ethanschoonover
Firefox Firefox
@ -25,70 +22,42 @@ Hernan
Howett Howett
Illhardt Illhardt
Imms Imms
iquilezles
italo italo
jantari jantari
jerrysh jerrysh
Kaiyu Kaiyu
kimwalisch
KMehrain
Kodelife
KODELIFE
Kourosh
kowalczyk
leonardder leonardder
leonmsft
Lepilleur
lhecker lhecker
lukesampson
Macbook
Manandhar
masserano masserano
mbadolato
Mehrain
menger menger
mgravell
michaelniksa
michkap
migrie migrie
mikegr mikegr
mikemaccana mikemaccana
miloush
miniksa miniksa
nguyen nguyen
niksa niksa
nvaccess nvaccess
nvda nvda
oising
oldnewthing
opengl
osgwiki osgwiki
Ottosson Ottosson
pabhojwa pabhojwa
panos Panos
paulcam paulcam
pauldotknopf
PGP PGP
Pham Pham
Rincewind Rincewind
rprichard
Schoonover Schoonover
shadertoy shadertoy
Shomnipotence Shomnipotence
simioni simioni
Somuah
sonph sonph
sonpham sonpham
stakx stakx
talo
thereses thereses
Thysell Thysell
Walisch
WDX WDX
Wellons Wellons
Westerman Westerman
Wirt
Wojciech
zadjii zadjii
Zamor Zamor
zamora zamora
@ -96,4 +65,3 @@ Zamora
zljubisic zljubisic
Zoey Zoey
zorio zorio
Zverovich

View File

@ -1,3 +1,6 @@
# Repeated letters
\b([a-z])\g{-1}{2,}\b
# marker to ignore all code on line # marker to ignore all code on line
^.*/\* #no-spell-check-line \*/.*$ ^.*/\* #no-spell-check-line \*/.*$
# marker to ignore all code on line # marker to ignore all code on line
@ -7,6 +10,9 @@
# cspell inline # cspell inline
^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b ^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b
# copyright
Copyright (?:\([Cc]\)|)(?:[-\d, ]|and)+(?: [A-Z][a-z]+ [A-Z][a-z]+,?)+
# patch hunk comments # patch hunk comments
^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .* ^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .*
# git index header # git index header
@ -15,6 +21,9 @@ index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
# file permissions # file permissions
['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s] ['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s]
# css fonts
\bfont(?:-family|):[^;}]+
# css url wrappings # css url wrappings
\burl\([^)]+\) \burl\([^)]+\)
@ -32,9 +41,6 @@ index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
# https/http/file urls # https/http/file urls
(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|] (?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|]
# https/http/file urls
(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
# mailto urls # mailto urls
mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,} mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,}
@ -69,6 +75,8 @@ magnet:[?=:\w]+
# Amazon # Amazon
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|) \bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
# AWS ARN
arn:aws:[-/:\w]+
# AWS S3 # AWS S3
\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]* \b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]*
# AWS execute-api # AWS execute-api
@ -95,6 +103,8 @@ vpc-\w+
\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]* \bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
# Google APIs # Google APIs
\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+ \bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+
# Google Artifact Registry
\.pkg\.dev(?:/[-\w]+)+(?::[-\w]+|)
# Google Storage # Google Storage
\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|) \b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
# Google Calendar # Google Calendar
@ -130,6 +140,8 @@ themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+.
\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+ \bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+
# Google Colab Research Drive # Google Colab Research Drive
\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]* \bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]*
# Google Cloud regions
(?:us|(?:north|south)america|europe|asia|australia|me|africa)-(?:north|south|east|west|central){1,2}\d+
# GitHub SHAs (api) # GitHub SHAs (api)
\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b \bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b
@ -168,6 +180,12 @@ GHSA(?:-[0-9a-z]{4}){3}
# GitLab commits # GitLab commits
\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b \bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b
# #includes
^\s*#include\s*(?:<.*?>|".*?")
# #pragma lib
^\s*#pragma comment\(lib, ".*?"\)
# binance # binance
accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]* accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
@ -220,7 +238,7 @@ accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
\bmedium\.com/@?[^/\s"]+/[-\w]+ \bmedium\.com/@?[^/\s"]+/[-\w]+
# microsoft # microsoft
\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]* \b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]*
# powerbi # powerbi
\bapp\.powerbi\.com/reportEmbed/[^"' ]* \bapp\.powerbi\.com/reportEmbed/[^"' ]*
# vs devops # vs devops
@ -394,7 +412,7 @@ ipfs://[0-9a-zA-Z]{3,}
\bgetopts\s+(?:"[^"]+"|'[^']+') \bgetopts\s+(?:"[^"]+"|'[^']+')
# ANSI color codes # ANSI color codes
(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m (?:\\(?:u00|x)1[Bb]|\\03[1-7]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+)*m
# URL escaped characters # URL escaped characters
%[0-9A-F][A-F](?=[A-Za-z]) %[0-9A-F][A-F](?=[A-Za-z])
@ -431,10 +449,14 @@ sha\d+:[0-9a-f]*?[a-f]{3,}[0-9a-f]*
# pki (base64) # pki (base64)
LS0tLS1CRUdJT.* LS0tLS1CRUdJT.*
# C# includes
^\s*using [^;]+;
# uuid: # uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b \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: # 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 (?:[\\0][xX]|\\u|[uU]\+|#x?|%23|&H)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
# integrity # integrity
integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1} integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1}
@ -452,7 +474,10 @@ integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1}
Name\[[^\]]+\]=.* Name\[[^\]]+\]=.*
# IServiceProvider / isAThing # IServiceProvider / isAThing
(?:\b|_)(?:(?:ns|)I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b)) (?:(?:\b|_|(?<=[a-z]))I|(?:\b|_)(?:nsI|isA))(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b))
# python
\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
# crypt # crypt
(['"])\$2[ayb]\$.{56}\g{-1} (['"])\$2[ayb]\$.{56}\g{-1}
@ -466,17 +491,14 @@ Name\[[^\]]+\]=.*
# machine learning (?) # machine learning (?)
\b(?i)ml(?=[a-z]{2,}) \b(?i)ml(?=[a-z]{2,})
# python
\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
# scrypt / argon # scrypt / argon
\$(?:scrypt|argon\d+[di]*)\$\S+ \$(?:scrypt|argon\d+[di]*)\$\S+
# go.sum # go.sum
\bh1:\S+ \bh1:\S+
# scala imports # imports
^import (?:[\w.]|\{\w*?(?:,\s*(?:\w*|\*))+\})+ ^import\s+(?:(?:static|type)\s+|)(?:[\w.]|\{\s*\w*?(?:,\s*(?:\w*|\*))+\s*\})+
# scala modules # scala modules
("[^"]+"\s*%%?\s*){2,3}"[^"]+" ("[^"]+"\s*%%?\s*){2,3}"[^"]+"
@ -485,7 +507,7 @@ Name\[[^\]]+\]=.*
image: [-\w./:@]+ image: [-\w./:@]+
# Docker images # Docker images
^\s*FROM\s+\S+:\S+(?:\s+AS\s+\S+|) ^\s*(?i)FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
# `docker images` REPOSITORY TAG IMAGE ID CREATED SIZE # `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 \s*\S+/\S+\s+\S+\s+[0-9a-f]{8,}\s+\d+\s+(?:hour|day|week)s ago\s+[\d.]+[KMGT]B
@ -501,6 +523,7 @@ content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
# The `(?=.*?")` suffix should limit the false positives rate # The `(?=.*?")` suffix should limit the false positives rate
# printf # printf
#%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA])(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"]) #%(?:(?:(?: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 # Alternative printf
# %s # %s
%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"]) %(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"])
@ -524,7 +547,7 @@ content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
# javascript replace regex # javascript replace regex
\.replace\(/[^/\s"]{3,}/[gim]*\s*, \.replace\(/[^/\s"]{3,}/[gim]*\s*,
# assign regex # assign regex
= /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gi]?(?=\W|$) = /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gim]*(?=\W|$)
# perl regex test # perl regex test
[!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1}) [!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1})
@ -538,7 +561,7 @@ perl(?:\s+-[a-zA-Z]\w*)+
(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\() (?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
# Go regular expressions # Go regular expressions
regexp?\.MustCompile\(`[^`]*`\) regexp?\.MustCompile\((?:`[^`]*`|".*"|'.*')\)
# regex choice # regex choice
\(\?:[^)]+\|[^)]+\) \(\?:[^)]+\|[^)]+\)
@ -586,7 +609,7 @@ urn:shemas-jetbrains-com
# xcode # xcode
# xcodeproject scenes # xcodeproject scenes
(?:Controller|destination|ID|id)="\w{3}-\w{2}-\w{3}" (?:Controller|destination|(?:first|second)Item|ID|id)="\w{3}-\w{2}-\w{3}"
# xcode api botches # xcode api botches
customObjectInstantitationMethod customObjectInstantitationMethod
@ -601,14 +624,17 @@ PrependWithABINamepsace
\.fa-[-a-z0-9]+ \.fa-[-a-z0-9]+
# bearer auth # bearer auth
(['"])[Bb]ear[e][r] .*?\g{-1} (['"])[Bb]ear[e][r] .{3,}?\g{-1}
# bearer auth # bearer auth
\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]+ \b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]{3,}
# basic auth # basic auth
(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1} (['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
# basic auth
: [Bb]asic [-a-zA-Z=;:/0-9+.]{3,}
# base64 encoded content # base64 encoded content
#([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1} #([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
# base64 encoded content in xml/sgml # base64 encoded content in xml/sgml
@ -620,6 +646,9 @@ PrependWithABINamepsace
# base64 encoded pkcs # base64 encoded pkcs
#\bMII[-a-zA-Z=;:/0-9+]+ #\bMII[-a-zA-Z=;:/0-9+]+
# uuencoded
#[!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_]{40,}
# DNS rr data # DNS rr data
#(?:\d+\s+){3}(?:[-+/=.\w]{2,}\s*){1,2} #(?:\d+\s+){3}(?:[-+/=.\w]{2,}\s*){1,2}
@ -630,7 +659,7 @@ PrependWithABINamepsace
\bnumer\b(?=.*denom) \bnumer\b(?=.*denom)
# Time Zones # Time Zones
\b(?:Africa|Atlantic|America|Antarctica|Asia|Australia|Europe|Indian|Pacific)(?:/\w+)+ \b(?:Africa|Atlantic|America|Antarctica|Arctic|Asia|Australia|Europe|Indian|Pacific)(?:/[-\w]+)+
# linux kernel info # linux kernel info
^(?:bugs|flags|Features)\s+:.* ^(?:bugs|flags|Features)\s+:.*
@ -676,11 +705,17 @@ TeX/AMS
"varsIgnorePattern": ".+" "varsIgnorePattern": ".+"
# nolint # nolint
nolint:\w+ nolint:\s*[\w,]+
# Windows short paths # Windows short paths
[/\\][^/\\]{5,6}~\d{1,2}(?=[/\\]) [/\\][^/\\]{5,6}~\d{1,2}(?=[/\\])
# Windows Resources with accelerators
\b[A-Z]&[a-z]+\b(?!;)
# signed off by
(?i)Signed-off-by: .*
# cygwin paths # cygwin paths
/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+ /cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+
@ -715,29 +750,29 @@ W/"[^"]+"
# Compiler flags (Unix, Java/Scala) # Compiler flags (Unix, Java/Scala)
# Use if you have things like `-Pdocker` and want to treat them as `docker` # 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,}) #(?:^|[\t ,>"'`=(#])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# Compiler flags (Windows / PowerShell) # Compiler flags (Windows / PowerShell)
# This is a subset of the more general compiler flags pattern. # This is a subset of the more general compiler flags pattern.
# It avoids matching `-Path` to prevent it from being treated as `ath` # 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,})) #(?:^|[\t ,"'`=(#])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}))
# Compiler flags (linker) # Compiler flags (linker)
,-B ,-B
# libraries # libraries
#(?:\b|_)lib(?:re(?=office)|)(?!era[lt]|ero|erty|rar(?:i(?:an|es)|y))(?=[a-z]) #(?:\b|_)[Ll]ib(?: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) # iSCSI iqn (approximate regex)
\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b \biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b
# 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
# curl arguments # curl arguments
\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* \b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
# set arguments # set arguments
\b(?:bash|sh|set)(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)* \b(?:bash|sh|set)(?:\s+[-+][abefimouxE]{1,2})*\s+[-+][abefimouxE]{3,}(?:\s+[-+][abefimouxE]+)*
# tar arguments # tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+ \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... # tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...

View File

@ -97,7 +97,7 @@ Resources/(?!en)
^doc/reference/UTF8-torture-test\.txt$ ^doc/reference/UTF8-torture-test\.txt$
^doc/reference/windows-terminal-logo\.ans$ ^doc/reference/windows-terminal-logo\.ans$
^NOTICE.md ^NOTICE.md
^oss/ ^oss/.*?/
^samples/PixelShaders/Screenshots/ ^samples/PixelShaders/Screenshots/
^src/cascadia/TerminalSettingsEditor/SegoeFluentIconList.h$ ^src/cascadia/TerminalSettingsEditor/SegoeFluentIconList.h$
^src/interactivity/onecore/BgfxEngine\. ^src/interactivity/onecore/BgfxEngine\.
@ -121,8 +121,8 @@ Resources/(?!en)
^tools/ReleaseEngineering/ServicingPipeline\.ps1$ ^tools/ReleaseEngineering/ServicingPipeline\.ps1$
^XamlStyler\.json$ ^XamlStyler\.json$
^\.github/actions/spelling/ ^\.github/actions/spelling/
^\.github/workflows/spelling\d*\.yml$
^\.vsconfig$ ^\.vsconfig$
^\Q.github/workflows/spelling.yml\E$
^\Qbuild/config/release.gdnbaselines\E$ ^\Qbuild/config/release.gdnbaselines\E$
^\Qdep/WinAppDriver/EULA.rtf\E$ ^\Qdep/WinAppDriver/EULA.rtf\E$
^\Qdoc/reference/windows-terminal-logo.ans\E$ ^\Qdoc/reference/windows-terminal-logo.ans\E$

View File

@ -1,38 +1,19 @@
AAAAAABBBBBBCCC
AAAAABBBBBBCCC
abcd
ABCDEFGHIJ
abcdefghijk
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCG ABCG
ABE ABE
abf AZZ
BBBBB BBDM
BBBBBCCC
BBBBCCCCC
BBGGRR BBGGRR
EFG CBN
cbt
Ccc
cch
efg efg
EFGh
efgh efgh
KLMNOQQQQQQQQQQ fdw
QQQQQQQQQQABCDEFGHIJ fesb
QQQQQQQQQQABCDEFGHIJKLMNOPQRS ffd
QQQQQQQQQQABCDEFGHIJKLMNOPQRSTQQQQQQQQQ FFFD
QQQQQQQQQQABCDEFGHIJKLMNOPQRSTQQQQQQQQQQ
QQQQQQQQQQABCDEFGHIJPQRST
QQQQQQQQQQABCDEFGHIJPQRSTQQQQQQQQQQ
qwerty qwerty
qwertyuiopasdfg qwertyuiopasdfg
ZAAZZ
ZABBZ
ZBAZZ
ZBBBZ
ZBBZZ
ZYXWVUT ZYXWVUT
ZZBBZ zzf
ZZZBB
ZZZBZ
ZZZZZ

View File

@ -2,7 +2,6 @@ aaaaabbb
aabbcc aabbcc
ABANDONFONT ABANDONFONT
abbcc abbcc
ABCF
abgr abgr
ABORTIFHUNG ABORTIFHUNG
ACCESSTOKEN ACCESSTOKEN
@ -26,13 +25,11 @@ AImpl
AInplace AInplace
ALIGNRIGHT ALIGNRIGHT
allocing allocing
allocs
alpc alpc
ALTERNATENAME ALTERNATENAME
ALTF ALTF
ALTNUMPAD ALTNUMPAD
ALWAYSTIP ALWAYSTIP
aml
ansicpg ansicpg
ANSISYS ANSISYS
ANSISYSRC ANSISYSRC
@ -49,22 +46,17 @@ APIENTRY
apiset apiset
APPBARDATA APPBARDATA
appcontainer appcontainer
appium
appletname appletname
applicationmodel
APPLMODAL APPLMODAL
Applocal Applocal
appmodel appmodel
appshellintegration
APPWINDOW APPWINDOW
APPXMANIFESTVERSION APPXMANIFESTVERSION
APrep APrep
apsect
APSTUDIO APSTUDIO
archeologists
Argb
ARRAYSIZE ARRAYSIZE
ARROWKEYS ARROWKEYS
asan
ASBSET ASBSET
ASetting ASetting
ASingle ASingle
@ -72,11 +64,11 @@ ASYNCDONTCARE
ASYNCWINDOWPOS ASYNCWINDOWPOS
atch atch
ATest ATest
atg
aumid aumid
Authenticode Authenticode
AUTOBUDDY AUTOBUDDY
AUTOCHECKBOX AUTOCHECKBOX
autocrlf
autohide autohide
AUTOHSCROLL AUTOHSCROLL
automagically automagically
@ -92,10 +84,8 @@ AZZ
backgrounded backgrounded
Backgrounder Backgrounder
backgrounding backgrounding
backported
backstory backstory
Bazz Bazz
bbb
bbccb bbccb
BBDM BBDM
bbwe bbwe
@ -123,13 +113,13 @@ bitmasks
BITOPERATION BITOPERATION
BKCOLOR BKCOLOR
BKGND BKGND
BKMK
Bksp Bksp
Blt Blt
blu blu
BLUESCROLL BLUESCROLL
bmi bmi
bodgy bodgy
BODGY
BOLDFONT BOLDFONT
Borland Borland
boutput boutput
@ -148,9 +138,7 @@ buflen
buildsystems buildsystems
buildtransitive buildtransitive
BValue BValue
bytebuffer Cacafire
cac
cacafire
CALLCONV CALLCONV
CANDRABINDU CANDRABINDU
capslock capslock
@ -161,12 +149,6 @@ catid
cazamor cazamor
CBash CBash
cbiex cbiex
CBN
cbt
Ccc
CCCBB
CCCDDD
cch
CCHAR CCHAR
CCmd CCmd
ccolor ccolor
@ -181,15 +163,14 @@ cfie
cfiex cfiex
cfte cfte
CFuzz CFuzz
cgmanifest
cgscrn cgscrn
chafa chafa
changelists changelists
CHARSETINFO CHARSETINFO
chh
chshdng chshdng
CHT CHT
CLASSSTRING CLASSSTRING
CLE
cleartype cleartype
CLICKACTIVE CLICKACTIVE
clickdown clickdown
@ -212,9 +193,7 @@ cmw
CNL CNL
cnn cnn
Codeflow Codeflow
codenav
codepages codepages
codepath
coinit coinit
colorizing colorizing
COLORONCOLOR COLORONCOLOR
@ -226,13 +205,8 @@ colortbl
colortest colortest
colortool colortool
COLORVALUE COLORVALUE
combaseapi
comctl comctl
commandline
commctrl
commdlg commdlg
COMMITID
componentization
conapi conapi
conattrs conattrs
conbufferout conbufferout
@ -250,7 +224,6 @@ conintegrityuwp
coninteractivitybase coninteractivitybase
coninteractivityonecore coninteractivityonecore
coninteractivitywin coninteractivitywin
conio
coniosrv coniosrv
CONKBD CONKBD
conlibk conlibk
@ -263,13 +236,13 @@ conpropsp
conpty conpty
conptylib conptylib
conserv conserv
consoleaccessibility
consoleapi consoleapi
CONSOLECONTROL CONSOLECONTROL
CONSOLEENDTASK CONSOLEENDTASK
consolegit consolegit
consolehost consolehost
CONSOLEIME CONSOLEIME
consoleinternal
CONSOLESETFOREGROUND CONSOLESETFOREGROUND
consoletaeftemplates consoletaeftemplates
consoleuwp consoleuwp
@ -277,7 +250,6 @@ Consolewait
CONSOLEWINDOWOWNER CONSOLEWINDOWOWNER
consrv consrv
constexprable constexprable
constness
contentfiles contentfiles
conterm conterm
contsf contsf
@ -311,7 +283,6 @@ csbi
csbiex csbiex
CSHORT CSHORT
Cspace Cspace
csrmsg
CSRSS CSRSS
csrutil csrutil
CSTYLE CSTYLE
@ -368,16 +339,14 @@ DBGFONTS
DBGOUTPUT DBGOUTPUT
dbh dbh
dblclk dblclk
DBUILD
Dcd Dcd
DColor DColor
dcommon DCOMMON
DComposition DComposition
DDDCCC
dde
DDESHARE DDESHARE
DDevice DDevice
DEADCHAR DEADCHAR
dealloc
Debian Debian
debugtype debugtype
DECAC DECAC
@ -482,18 +451,16 @@ DELAYLOAD
DELETEONRELEASE DELETEONRELEASE
depersist depersist
deprioritized deprioritized
deserializers
desktopwindowxamlsource
devicecode devicecode
Dext Dext
DFactory DFactory
DFF DFF
dialogbox dialogbox
DINLINE
directio directio
DIRECTX DIRECTX
DISABLEDELAYEDEXPANSION DISABLEDELAYEDEXPANSION
DISABLENOSCROLL DISABLENOSCROLL
DISPATCHNOTIFY
DISPLAYATTRIBUTE DISPLAYATTRIBUTE
DISPLAYCHANGE DISPLAYCHANGE
distros distros
@ -530,9 +497,10 @@ dsm
dsound dsound
DSSCL DSSCL
DSwap DSwap
DTest
DTo DTo
DTTERM DTTERM
DUNICODE
DUNIT
dup'ed dup'ed
dvi dvi
dwl dwl
@ -542,8 +510,6 @@ dwmapi
DWORDs DWORDs
dwrite dwrite
dxgi dxgi
dxgidwm
dxinterop
dxsm dxsm
dxttbmp dxttbmp
Dyreen Dyreen
@ -557,7 +523,6 @@ EDITKEYS
EDITTEXT EDITTEXT
EDITUPDATE EDITUPDATE
Efast Efast
efghijklmn
EHsc EHsc
EINS EINS
ELEMENTNOTAVAILABLE ELEMENTNOTAVAILABLE
@ -566,7 +531,6 @@ enabledelayedexpansion
ENDCAP ENDCAP
endptr endptr
ENTIREBUFFER ENTIREBUFFER
entrypoints
ENU ENU
ENUMLOGFONT ENUMLOGFONT
ENUMLOGFONTEX ENUMLOGFONTEX
@ -581,7 +545,6 @@ esrp
ESV ESV
ETW ETW
EUDC EUDC
EVENTID
eventing eventing
evflags evflags
evt evt
@ -603,16 +566,6 @@ FACESIZE
FAILIFTHERE FAILIFTHERE
fastlink fastlink
fcharset fcharset
FDEA
fdw
FECF
FEEF
fesb
FFAF
ffd
FFDE
FFFD
FFFDb
fgbg fgbg
FGCOLOR FGCOLOR
FGHIJ FGHIJ
@ -630,7 +583,6 @@ FINDDLG
FINDDOWN FINDDOWN
FINDREGEX FINDREGEX
FINDSTRINGEXACT FINDSTRINGEXACT
FINDUP
FITZPATRICK FITZPATRICK
FIXEDFILEINFO FIXEDFILEINFO
Flg Flg
@ -665,7 +617,6 @@ Ftm
Fullscreens Fullscreens
Fullwidth Fullwidth
FUNCTIONCALL FUNCTIONCALL
fuzzer
fuzzmain fuzzmain
fuzzmap fuzzmap
fuzzwrapper fuzzwrapper
@ -729,6 +680,7 @@ GETWHEELSCROLLCHARS
GETWHEELSCROLLLINES GETWHEELSCROLLLINES
Gfun Gfun
gfx gfx
gfycat
GGI GGI
GHgh GHgh
GHIJK GHIJK
@ -749,6 +701,7 @@ Greyscale
gridline gridline
gset gset
gsl gsl
Guake
guc guc
GUIDATOM GUIDATOM
GValue GValue
@ -778,7 +731,6 @@ hfind
hfont hfont
hfontresource hfontresource
hglobal hglobal
hhh
hhook hhook
hhx hhx
HIBYTE HIBYTE
@ -794,7 +746,6 @@ HKCU
hkey hkey
hkl hkl
HKLM HKLM
hlocal
hlsl hlsl
HMB HMB
HMK HMK
@ -813,7 +764,6 @@ HREDRAW
hresult hresult
hscroll hscroll
hstr hstr
hstring
HTBOTTOMLEFT HTBOTTOMLEFT
HTBOTTOMRIGHT HTBOTTOMRIGHT
HTCAPTION HTCAPTION
@ -842,14 +792,12 @@ idl
idllib idllib
IDOK IDOK
IDR IDR
idth
IDTo IDTo
IDXGI IDXGI
IFACEMETHODIMP IFACEMETHODIMP
ification ification
IGNORELANGUAGE IGNORELANGUAGE
iid iid
IInput
IIo IIo
ILC ILC
ILCo ILCo
@ -863,20 +811,18 @@ INFOEX
inheritcursor inheritcursor
INITCOMMONCONTROLSEX INITCOMMONCONTROLSEX
INITDIALOG INITDIALOG
initguid INITGUID
INITMENU INITMENU
inkscape inkscape
INLINEPREFIX INLINEPREFIX
inproc inproc
Inputkeyinfo Inputkeyinfo
inputpaneinterop
Inputreadhandledata Inputreadhandledata
INPUTSCOPE INPUTSCOPE
INSERTMODE INSERTMODE
INTERACTIVITYBASE INTERACTIVITYBASE
INTERCEPTCOPYPASTE INTERCEPTCOPYPASTE
INTERNALNAME INTERNALNAME
Interner
intsafe intsafe
INVALIDARG INVALIDARG
INVALIDATERECT INVALIDATERECT
@ -888,8 +834,6 @@ itermcolors
itf itf
Ith Ith
IUI IUI
IUnknown
ivalid
IWIC IWIC
IXP IXP
jconcpp jconcpp
@ -913,7 +857,6 @@ keydowns
KEYFIRST KEYFIRST
KEYLAST KEYLAST
Keymapping Keymapping
keyscan
keystate keystate
keyups keyups
Kickstart Kickstart
@ -923,10 +866,6 @@ kinda
KIYEOK KIYEOK
KLF KLF
KLMNO KLMNO
KLMNOPQRST
KLMNOPQRSTQQQQQ
KLMNOPQRSTUVWXY
KLMNOPQRSTY
KOK KOK
KPRIORITY KPRIORITY
KVM KVM
@ -948,6 +887,8 @@ LCONTROL
LCTRL LCTRL
lcx lcx
LEFTALIGN LEFTALIGN
libsancov
libtickit
LIMITTEXT LIMITTEXT
LINEDOWN LINEDOWN
LINESELECTION LINESELECTION
@ -1052,6 +993,7 @@ MBUTTONDOWN
MBUTTONUP MBUTTONUP
mdmerge mdmerge
MDs MDs
mdtauk
MEASUREITEM MEASUREITEM
megamix megamix
memallocator memallocator
@ -1061,7 +1003,6 @@ MENUCONTROL
MENUDROPALIGNMENT MENUDROPALIGNMENT
MENUITEMINFO MENUITEMINFO
MENUSELECT MENUSELECT
messageext
metaproj metaproj
Mgrs Mgrs
microsoftpublicsymbols microsoftpublicsymbols
@ -1078,11 +1019,9 @@ minwindef
MMBB MMBB
mmcc mmcc
MMCPL MMCPL
mmsystem
MNC MNC
MNOPQ MNOPQ
MNOPQR MNOPQR
MNOPQRSTUVWXY
MODALFRAME MODALFRAME
MODERNCORE MODERNCORE
MONITORINFO MONITORINFO
@ -1094,7 +1033,6 @@ MOUSEHWHEEL
MOVESTART MOVESTART
msb msb
msbuildcache msbuildcache
msctf
msctls msctls
msdata msdata
MSDL MSDL
@ -1109,10 +1047,9 @@ MSGSELECTMODE
msiexec msiexec
MSIL MSIL
msix msix
msrc MSRC
MSVCRTD MSVCRTD
MTSM MTSM
Munged
murmurhash murmurhash
muxes muxes
myapplet myapplet
@ -1151,7 +1088,6 @@ Newtonsoft
NEXTLINE NEXTLINE
nfe nfe
NLSMODE NLSMODE
nnn
NOACTIVATE NOACTIVATE
NOAPPLYNOW NOAPPLYNOW
NOCLIP NOCLIP
@ -1204,40 +1140,31 @@ NPFS
nrcs nrcs
NSTATUS NSTATUS
ntapi ntapi
ntcon
ntcsrdll
ntdef ntdef
NTDEV NTDEV
ntdll ntdll
ntifs ntifs
ntlpcapi
ntm ntm
ntrtl
ntstatus ntstatus
nttree nttree
nturtl
ntuser ntuser
NTVDM NTVDM
ntverp
nugetversions nugetversions
NUKTA NUKTA
nullness nullness
nullonfailure nullonfailure
nullopts nullopts
numlock
NUMSCROLL NUMSCROLL
NUnit NUnit
nupkg nupkg
NVIDIA NVIDIA
NVT NVT
OACR OACR
objbase
ocolor ocolor
oemcp oemcp
OEMFONT OEMFONT
OEMFORMAT OEMFORMAT
OEMs OEMs
offboarded
OLEAUT OLEAUT
OLECHAR OLECHAR
onebranch onebranch
@ -1287,7 +1214,6 @@ PALPC
pankaj pankaj
parentable parentable
PATCOPY PATCOPY
pathcch
PATTERNID PATTERNID
pbstr pbstr
pcb pcb
@ -1342,7 +1268,6 @@ phicon
phwnd phwnd
pidl pidl
PIDLIST PIDLIST
pids
pii pii
piml piml
pimpl pimpl
@ -1367,11 +1292,9 @@ POINTERUPDATE
POINTSLIST POINTSLIST
policheck policheck
POLYTEXTW POLYTEXTW
poppack
POPUPATTR POPUPATTR
popups popups
PORFLG PORFLG
positionals
POSTCHARBREAKS POSTCHARBREAKS
POSX POSX
POSXSCROLL POSXSCROLL
@ -1404,11 +1327,9 @@ PREVLINE
prg prg
pri pri
prioritization prioritization
processenv
processhost processhost
PROCESSINFOCLASS PROCESSINFOCLASS
PRODEXT PRODEXT
Productize
PROPERTYID PROPERTYID
PROPERTYKEY PROPERTYKEY
propertyval propertyval
@ -1420,16 +1341,13 @@ propsys
PROPTITLE PROPTITLE
propvar propvar
propvariant propvariant
propvarutil
psa psa
PSCRED PSCRED
PSECURITY PSECURITY
pseudoconsole pseudoconsole
pseudoterminal
psh psh
pshn pshn
PSHNOTIFY PSHNOTIFY
pshpack
PSINGLE PSINGLE
psl psl
psldl psldl
@ -1501,8 +1419,6 @@ REGISTERVDM
regkey regkey
REGSTR REGSTR
RELBINPATH RELBINPATH
remoting
renamer
rendersize rendersize
reparented reparented
reparenting reparenting
@ -1537,19 +1453,16 @@ RIGHTALIGN
RIGHTBUTTON RIGHTBUTTON
riid riid
ris ris
roadmap
robomac robomac
rodata rodata
rosetta rosetta
RRF RRF
rrr
RRRGGGBB RRRGGGBB
rsas rsas
rtcore rtcore
RTEXT RTEXT
RTLREADING RTLREADING
Rtn Rtn
ruleset
runas runas
RUNDLL RUNDLL
runformat runformat
@ -1567,7 +1480,6 @@ rvpa
RWIN RWIN
rxvt rxvt
safemath safemath
sancov
sba sba
SBCS SBCS
SBCSDBCS SBCSDBCS
@ -1595,10 +1507,8 @@ SCROLLSCREENBUFFER
scursor scursor
sddl sddl
SDKDDK SDKDDK
securityappcontainer
segfault segfault
SELCHANGE SELCHANGE
SELECTALL
SELECTEDFONT SELECTEDFONT
SELECTSTRING SELECTSTRING
Selfhosters Selfhosters
@ -1642,14 +1552,10 @@ SFUI
sgr sgr
SHCo SHCo
shcore shcore
shellapi
shellex shellex
shellscalingapi
SHFILEINFO SHFILEINFO
SHGFI SHGFI
SHIFTJIS SHIFTJIS
shlguid
shlobj
shlwapi shlwapi
SHORTPATH SHORTPATH
SHOWCURSOR SHOWCURSOR
@ -1687,7 +1593,6 @@ snapcy
snk snk
SOLIDBOX SOLIDBOX
Solutiondir Solutiondir
somefile
sourced sourced
SRCAND SRCAND
SRCCODEPAGE SRCCODEPAGE
@ -1719,9 +1624,8 @@ STDEXT
STDMETHODCALLTYPE STDMETHODCALLTYPE
STDMETHODIMP STDMETHODIMP
STGM STGM
Stringable
STRINGTABLE STRINGTABLE
strsafe STRSAFE
STUBHEAD STUBHEAD
STUVWX STUVWX
stylecop stylecop
@ -1747,32 +1651,27 @@ SYSLIB
SYSLINK SYSLINK
SYSMENU SYSMENU
sysparams sysparams
sysparamsext
SYSTEMHAND SYSTEMHAND
SYSTEMMENU SYSTEMMENU
SYSTEMTIME SYSTEMTIME
tabview tabview
TAdd
taef taef
TARG TARG
targetentrypoint targetentrypoint
TARGETLIBS TARGETLIBS
TARGETNAME TARGETNAME
targetver targetver
TBase
tbc tbc
tbi tbi
Tbl Tbl
TBM TBM
tchar TCHAR
TCHFORMAT TCHFORMAT
TCI TCI
tcommands tcommands
tdbuild tdbuild
Tdd Tdd
TDelegated
TDP TDP
tearoff
Teb Teb
Techo Techo
tellp tellp
@ -1782,7 +1681,6 @@ terminalinput
terminalrenderdata terminalrenderdata
TERMINALSCROLLING TERMINALSCROLLING
terminfo terminfo
TEs
testcon testcon
testd testd
testenvs testenvs
@ -1794,7 +1692,6 @@ TESTNULL
testpass testpass
testpasses testpasses
TEXCOORD TEXCOORD
TExpected
textattribute textattribute
TEXTATTRIBUTEID TEXTATTRIBUTEID
textboxes textboxes
@ -1805,39 +1702,28 @@ TEXTMETRIC
TEXTMETRICW TEXTMETRICW
textmode textmode
texttests texttests
TFunction
THUMBPOSITION THUMBPOSITION
THUMBTRACK THUMBTRACK
tickit
TIcon
tilunittests tilunittests
titlebars titlebars
TITLEISLINKNAME TITLEISLINKNAME
TJson
TLambda
TLDP TLDP
TLEN TLEN
TMAE TMAE
TMPF TMPF
TMult
tmultiple tmultiple
TODOs
tofrom tofrom
tokenhelpers
toolbars toolbars
TOOLINFO TOOLINFO
TOOLWINDOW TOOLWINDOW
TOPDOWNDIB TOPDOWNDIB
TOpt
tosign tosign
touchpad
tracelogging tracelogging
traceviewpp traceviewpp
trackbar trackbar
trackpad trackpad
transitioning transitioning
Trd Trd
TREX
triaged triaged
triaging triaging
TRIMZEROHEADINGS TRIMZEROHEADINGS
@ -1845,9 +1731,7 @@ trx
tsa tsa
tsgr tsgr
tsm tsm
TStr
TSTRFORMAT TSTRFORMAT
TSub
TTBITMAP TTBITMAP
TTFONT TTFONT
TTFONTLIST TTFONTLIST
@ -1856,7 +1740,6 @@ TTo
tvpp tvpp
tvtseq tvtseq
TYUI TYUI
UAC
uap uap
uapadmin uapadmin
UAX UAX
@ -1892,7 +1775,6 @@ unk
unknwn unknwn
UNORM UNORM
unparseable unparseable
Unregistering
untextured untextured
UPDATEDISPLAY UPDATEDISPLAY
UPDOWN UPDOWN
@ -1910,7 +1792,6 @@ USEFILLATTRIBUTE
USEGLYPHCHARS USEGLYPHCHARS
USEHICON USEHICON
USEPOSITION USEPOSITION
USERDATA
userdpiapi userdpiapi
Userp Userp
userprivapi userprivapi
@ -1923,7 +1804,6 @@ USRDLL
utext utext
utr utr
UVWXY UVWXY
UVWXYZ
uwa uwa
uwp uwp
uwu uwu
@ -1932,17 +1812,16 @@ Vanara
vararg vararg
vclib vclib
vcxitems vcxitems
vectorize
VERCTRL VERCTRL
VERTBAR VERTBAR
VFT VFT
vga vga
vgaoem vgaoem
viewkind viewkind
viewports
VIRAMA VIRAMA
Virt Virt
VIRTTERM VIRTTERM
visualstudiosdk
vkey vkey
VKKEYSCAN VKKEYSCAN
VMs VMs
@ -2001,7 +1880,6 @@ wekyb
wewoad wewoad
wex wex
wextest wextest
wextestclass
WFill WFill
wfopen wfopen
WHelper WHelper
@ -2012,9 +1890,7 @@ Wiggum
wil wil
WImpl WImpl
WINAPI WINAPI
winbase
winbasep winbasep
wincodec
wincon wincon
winconp winconp
winconpty winconpty
@ -2029,10 +1905,8 @@ windll
WINDOWALPHA WINDOWALPHA
windowdpiapi windowdpiapi
WINDOWEDGE WINDOWEDGE
windowext
WINDOWINFO WINDOWINFO
windowio windowio
windowmetrics
WINDOWPLACEMENT WINDOWPLACEMENT
windowpos windowpos
WINDOWPOSCHANGED WINDOWPOSCHANGED
@ -2040,20 +1914,15 @@ WINDOWPOSCHANGING
windowproc windowproc
windowrect windowrect
windowsapp windowsapp
windowsinternalstring
WINDOWSIZE WINDOWSIZE
windowsshell windowsshell
windowsterminal windowsterminal
windowsx
windowtheme windowtheme
winevent winevent
wingdi
winget winget
wingetcreate wingetcreate
WINIDE WINIDE
winioctl
winmd winmd
winmeta
winmgr winmgr
winmm winmm
WINMSAPP WINMSAPP
@ -2063,8 +1932,8 @@ WInplace
winres winres
winrt winrt
winternl winternl
winui
winuser winuser
winuserp
WINVER WINVER
wistd wistd
wmain wmain
@ -2101,10 +1970,9 @@ WRITECONSOLEINPUT
WRITECONSOLEOUTPUT WRITECONSOLEOUTPUT
WRITECONSOLEOUTPUTSTRING WRITECONSOLEOUTPUTSTRING
wrkstr wrkstr
wrl WRL
wrp wrp
WRunoff WRunoff
wsl
WSLENV WSLENV
wstr wstr
wstrings wstrings
@ -2117,7 +1985,7 @@ wtof
WTs WTs
WTSOFTFONT WTSOFTFONT
wtw wtw
wtypes Wtypes
WUX WUX
WVerify WVerify
WWith WWith
@ -2136,7 +2004,6 @@ XBUTTONDOWN
XBUTTONUP XBUTTONUP
XCast XCast
XCENTER XCENTER
xchar
xcopy xcopy
XCount XCount
xdy xdy
@ -2146,6 +2013,7 @@ XFG
XFile XFile
XFORM XFORM
XIn XIn
xkcd
XManifest XManifest
XMath XMath
XNamespace XNamespace
@ -2172,7 +2040,6 @@ YLimit
YPan YPan
YSubstantial YSubstantial
YVIRTUALSCREEN YVIRTUALSCREEN
Zab
zabcd zabcd
Zabcdefghijklmn Zabcdefghijklmn
Zabcdefghijklmnopqrstuvwxyz Zabcdefghijklmnopqrstuvwxyz
@ -2181,4 +2048,3 @@ ZCtrl
ZWJs ZWJs
ZYXWVU ZYXWVU
ZYXWVUTd ZYXWVUTd
zzf

View File

@ -8,6 +8,24 @@
# you might not want to check in code where you skip all the other tests. # you might not want to check in code where you skip all the other tests.
#\bfit\( #\bfit\(
# English does not use a hyphen between adverbs and nouns
# https://twitter.com/nyttypos/status/1894815686192685239
(?:^|\s)[A-Z]?[a-z]+ly-(?=[a-z]{3,})(?:[.,?!]?\s|$)
# Don't use `requires that` + `to be`
# https://twitter.com/nyttypos/status/1894816551435641027
\brequires that \w+\b[^.]+to be\b
# A fully parenthetical sentences period goes inside the parentheses, not outside.
# https://twitter.com/nyttypos/status/1898844061873639490
\([A-Z][a-z]{2,}(?: [a-z]+){3,}\)\.\s
# Complete sentences shouldn't be in the middle of another sentence as a parenthetical.
(?<!\.)(?<!\betc)\.\),
# Complete sentences in parentheticals should not have a space before the period.
\s\.\)(?!.*\}\})
# Should be `HH:MM:SS` # Should be `HH:MM:SS`
\bHH:SS:MM\b \bHH:SS:MM\b
@ -24,18 +42,52 @@
# Should be `a priori` or `and prior` # Should be `a priori` or `and prior`
(?i)(?<!posteriori)\sand priori\s (?i)(?<!posteriori)\sand priori\s
# Should be `a`
\san (?=(?:[b-df-gj-np-rtv-xz]|h(?!our|sl|tml|ttp)|s(?!sh|vg))[a-z])
# Should only be one of `a`, `an`, or `the` # Should only be one of `a`, `an`, or `the`
\b(?:(?:an?|the)\s+){2,}\b \b(?:(?:an?|the)\s+){2,}\b
# Should only be `are` or `can`, not both
\b(?:(?:are|can)\s+){2,}\b
# Should probably be `ABCDEFGHIJKLMNOPQRSTUVWXYZ`
(?i)(?!ABCDEFGHIJKLMNOPQRSTUVWXYZ)ABC[A-Z]{21}YZ
# Should be `an`
(?<!\b[Ii] )\bam\b
# Should be `anymore` # Should be `anymore`
\bany more[,.] \bany more[,.]
# Should be `Ask`
(?:^|[.?]\s+)As\s+[A-Z][a-z]{2,}\s[^.?]*?(?:how|if|wh\w+)\b
# Should be `at one fell swoop`
# and only when talking about killing, not some other completion
# Act 4 Scene 3, Macbeth
# https://www.opensourceshakespeare.org/views/plays/play_view.php?WorkID=macbeth&Act=4&Scene=3&Scope=scene
\bin one fell s[lw]?oop\b
# Should be `'` # Should be `'`
(?i)\b(?:(?:i|s?he|they|what|who|you)"ll|(?:are|ca|did|do|does|ha[ds]|have|is|should|were|wo|would)n"t|(?:s?he|let|that|there|what|where|who)"s|(?:i|they|we|what|who|you)"ve)\b (?i)\b(?:(?:i|s?he|they|what|who|you)[`"]ll|(?:are|ca|did|do|does|ha[ds]|have|is|should|were|wo|would)n[`"]t|(?:s?he|let|that|there|what|where|who)[`"]s|(?:i|they|we|what|who|you)[`"]ve)\b
# Should be `background` / `intro text` / `introduction` / `prologue` unless it's a brand or relates to _subterfuge_
(?i)\bpretext\b
# Should be `bearer`
\b(?<=the )burden(?= of bad news\b)
# Should be `branches`
# ... unless it's really about the meal that replaces breakfast and lunch.
\b[Bb]runches\b
# Should be `briefcase` # Should be `briefcase`
\bbrief-case\b \bbrief-case\b
# Should be `by far` or `far and away`
\bby far and away\b
# Should be `can, not only ..., ... also...` # Should be `can, not only ..., ... also...`
\bcan not only.*can also\b \bcan not only.*can also\b
@ -46,7 +98,10 @@
# > In formal writing and where contractions are frowned upon, use `cannot`. # > 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.` # > 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. # - if you encounter such a case, add a pattern for that case to patterns.txt.
\b[Cc]an not\b \b[Cc]an not\b(?! only\b)
# Should be `chart`
(?i)\bhelm\b.*\bchard\b
# Do not use `(click) here` links # Do not use `(click) here` links
# For more information, see: # For more information, see:
@ -56,9 +111,27 @@
# * https://heyoka.medium.com/dont-use-click-here-f32f445d1021 # * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\() (?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
# Including "image of" or "picture of" in alt text is unnecessary.
\balt=['"](?:an? |)(?:image|picture) of
# Alt text should be short
\balt=(?:'[^']{126,}'|"[^"]{126,}")
# Should be `equals` to `is equal to` # Should be `equals` to `is equal to`
\bequals to\b \bequals to\b
# Should be `ECMA` 262 (JavaScript)
(?i)\bTS\/EMCA\b|\bEMCA(?: \d|\s*Script)|\bEMCA\b(?=.*\bTS\b)
# Should be `ECMA` 340 (Near Field Communications)
(?i)EMCA[- ]340
# Should be `fall back`
(?<!\ba )(?<!\bthe )\bfallback(?= to(?! ask))\b
# Should be `for`, `for, to` or `to`
\b(?:for to|to for)\b
# Should be `GitHub` # Should be `GitHub`
(?<![&*.]|// |\b(?:from|import|type) )\bGithub\b(?![{()]) (?<![&*.]|// |\b(?:from|import|type) )\bGithub\b(?![{()])
@ -84,11 +157,14 @@
# Should be `RabbitMQ` # Should be `RabbitMQ`
\bRabbitmq\b \bRabbitmq\b
# Should be `TensorFlow`
\bTensorflow\b
# Should be `TypeScript` # Should be `TypeScript`
\bTypescript\b \bTypescript\b
# Should be `another` # Should be `another`
\ban[- ]other\b \ban[- ]other(?!-)\b
# Should be `case-(in)sensitive` # Should be `case-(in)sensitive`
\bcase (?:in|)sensitive\b \bcase (?:in|)sensitive\b
@ -108,11 +184,14 @@
# Should be `here-in`, `the`, `them`, `this`, `these` or reworded in some other way # Should be `here-in`, `the`, `them`, `this`, `these` or reworded in some other way
\bthe here(?:\.|,| (?!and|defined)) \bthe here(?:\.|,| (?!and|defined))
# Should be `going to bed` or `going to a bad`
\bgoing to bad(?!-)\b
# Should be `greater than` # Should be `greater than`
#\bhigher than\b #\bhigher than\b
# Should be `ID` # Should be `ID` (unless it's a flag/property)
#\bId\b #(?<![-\.])\bId\b(?![(])
# Should be `in front of` # Should be `in front of`
\bin from of\b \bin from of\b
@ -125,6 +204,12 @@
# Should be `use` # Should be `use`
\sin used by\b \sin used by\b
# Should be `in-depth` if used as an adjective (but `in depth` when used as an adverb)
\bin depth\s(?!rather\b)\w{6,}
# Should be `in-flight` or `on the fly` (unless actually talking about airline flights)
\bon[- ]flight\b(?!=\s+(?:(?:\w{2}|)\d+|availability|booking|computer|data|delay|departure|management|performance|radar|reservation|scheduling|software|status|ticket|time|type|.*(?:hotel|taxi)))
# Should be `is obsolete` # Should be `is obsolete`
\bis obsolescent\b \bis obsolescent\b
@ -132,7 +217,10 @@
\bits['] \bits[']
# Should be `its` # Should be `its`
\bit's(?= own\b) \bit's(?= (?:child|only purpose|own(?:er|)|parent|sibling)\b)
# Should be `for its` (possessive) or `because it is`
\bfor it(?:'s| is)\b
# Should be `log in` # Should be `log in`
\blogin to the \blogin to the
@ -140,6 +228,25 @@
# Should be `long-standing` # Should be `long-standing`
\blong standing\b \blong standing\b
# Should be `lose`
(?<=\bwill )loose\b
# `apt-key` is deprecated
# ... instead you should be writing a pair of files:
# ... * the gpg key added to a distinct key ring file based on your project/distro/key...
# ... * the sources.list in a district file -- not simply appended to `/etc/apt/sources.list` -- (there is a newer format [DEB822](https://manpages.debian.org/bookworm/dpkg-dev/deb822.5.en.html)) that references the gpg key.
# Consider:
# ````sh
# curl http://download.something.example.com/$DISTRO/Release.key | \
# gpg --dearmor --yes --output /usr/share/keyrings/something-distro.gpg
# echo "deb [signed-by=/usr/share/keyrings/something-distro.gpg] http://download.something.example.com/repositories/home:/$DISTRO ./" \
# >> /etc/apt/sources.list.d/something-distro.list
# ````
\bapt-key add\b
# Should be `nearby`
\bnear by\b
# Should probably be a person named `Nick` or the abbreviation `NIC` # Should probably be a person named `Nick` or the abbreviation `NIC`
\bNic\b \bNic\b
@ -153,7 +260,7 @@
\bperform it's\b \bperform it's\b
# Should be `opt-in` # Should be `opt-in`
#(?<!\scan|for)(?<!\sif)\sopt in\s #(?<!\scan|for)(?<!\smust)(?<!\sif)\sopt in\s
# Should be `less than` # Should be `less than`
\bless then\b \bless then\b
@ -170,24 +277,77 @@
# Should be `on the other hand` # Should be `on the other hand`
\b(?i)on another hand\b \b(?i)on another hand\b
# Reword to `on at runtime` or `enabled at launch`
# The former if you mean it can be changed dynamically.
# The latter if you mean that it can be changed without recompiling but not after the program starts.
\bswitched on runtime\b
# Should be `Of course,`
[?.!]\s+Of course\s(?=[-\w\s]+[.?;!,])
# Most people only have two hands. Reword. # Most people only have two hands. Reword.
\b(?i)on the third hand\b \b(?i)on the third hand\b
# Should be `Open Graph`
# unless talking about a specific Open Graph implementation:
# - Java
# - Node
# - Py
# - Ruby
\bOpenGraph\b
# Should be `OpenShift`
\bOpenshift\b
# Should be `otherwise` # Should be `otherwise`
\bother[- ]wise\b \bother[- ]wise\b
# Should be `; otherwise` or `. Otherwise`
# https://study.com/learn/lesson/otherwise-in-a-sentence.html
, [Oo]therwise\b
# Should probably be `Otherwise,`
(?<=\. )Otherwise\s
# Should be `or (more|less)` # Should be `or (more|less)`
\bore (?:more|less)\b \bore (?:more|less)\b
# Should be reworded.
# `passthrough` is an adjective
# `pass-through` could be a noun
# `pass through` would be a verb phrase
\b(?i)passthrough(?= an?\b)
# Should be `rather than` # Should be `rather than`
\brather then\b \brather then\b
# Should be `Red Hat`
\bRed[Hh]at\b
# Should be `regardless, ...` or `regardless of (whether)` # Should be `regardless, ...` or `regardless of (whether)`
\b[Rr]egardless if you\b \b[Rr]egardless if you\b
# Should be `self-signed`
\bself signed\b
# Should be `SendGrid`
\bSendgrid\b
# Should be `set up` (`setup` is a noun / `set up` is a verb)
\b[Ss]etup(?= (?:an?|the)\b)
# Should be `state`
\bsate(?=\b|[A-Z])|(?<=[a-z])Sate(?=\b|[A-Z])|(?<=[A-Z]{2})Sate(?=\b|[A-Z])
# Should be `no longer needed` # Should be `no longer needed`
\bno more needed\b(?! than\b) \bno more needed\b(?! than\b)
# Should be `<see|look> below for the`
(?i)\bfind below the\b
# Should be `then any` unless there's a comparison before the `,`
, than any\b
# Should be `did not exist` # Should be `did not exist`
\bwere not existent\b \bwere not existent\b
@ -197,9 +357,18 @@
# Should be `nonexistent` # Should be `nonexistent`
\b[Nn]o[nt][- ]existent\b \b[Nn]o[nt][- ]existent\b
# Should be `our`
\bspending out time\b
# Should be `@brief` / `@details` / `@param` / `@return` / `@retval` # Should be `@brief` / `@details` / `@param` / `@return` / `@retval`
(?:^\s*|(?:\*|//|/*)\s+`)[\\@](?:breif|(?:detail|detials)|(?:params(?!\.)|prama?)|ret(?:uns?)|retvl)\b (?:^\s*|(?:\*|//|/*)\s+`)[\\@](?:breif|(?:detail|detials)|(?:params(?!\.)|prama?)|ret(?:uns?)|retvl)\b
# Should be `more than` or `more, then`
\bmore then\b
# Should be `Pipeline`/`pipeline`
(?:(?<=\b|[A-Z])p|P)ipeLine(?:\b|(?=[A-Z]))
# Should be `preexisting` # Should be `preexisting`
[Pp]re[- ]existing [Pp]re[- ]existing
@ -224,14 +393,27 @@
# Should be `reentrant` # Should be `reentrant`
[Rr]e[- ]entrant [Rr]e[- ]entrant
# Should be `room for`
\brooms for (?!lease|rent|sale)
# Should be `socioeconomic`
# https://dictionary.cambridge.org/us/dictionary/english/socioeconomic
socio-economic
# Should be `strong suit` # Should be `strong suit`
\b(?:my|his|her|their) strong suite\b \b(?:my|his|her|their) strong suite\b
# Should probably be `temperatures` unless actually talking about thermal drafts (things birds may fly on)
\bthermals\b
# Should be `there are` or `they are` (or `they're`)
(?i)\btheir are\b
# Should be `understand` # Should be `understand`
\bunder stand\b \bunder stand\b
# Should be `URI` or `uri` unless it refers to a person named `Uri` # Should be `URI` or `uri` unless it refers to a person named `Uri` (or a flag)
#(?<!\.)\bUri\b(?![(]) #(?<![-\.])\bUri\b(?![(])
# Should be `it uses is` # Should be `it uses is`
/\bis uses is\b/ /\bis uses is\b/
@ -245,12 +427,36 @@
# Should be `where` # Should be `where`
\bwere they are\b \bwere they are\b
# Should be `why`
, way(?= is [^.]*\?)
# should be `vCenter` # should be `vCenter`
\bV[Cc]enter\b \bV[Cc]enter\b
# Should be `VM` # Should be `VM`
\bVm\b \bVm\b
# Should be `walkthrough(s)`
\bwalk-throughs?\b
# Should be `want`
\bdon't ant\b
# Should be `we'll`
\bwe 'll\b
# Should be `whereas`
\bwhere as\b
# Should be `WinGet`
\bWinget\b
# Should be `without` (unless `out` is a modifier of the next word)
\bwith out\b(?!-)
# Should be `work around`
\b[Ww]orkaround(?= an?\b)
# Should be `workarounds` # Should be `workarounds`
#\bwork[- ]arounds\b #\bwork[- ]arounds\b
@ -270,12 +476,12 @@
\b(?:coarse|fine) grained\b \b(?:coarse|fine) grained\b
# Homoglyph (Cyrillic) should be `A`/`B`/`C`/`E`/`H`/`I`/`I`/`J`/`K`/`M`/`O`/`P`/`S`/`T`/`Y` # Homoglyph (Cyrillic) should be `A`/`B`/`C`/`E`/`H`/`I`/`I`/`J`/`K`/`M`/`O`/`P`/`S`/`T`/`Y`
# It's possible that your content is intentionally mixing Cyrllic and Latin scripts, but if it isn't, you definitely want to correct this. # It's possible that your content is intentionally mixing Cyrillic and Latin scripts, but if it isn't, you definitely want to correct this.
(?<=[A-Z]{2})[АВСЕНІӀЈКМОРЅТУ]|[АВСЕНІӀЈКМОРЅТУ](?=[A-Z]+(?:\b|[a-z]+)|[a-z]+(?:[^a-z]|$)) (?<=[A-Z]{2})[АВСЕНІӀЈКМОРЅТУ]|[АВСЕНІӀЈКМОРЅТУ](?=[A-Z]+(?:\b|[a-z]+)|[a-z]+(?:[^a-z]|$))
# Homoglyph (Cyrillic) should be `a`/`b`/`e` # Homoglyph (Cyrillic) should be `a`/`b`/`c`/`e`/`o`/`p`/`x`/`y`
# It's possible that your content is intentionally mixing Cyrllic and Latin scripts, but if it isn't, you definitely want to correct this. # It's possible that your content is intentionally mixing Cyrillic and Latin scripts, but if it isn't, you definitely want to correct this.
[аве](?=[A-Za-z]{2,})|(?<=[A-Za-z]{2})[аве]|(?<=[A-Za-z])[аве](?=[A-Za-z]) [авсеорху](?=[A-Za-z]{2,})|(?<=[A-Za-z]{2})[авсеорху]|(?<=[A-Za-z])[авсеорху](?=[A-Za-z])
# Should be `neither/nor` -- or reword # Should be `neither/nor` -- or reword
#(?!<do )\bnot\b([^.?!"/(](?!neither|,.*?,))+\bnor\b #(?!<do )\bnot\b([^.?!"/(](?!neither|,.*?,))+\bnor\b

View File

@ -1,5 +1,35 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns # See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
# Windows accelerators
\b[A-Z][a-z]*&[a-z]+(?!;)\b
# charsets.hpp
\{ L.*\}, // (?:Cyrillic|Greek|Hebrew).*
# Screen buffer tests
\bQQ[A-Z]+\s*[A-Z]*Q+\b
# Unicode references
(?<=\W)(?:U\+?|)[0-9A-F]+b?\b
# Verify
VERIFY_IS_TRUE\(.*\)
# TEST_METHOD(ApiScrollConsoleScreenBufferW)
\bZ[A-Z]+$
# TerminalApiTest
stateMachine\.ProcessString\(L".*"
# bundles
[0-9a-z]+\\?\.msixbundle
# text file names
"[a-z]+\.txt"
# Checksum
L"[0-9A-F]{4}"
# Direct 2D/3D # Direct 2D/3D
\b(?:d[23]d(?=[a-z])|D[23]D(?=[A-Z])) \b(?:d[23]d(?=[a-z])|D[23]D(?=[A-Z]))
@ -9,39 +39,127 @@
# Windows Resources with accelerators # Windows Resources with accelerators
\b[A-Z]&[a-z]+\b(?!;) \b[A-Z]&[a-z]+\b(?!;)
# bug in check-spelling v0.0.24 (fixed later)
\bok'd\b
# Automatically suggested patterns # Automatically suggested patterns
# hit-count: 83 file-count: 18 # hit-count: 3904 file-count: 577
# IServiceProvider / isAThing
(?:(?:\b|_|(?<=[a-z]))[IT]|(?:\b|_)(?:nsI|isA))(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b))
# hit-count: 2437 file-count: 826
# #includes
^\s*#include\s*(?:<.*?>|".*?")
# hit-count: 1131 file-count: 326
# C# includes
^\s*using [^;]+;
# hit-count: 128 file-count: 47
# C network byte conversions # C network byte conversions
(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\() (?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
# hit-count: 59 file-count: 36 # hit-count: 53 file-count: 10
# IServiceProvider / isAThing # ANSI color codes
(?:\b|_)(?:(?:ns|)I|isA)(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b)) (?:\\(?:u00|x)1[Bb]|\\03[1-7]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+)*m
# hit-count: 9 file-count: 6 # hit-count: 45 file-count: 29
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
# hit-count: 30 file-count: 19
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
# hit-count: 17 file-count: 7
# File extensions
\*\.[+\w]+,
# hit-count: 15 file-count: 9
# Markdown anchor links # Markdown anchor links
\(#\S*?[a-zA-Z]\S*?\) \(#\S*?[a-zA-Z]\S*?\)
# hit-count: 5 file-count: 5 # hit-count: 14 file-count: 8
# libraries # hex runs
(?:\b|_)lib(?:re(?=office)|)(?!era[lt]|ero|ert(?:ies|y)|rar(?:i(?:an|es)|y))(?=[a-z]) \b[0-9a-fA-F]{16,}\b
# hit-count: 12 file-count: 8
# hex digits including css/html color classes:
(?:[\\0][xX]|\\u|[uU]\+|#x?|%23|&H)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
# hit-count: 12 file-count: 7
# tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
# hit-count: 9 file-count: 6
# Repeated letters
\b([a-z])\g{-1}{2,}\b
# hit-count: 8 file-count: 2
# regex choice
\(\?:[^)]+\|[^)]+\)
# hit-count: 8 file-count: 1
# latex (check-spelling >= 0.0.22)
\\\w{2,}\{
# hit-count: 7 file-count: 4
# 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
(?<!['"])\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)['"](?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
# hit-count: 5 file-count: 3
# Alternatively, if you're using check-spelling v0.0.25+, and you would like to _check_ the Non-English content for spelling errors, you can. For information on how to do so, see:
# https://docs.check-spelling.dev/Feature:-Configurable-word-characters.html#unicode
[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
# hit-count: 3 file-count: 3 # hit-count: 3 file-count: 3
# File extensions # mailto urls
\*\.[+\w]+, mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,}
# hit-count: 2 file-count: 2
# Alternative printf
# %s
%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"])
# hit-count: 2 file-count: 1 # hit-count: 2 file-count: 1
# kubernetes crd patterns # kubernetes crd patterns
^\s*pattern: .*$ ^\s*pattern: .*$
# hit-count: 1 file-count: 1
# css fonts
\bfont(?:-family|):[^;}]+
# hit-count: 1 file-count: 1
# microsoft
\b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]*
# hit-count: 1 file-count: 1
# Punycode
\bxn--[-0-9a-z]+
# hit-count: 1 file-count: 1
# sha-... -- uses a fancy capture
(\\?['"]|&quot;)[0-9a-f]{40,}\g{-1}
# hit-count: 1 file-count: 1
# Docker images
^\s*(?i)FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
# hit-count: 1 file-count: 1
# 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
# hit-count: 1 file-count: 1 # hit-count: 1 file-count: 1
# curl arguments # curl arguments
\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)* \b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
# hit-count: 1 file-count: 1
# 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
# bug in check-spelling v0.0.24 (fixed later)
\bok'd\b
https?://\S+ https?://\S+
[Pp]ublicKeyToken="?[0-9a-fA-F]{16}"? [Pp]ublicKeyToken="?[0-9a-fA-F]{16}"?
(?:[{"]|UniqueIdentifier>)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}(?:[}"]|</UniqueIdentifier) (?:[{"]|UniqueIdentifier>)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}(?:[}"]|</UniqueIdentifier)
@ -72,24 +190,11 @@ ROY\sG\.\sBIV
# ARM NEON intrinsics like "vsubq_u16" # ARM NEON intrinsics like "vsubq_u16"
\bv\w+_[fsu](?:8|16|32|64)\b \bv\w+_[fsu](?:8|16|32|64)\b
# color floating numbers
0x[0-9a-f](?:\.[0-9a-f]*p)[-+]\d+f
# AppX package # AppX package
_\d[0-9a-z]{12}['\.] _\d[0-9a-z]{12}['\.]
# string test # string test
equals_insensitive_ascii\("\w+", "\w+" equals_insensitive_ascii\("\w+", "\w+"
# Automatically suggested patterns
# hit-count: 3788 file-count: 599
# IServiceProvider / isAThing
\b(?:I|isA)(?=(?:[A-Z][a-z]{2,})+\b)
# hit-count: 314 file-count: 21
# hex runs
\b[0-9a-fA-F]{16,}\b
# hit-count: 47 file-count: 11 # hit-count: 47 file-count: 11
# special cased printf markers # special cased printf markers
\\r\\n(?=[a-z])|(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*(?:<.*['"`]|"(?:[;,]|\);)$|\) \+$)) \\r\\n(?=[a-z])|(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*(?:<.*['"`]|"(?:[;,]|\);)$|\) \+$))
@ -97,84 +202,6 @@ equals_insensitive_ascii\("\w+", "\w+"
# ConsoleArgumentsTests # ConsoleArgumentsTests
--headless\\.*?" --headless\\.*?"
# hit-count: 109 file-count: 62
# Compiler flags (Unix, Java/Scala)
# Use if you have things like `-Pdocker` and want to treat them as `docker`
(?:^|[\t ,>"'`=(])-(?:D(?=[A-Z])|W(?!ork)|X|f(?=[ms]))(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
# hit-count: 60 file-count: 35
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
# hit-count: 2 file-count: 2
# 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
%(?:s)(?!ize)(?=[a-z]{2,})
# hit-count: 16 file-count: 10
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
# hit-count: 13 file-count: 4
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
# hit-count: 7 file-count: 5
# 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
# hit-count: 7 file-count: 1
# regex choice
\(\?:[^)]+\|[^)]+\)
# hit-count: 4 file-count: 4
# tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
# hit-count: 4 file-count: 1
# ANSI color codes
(?:\\(?:u00|x)1[Bb]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+|)m
# hit-count: 4 file-count: 1
# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
# grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
## You could manually change `(?i)X...` to use `[Xx]...`
## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
# Lorem
(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*
# hit-count: 3 file-count: 3
# mailto urls
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
# hit-count: 2 file-count: 1
# 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
(?<!')\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)'(?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
# hit-count: 1 file-count: 1
# Punycode
\bxn--[-0-9a-z]+
# hit-count: 1 file-count: 1
# latex (check-spelling >= 0.0.22)
\\\w{2,}\{
# hit-count: 1 file-count: 1
# 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
# 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|[Ss]ign) in to\b
# to opt in
\bto opt in\b
# Questionably acceptable forms of `in to` # Questionably acceptable forms of `in to`
# Personally, I prefer `log into`, but people object # Personally, I prefer `log into`, but people object
@ -183,6 +210,10 @@ mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
# to opt in # to opt in
\bto opt in\b \bto opt in\b
# pass(ed|ing) in
\bpass(?:ed|ing) in\b
# acceptable duplicates # acceptable duplicates
# ls directory listings # ls directory listings
[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+ [-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+

View File

@ -1,10 +1,19 @@
^attache$ ^attache$
^attacher$ ^attacher$
^attachers$ ^attachers$
^bellow$ ^bellow?$
benefitting benefitting
occurences? occurences?
^dependan.* ^dependan.*
^develope$
^developement$
^developpe
^Devers?$
^devex
^devide
^Devinn?[ae]
^devisal
^devisor
^diables?$ ^diables?$
^oer$ ^oer$
Sorce Sorce
@ -12,4 +21,5 @@ Sorce
^Teh$ ^Teh$
^untill$ ^untill$
^untilling$ ^untilling$
^venders?$
^wether.* ^wether.*

View File

@ -93,7 +93,7 @@ jobs:
steps: steps:
- name: check-spelling - name: check-spelling
id: spelling id: spelling
uses: check-spelling/check-spelling@v0.0.24 uses: check-spelling/check-spelling@v0.0.25
with: with:
suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
checkout: true checkout: true
@ -114,34 +114,33 @@ jobs:
cspell:software-terms/softwareTerms.txt cspell:software-terms/softwareTerms.txt
cspell:cpp/stdlib-cpp.txt cspell:cpp/stdlib-cpp.txt
cspell:cpp/stdlib-c.txt cspell:cpp/stdlib-c.txt
cspell:lorem-ipsum/dictionary.txt cspell:python/python/python-lib.txt
cspell:php/php.txt cspell:php/php.txt
cspell:node/node.txt
cspell:dart/dart.txt
cspell:filetypes/filetypes.txt cspell:filetypes/filetypes.txt
cspell:java/java.txt cspell:java/java.txt
cspell:node/node.txt cspell:css/css.txt
cspell:golang/go.txt cspell:dotnet/dotnet.txt
cspell:java/java-terms.txt
cspell:mnemonics/mnemonics.txt
cspell:npm/npm.txt cspell:npm/npm.txt
cspell:fullstack/fullstack.txt cspell:fullstack/fullstack.txt
cspell:python/python/python-lib.txt cspell:java/java-terms.txt
cspell:dotnet/dotnet.txt cspell:r/r.txt
cspell:dart/dart.txt cspell:golang/go.txt
cspell:aws/aws.txt
cspell:python/common/extra.txt
cspell:css/css.txt
cspell:cpp/stdlib-cmath.txt cspell:cpp/stdlib-cmath.txt
cspell:typescript/typescript.txt cspell:typescript/typescript.txt
cspell:html/html.txt
cspell:cpp/compiler-msvc.txt cspell:cpp/compiler-msvc.txt
cspell:django/django.txt cspell:django/django.txt
cspell:html/html.txt cspell:aws/aws.txt
cspell:cpp/lang-keywords.txt cspell:python/common/extra.txt
cspell:cpp/ecosystem.txt cspell:cpp/ecosystem.txt
cspell:r/r.txt cspell:cpp/lang-keywords.txt
cspell:cpp/compiler-clang-attributes.txt
cspell:powershell/powershell.txt
cspell:csharp/csharp.txt cspell:csharp/csharp.txt
cspell:cpp/compiler-clang-attributes.txt
cspell:python/python/python.txt cspell:python/python/python.txt
cspell:mnemonics/mnemonics.txt
cspell:powershell/powershell.txt
comment-push: comment-push:
name: Report (Push) name: Report (Push)
@ -154,7 +153,7 @@ jobs:
if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push' if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
steps: steps:
- name: comment - name: comment
uses: check-spelling/check-spelling@v0.0.24 uses: check-spelling/check-spelling@v0.0.25
with: with:
checkout: true checkout: true
spell_check_this: microsoft/terminal@main spell_check_this: microsoft/terminal@main
@ -172,7 +171,7 @@ jobs:
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request') if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
steps: steps:
- name: comment - name: comment
uses: check-spelling/check-spelling@v0.0.24 uses: check-spelling/check-spelling@v0.0.25
with: with:
checkout: true checkout: true
spell_check_this: microsoft/terminal@main spell_check_this: microsoft/terminal@main
@ -198,7 +197,7 @@ jobs:
cancel-in-progress: false cancel-in-progress: false
steps: steps:
- name: apply spelling updates - name: apply spelling updates
uses: check-spelling/check-spelling@v0.0.24 uses: check-spelling/check-spelling@v0.0.25
with: with:
experimental_apply_changes_via_bot: ${{ github.repository_owner != 'microsoft' && 1 }} experimental_apply_changes_via_bot: ${{ github.repository_owner != 'microsoft' && 1 }}
checkout: true checkout: true

View File

@ -1,4 +1,4 @@
name: Publish to Winget name: Publish to WinGet
on: on:
release: release:

View File

@ -504,7 +504,7 @@ namespace HelixTestHelpers
assembly.SetAttributeValue("run-date", DateTime.Now.ToString("yyyy-MM-dd")); assembly.SetAttributeValue("run-date", DateTime.Now.ToString("yyyy-MM-dd"));
// This doesn't need to be completely accurate since it's not exposed anywhere. // This doesn't need to be completely accurate since it's not exposed anywhere.
// If we need accurate an start time we can probably calculate it from the te.wtl file, but for // If we need an accurate start time we can probably calculate it from the te.wtl file, but for
// now this is fine. // now this is fine.
assembly.SetAttributeValue("run-time", (DateTime.Now - testPass.TestPassExecutionTime).ToString("hh:mm:ss")); assembly.SetAttributeValue("run-time", (DateTime.Now - testPass.TestPassExecutionTime).ToString("hh:mm:ss"));

View File

@ -30,7 +30,7 @@ jobs:
steps: steps:
- checkout: self - checkout: self
clean: true clean: true
# It is important that this be 0, otherwise git will not fetch the branch ref names that the PGO rules require. # It is important that this be 0; otherwise, git will not fetch the branch ref names that the PGO rules require.
fetchDepth: 0 fetchDepth: 0
submodules: false submodules: false
persistCredentials: false persistCredentials: false

View File

@ -37,6 +37,6 @@ Presumably now you have a failure. Or a success. You can attempt to spelunk the
Now that you've relied on `testd` to get everything deployed and orchestrated and run once on the device, you can use `execd` to run things again or to run a smaller subset of things on the remote device through `T-Shell`. Now that you've relied on `testd` to get everything deployed and orchestrated and run once on the device, you can use `execd` to run things again or to run a smaller subset of things on the remote device through `T-Shell`.
By default, in the `Universal Test` world, everything will be deployed onto the remote machine at `C:\data\test\bin`. In T-Shell, use `cdd C:\data\test\bin` to change to that directory and then `execd te.exe Microsoft.Console.Host.FeatureTests.dll /name:*TestReadFileEcho*` to run just one specific test. Of course you should substitute the file name and test name parameters as makes sense. And of course you can find out more about `cdd` and `execd` on the `T-shell` page of `OSGWiki`. By default, in the `Universal Test` world, everything will be deployed onto the remote machine at `C:\data\test\bin`. In T-Shell, use `cdd C:\data\test\bin` to change to that directory and then `execd te.exe Microsoft.Console.Host.FeatureTests.dll /name:*TestReadFileEcho*` to run just one specific test. Of course, you should substitute the file name and test name parameters as makes sense. And of course you can find out more about `cdd` and `execd` on the `T-shell` page of `OSGWiki`.
Fortunately, running things through `T-shell` in this fashion is exactly the same way that the testlab orchestrates the tests. If you still don't get good data this way, you can use the `Connect via Console` mechanism way above to try to run things under `WinDBG` or the `Visual Studio Remote Debugger` manually on the machine to get them to repro or under the debugger more completely. Fortunately, running things through `T-shell` in this fashion is exactly the same way that the testlab orchestrates the tests. If you still don't get good data this way, you can use the `Connect via Console` mechanism way above to try to run things under `WinDBG` or the `Visual Studio Remote Debugger` manually on the machine to get them to repro or under the debugger more completely.

View File

@ -51,4 +51,4 @@ DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE
- If you hit a `Class not Registered` error, this might be because a class isn't getting registered in the app manifest. You can go check `src/cascadia/CascadiaPackage/bin/x64/Debug/AppX/AppXManifest.xml` to see if there exist entries to the classes of your newly created DLL. If the references aren't there, double check that you've added `<ProjectReference>` blocks to both `WindowsTerminal.vcxproj` and `TerminalApp.vcxproj`. - If you hit a `Class not Registered` error, this might be because a class isn't getting registered in the app manifest. You can go check `src/cascadia/CascadiaPackage/bin/x64/Debug/AppX/AppXManifest.xml` to see if there exist entries to the classes of your newly created DLL. If the references aren't there, double check that you've added `<ProjectReference>` blocks to both `WindowsTerminal.vcxproj` and `TerminalApp.vcxproj`.
- If you hit an extremely vague error along the lines of `Error in the DLL`, and right before that line you notice that your new DLL is loaded and unloaded right after each other, double check that your new DLL's definitions show up in the `AppXManifest.xml` file. If your new DLL is included as a reference to a project that rolls up to `CascadiaPackage`, double check that you've created a `.def` file for the project. Otherwise if your new project _does not_ roll up to a package that populates the `AppXManifest` references for you, you'll have to add those references yourself. - If you hit an extremely vague error along the lines of `Error in the DLL`, and right before that line you notice that your new DLL is loaded and unloaded right after each other, double check that your new DLL's definitions show up in the `AppXManifest.xml` file. If your new DLL is included as a reference to a project that rolls up to `CascadiaPackage`, double check that you've created a `.def` file for the project. Otherwise, if your new project _does not_ roll up to a package that populates the `AppXManifest` references for you, you'll have to add those references yourself.

View File

@ -9,7 +9,7 @@ issue id: 1564
## Abstract ## Abstract
Windows Terminal's settings model adheres to a cascading settings architecture. This allows a settings object to be defined incrementally across multiple layers of declarations. The value for any global setting like `copyOnSelect`, for example, is set to your settings.json value if one is defined, otherwise defaults.json, and otherwise a system set value. Profiles in particular are more complicated in that they must also take into account the values in `profiles.defaults` and dynamic profile generators. Windows Terminal's settings model adheres to a cascading settings architecture. This allows a settings object to be defined incrementally across multiple layers of declarations. The value for any global setting like `copyOnSelect`, for example, is set to your settings.json value if one is defined; otherwise, defaults.json, and otherwise a system set value. Profiles in particular are more complicated in that they must also take into account the values in `profiles.defaults` and dynamic profile generators.
This spec explores how to represent this feature in the Settings UI. This spec explores how to represent this feature in the Settings UI.

View File

@ -529,7 +529,7 @@ their own workflows.
* `--local`: Save to the `.wt.json` in the CWD, if there is one (or create * `--local`: Save to the `.wt.json` in the CWD, if there is one (or create
one) one)
* `--parent`: Save to the `.wt.json` in the first ancestor of the CWD, if * `--parent`: Save to the `.wt.json` in the first ancestor of the CWD, if
there is one. Otherwise create one here. there is one. Otherwise, create one here.
* `--settings`: Manually save to the settings file? * `--settings`: Manually save to the settings file?
* `--profile`: save to this profile???? Not sure if this is actually possible. * `--profile`: save to this profile???? Not sure if this is actually possible.
Maybe with the `WT_SESSION_ID` env var to figure out which profile is in use Maybe with the `WT_SESSION_ID` env var to figure out which profile is in use

View File

@ -17,7 +17,7 @@ I work remotely as a developer, so I have to spend a lot of hours in front of my
Normally I like dark modes in all the programs and apps I use, but when there's too much sunlight, it becomes annoying, and sometimes even painful, to work in dark mode. So, I have all the programs and apps I use (at least, those that can) set to switch their color themes to what the system has. Normally I like dark modes in all the programs and apps I use, but when there's too much sunlight, it becomes annoying, and sometimes even painful, to work in dark mode. So, I have all the programs and apps I use (at least, those that can) set to switch their color themes to what the system has.
The company I work for sent me a Macbook Pro, and my personal phone is an Android, both with automatic dark mode at sunset and light mode at sunrise, and in those devices it's been working relatively well. In Windows, as it is known, there's no such feature, so I manually change between dark and light mode when it's needed, and most of the programs and apps I use go along with this change. Windows Terminal, is not one of them. The company I work for sent me a MacBook Pro, and my personal phone is an Android, both with automatic dark mode at sunset and light mode at sunrise, and in those devices it's been working relatively well. In Windows, as it is known, there's no such feature, so I manually change between dark and light mode when it's needed, and most of the programs and apps I use go along with this change. Windows Terminal, is not one of them.
The theme changes just as expected, but in an app like this, this change only affects the top of the window, leaving almost all of the screen at the mercy of what the color scheme is, and it doesn't depend on the theme, which defeats any attempt to make a good use of the `system` theme feature. The theme changes just as expected, but in an app like this, this change only affects the top of the window, leaving almost all of the screen at the mercy of what the color scheme is, and it doesn't depend on the theme, which defeats any attempt to make a good use of the `system` theme feature.

View File

@ -94,7 +94,7 @@ configurations:
- `"useExisting"`: always glom to the most recent window, regardless of desktop. - `"useExisting"`: always glom to the most recent window, regardless of desktop.
- `"useExistingOnSameDesktop"`: Only glom if there's an existing window on this - `"useExistingOnSameDesktop"`: Only glom if there's an existing window on this
virtual desktop, otherwise create a new window. This will be the new default virtual desktop; otherwise, create a new window. This will be the new default
value. value.
- `"useNew"`: Never glom, always create a new window. This is technically the - `"useNew"`: Never glom, always create a new window. This is technically the
current behavior of the Terminal. current behavior of the Terminal.

View File

@ -362,7 +362,7 @@ Essentially, the probabilistic elective monarchy will work in the following way:
register. register.
3. After registering as a server for `Monarch`s, attempt to create a `Monarch` 3. After registering as a server for `Monarch`s, attempt to create a `Monarch`
using `winrt::create_instance`. using `winrt::create_instance`.
4. Using that `Monarch`, ask it for it's PID. 4. Using that `Monarch`, ask it for its PID.
- If that PID is the same as the PID of the current process, then the window - If that PID is the same as the PID of the current process, then the window
process knows that it is the monarch. process knows that it is the monarch.
- If that PID is some other process, then we know that we're not currently - If that PID is some other process, then we know that we're not currently
@ -1102,7 +1102,7 @@ launch to use seems like an obvious next step. See also [#961].
- `true` or `"always"`: always glom to the most recent window, regardless of - `true` or `"always"`: always glom to the most recent window, regardless of
desktop desktop
- `"sameDesktop"`: Only glom if there's an existing window on this virtual - `"sameDesktop"`: Only glom if there's an existing window on this virtual
desktop, otherwise create a new window desktop; otherwise, create a new window
- `false` or `"never"`: Never glom, always create a new window. - `false` or `"never"`: Never glom, always create a new window.

View File

@ -13,7 +13,7 @@ This spec is for feature request #605 "Search". It goes over the details of a ne
## Inspiration ## Inspiration
One of the superior features of iTerm2 is it's content search. The search comes in two variants: search from active tab and search from all tabs. In almost any editor, there is an roughly equivalent string search. We also want to realize search experience in Terminal. There will be two variants, search within one tab or from multiple tabs. We will start with one-tab search implementation. One of the superior features of iTerm2 is it's content search. The search comes in two variants: search from active tab and search from all tabs. In almost any editor, there is a roughly equivalent string search. We also want to realize search experience in Terminal. There will be two variants, search within one tab or from multiple tabs. We will start with one-tab search implementation.
## Solution Design ## Solution Design

View File

@ -331,7 +331,7 @@ Are there other allocation policies we need to consider?
- requires coordination between tooling teams both within and without Microsoft (regarding any tool that operates on - requires coordination between tooling teams both within and without Microsoft (regarding any tool that operates on
or produces PE files) or produces PE files)
- An exported symbol that shells can check for to determine whether to wait for the attached process to exit - An exported symbol that shells can check for in order to determine whether to wait for the attached process to exit
- relies on shells to update and check for this - relies on shells to update and check for this
- cracking an executable to look for symbols is probably the last thing shells want to do - cracking an executable to look for symbols is probably the last thing shells want to do
- we could provide an API to determine whether to wait or return? - we could provide an API to determine whether to wait or return?

View File

@ -360,7 +360,7 @@ GUID GetNamespaceGuid(IDynamicProfileGenerator& generator);
GUID GetGuidForName(IDynamicProfileGenerator& generator, std::wstring& name); GUID GetGuidForName(IDynamicProfileGenerator& generator, std::wstring& name);
``` ```
The generator does not _need_ to use `GetGuidForName` to generate guids for it's The generator does not _need_ to use `GetGuidForName` to generate guids for its
profiles. If the generator can determine another way to generate stable GUIDs profiles. If the generator can determine another way to generate stable GUIDs
for its profiles, it's free to use whatever method it wants. `GetGuidForName` is for its profiles, it's free to use whatever method it wants. `GetGuidForName` is
provided as a convenience. provided as a convenience.

View File

@ -101,8 +101,8 @@ The scopes would work as follows:
this tab. this tab.
- **TODO!: FOR DISCUSSION**: Should this disable the tab's - **TODO!: FOR DISCUSSION**: Should this disable the tab's
"broadcastToAllPanes" setting? Or should it leave that alone? "broadcastToAllPanes" setting? Or should it leave that alone?
* `"disableBroadcastInput"`: Set the global setting to false, the tab's setting * `"disableBroadcastInput"`: For this tab, set the global setting to false,
to false, and clear the set of panes being broadcasted to for this tab. the tab's setting to false, and clear the set of panes being broadcasted.
- **TODO!** This could also just be `"action": "toggleBroadcastInput", - **TODO!** This could also just be `"action": "toggleBroadcastInput",
"scope": "none"` "scope": "none"`
@ -161,7 +161,7 @@ As far as actions, we're looking at something like:
from the broadcast set. Otherwise, add all the panes from this tab to the from the broadcast set. Otherwise, add all the panes from this tab to the
broadcast set. broadcast set.
* **D** toggle sending input to the current pane * **D** toggle sending input to the current pane
* If this pane is in the broadcast set, remove it. Otherwise add it. * If this pane is in the broadcast set, remove it. Otherwise, add it.
This seems to break down into the following actions: This seems to break down into the following actions:
```json ```json

View File

@ -13,7 +13,7 @@ A significant amount of code is shared between Conhost and Windows Terminal to c
### Internal Partners ### Internal Partners
There are many first-party command-line applications on Windows. The following are a few examples of those that are regularly updated: There are many first-party command-line applications on Windows. The following are a few examples of those that are regularly updated:
- [**GitHub CLI**](https://cli.github.com/): a tool that can be used to query and interact with GitHub repos (open source) - [**GitHub CLI**](https://cli.github.com/): a tool that can be used to query and interact with GitHub repos (open source)
- [**Winget**](https://github.com/microsoft/winget-cli): a tool to install applications and other packages - [**WinGet**](https://github.com/microsoft/winget-cli): a tool to install applications and other packages
- [**PSReadLine**](https://github.com/PowerShell/PSReadLine): a PowerShell module that enhances the input line experience - [**PSReadLine**](https://github.com/PowerShell/PSReadLine): a PowerShell module that enhances the input line experience
- [**Windows Subsystem for Linux (WSL)**](https://learn.microsoft.com/en-us/windows/wsl/): a tool to manage and run GNU/Linux environments without a traditional virtual machine - [**Windows Subsystem for Linux (WSL)**](https://learn.microsoft.com/en-us/windows/wsl/): a tool to manage and run GNU/Linux environments without a traditional virtual machine
- [**PowerShell**](https://github.com/PowerShell/PowerShell): a cross-platform command-line shell (open source) - [**PowerShell**](https://github.com/PowerShell/PowerShell): a cross-platform command-line shell (open source)

View File

@ -32,7 +32,7 @@
BasedOn="{StaticResource TitleBarButtonStyle}" BasedOn="{StaticResource TitleBarButtonStyle}"
TargetType="{x:Type Button}"> TargetType="{x:Type Button}">
<Setter Property="Content" Value="&#xE10A;" /> <Setter Property="Content" Value="&#xE10A;" />
<!-- Remove the default Button template's Triggers, otherwise they'll override our trigger below. --> <!-- Remove the default Button template's Triggers; otherwise, they'll override our trigger below. -->
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Button}"> <ControlTemplate TargetType="{x:Type Button}">

View File

@ -2969,7 +2969,7 @@ void TextBuffer::_SerializeRow(const ROW& row, const til::CoordType startX, cons
// parameter and we'll calculate the position of the _end_ of those rows in // parameter and we'll calculate the position of the _end_ of those rows in
// the new buffer. The rows's new value is placed back into this parameter. // the new buffer. The rows's new value is placed back into this parameter.
// Return Value: // Return Value:
// - S_OK if we successfully copied the contents to the new buffer, otherwise an appropriate HRESULT. // - S_OK if we successfully copied the contents to the new buffer; otherwise, an appropriate HRESULT.
void TextBuffer::Reflow(TextBuffer& oldBuffer, TextBuffer& newBuffer, const Viewport* lastCharacterViewport, PositionInformation* positionInfo) void TextBuffer::Reflow(TextBuffer& oldBuffer, TextBuffer& newBuffer, const Viewport* lastCharacterViewport, PositionInformation* positionInfo)
{ {
const auto& oldCursor = oldBuffer.GetCursor(); const auto& oldCursor = oldBuffer.GetCursor();

View File

@ -573,7 +573,7 @@ namespace
TestCase{ TestCase{
// This triggers the cursor being walked forward w/ newlines to maintain // This triggers the cursor being walked forward w/ newlines to maintain
// distance from the last char in the buffer // distance from the last char in the buffer
L"SBCS, cursor at end of buffer, otherwise same as previous test", L"SBCS, cursor at end of buffer; otherwise, same as previous test",
{ {
TestBuffer{ TestBuffer{
{ 6, 5 }, { 6, 5 },

View File

@ -21,7 +21,7 @@ static constexpr std::wstring_view VerbName{ L"WindowsTerminalOpenHere" };
// Arguments: // Arguments:
// - psiItemArray: a IShellItemArray which contains the item that's selected. // - psiItemArray: a IShellItemArray which contains the item that's selected.
// Return Value: // Return Value:
// - S_OK if we successfully attempted to launch the Terminal, otherwise a // - S_OK if we successfully attempted to launch the Terminal; otherwise, a
// failure from an earlier HRESULT. // failure from an earlier HRESULT.
HRESULT OpenTerminalHere::Invoke(IShellItemArray* psiItemArray, HRESULT OpenTerminalHere::Invoke(IShellItemArray* psiItemArray,
IBindCtx* /*pBindContext*/) IBindCtx* /*pBindContext*/)

View File

@ -517,7 +517,7 @@ namespace winrt::TerminalApp::implementation
else else
{ {
// Mark as handled only when the move succeeded (e.g. when there // Mark as handled only when the move succeeded (e.g. when there
// is a pane to move to), otherwise mark as unhandled so the // is a pane to move to); otherwise, mark as unhandled so the
// keychord can propagate to the terminal (GH#6129) // keychord can propagate to the terminal (GH#6129)
const auto moveSucceeded = _MoveFocus(realArgs.FocusDirection()); const auto moveSucceeded = _MoveFocus(realArgs.FocusDirection());
args.Handled(moveSucceeded); args.Handled(moveSucceeded);

View File

@ -194,7 +194,7 @@ namespace winrt::TerminalApp::implementation
// Method Description: // Method Description:
// - Attempt to load the settings. If we fail for any reason, returns an error. // - Attempt to load the settings. If we fail for any reason, returns an error.
// Return Value: // Return Value:
// - S_OK if we successfully parsed the settings, otherwise an appropriate HRESULT. // - S_OK if we successfully parsed the settings; otherwise, an appropriate HRESULT.
[[nodiscard]] HRESULT AppLogic::_TryLoadSettings() noexcept [[nodiscard]] HRESULT AppLogic::_TryLoadSettings() noexcept
{ {
auto hr = E_FAIL; auto hr = E_FAIL;

View File

@ -8,7 +8,7 @@ using namespace winrt::TerminalApp;
// - color: this color is going to be examined whether it // - color: this color is going to be examined whether it
// is light or not // is light or not
// Return Value: // Return Value:
// - true of light, false if dark // - true if light, false if dark
bool ColorHelper::IsBrightColor(const winrt::Windows::UI::Color& color) bool ColorHelper::IsBrightColor(const winrt::Windows::UI::Color& color)
{ {
// https://www.w3.org/TR/AERT#color-contrast // https://www.w3.org/TR/AERT#color-contrast

View File

@ -338,7 +338,7 @@ namespace winrt::TerminalApp::implementation
} }
else if (key == VirtualKey::Escape) else if (key == VirtualKey::Escape)
{ {
// Dismiss the palette if the text is empty, otherwise clear the // Dismiss the palette if the text is empty; otherwise, clear the
// search string. // search string.
if (_searchBox().Text().empty()) if (_searchBox().Text().empty())
{ {

View File

@ -1052,7 +1052,7 @@ std::shared_ptr<Pane> Pane::GetActivePane()
// Arguments: // Arguments:
// - <none> // - <none>
// Return Value: // Return Value:
// - nullptr if this Pane is an unfocused parent, otherwise the TermControl of this Pane. // - nullptr if this Pane is an unfocused parent; otherwise, the TermControl of this Pane.
TermControl Pane::GetLastFocusedTerminalControl() TermControl Pane::GetLastFocusedTerminalControl()
{ {
if (!_IsLeaf()) if (!_IsLeaf())
@ -1105,7 +1105,7 @@ IPaneContent Pane::GetLastFocusedContent()
// Arguments: // Arguments:
// - <none> // - <none>
// Return Value: // Return Value:
// - nullptr if this Pane is a parent, otherwise the TermControl of this Pane. // - nullptr if this Pane is a parent; otherwise, the TermControl of this Pane.
TermControl Pane::GetTerminalControl() const TermControl Pane::GetTerminalControl() const
{ {
if (const auto& terminalPane{ _getTerminalContent() }) if (const auto& terminalPane{ _getTerminalContent() })
@ -1998,7 +1998,7 @@ void Pane::_SetupEntranceAnimation()
if (splitWidth) if (splitWidth)
{ {
// If we're animating the first child, then stick to the top/left of // If we're animating the first child, then stick to the top/left of
// the parent pane, otherwise use the bottom/right. This is always // the parent pane; otherwise, use the bottom/right. This is always
// the "outside" of the parent pane. // the "outside" of the parent pane.
childGrid.HorizontalAlignment(isFirstChild ? HorizontalAlignment::Left : HorizontalAlignment::Right); childGrid.HorizontalAlignment(isFirstChild ? HorizontalAlignment::Left : HorizontalAlignment::Right);
if (control) if (control)
@ -2023,7 +2023,7 @@ void Pane::_SetupEntranceAnimation()
else else
{ {
// If we're animating the first child, then stick to the top/left of // If we're animating the first child, then stick to the top/left of
// the parent pane, otherwise use the bottom/right. This is always // the parent pane; otherwise, use the bottom/right. This is always
// the "outside" of the parent pane. // the "outside" of the parent pane.
childGrid.VerticalAlignment(isFirstChild ? VerticalAlignment::Top : VerticalAlignment::Bottom); childGrid.VerticalAlignment(isFirstChild ? VerticalAlignment::Top : VerticalAlignment::Bottom);
if (control) if (control)
@ -2538,7 +2538,7 @@ std::pair<float, float> Pane::_CalcChildrenSizes(const float fullSize) const
// user doesn't get any pane shrank when they actually expand the window or parent pane. // user doesn't get any pane shrank when they actually expand the window or parent pane.
// That is also required by the layout algorithm. // That is also required by the layout algorithm.
// Arguments: // Arguments:
// - widthOrHeight: if true, operates on width, otherwise on height. // - widthOrHeight: if true, operates on width; otherwise, on height.
// - fullSize: the amount of space in pixels that should be filled by our children and // - fullSize: the amount of space in pixels that should be filled by our children and
// their separator. Can be arbitrarily low. // their separator. Can be arbitrarily low.
// Return Value: // Return Value:
@ -2600,7 +2600,7 @@ Pane::SnapChildrenSizeResult Pane::_CalcSnappedChildrenSizes(const bool widthOrH
// align with their character grids as close as possible. Snaps to closes match // align with their character grids as close as possible. Snaps to closes match
// (either upward or downward). Also makes sure to fit in minimal sizes of the panes. // (either upward or downward). Also makes sure to fit in minimal sizes of the panes.
// Arguments: // Arguments:
// - widthOrHeight: if true operates on width, otherwise on height // - widthOrHeight: if true operates on width; otherwise, on height
// - dimension: a dimension (width or height) to snap // - dimension: a dimension (width or height) to snap
// Return Value: // Return Value:
// - A value corresponding to the next closest snap size for this Pane, either upward or downward // - A value corresponding to the next closest snap size for this Pane, either upward or downward
@ -2615,7 +2615,7 @@ float Pane::CalcSnappedDimension(const bool widthOrHeight, const float dimension
// align with their character grids as close as possible. Also makes sure to // align with their character grids as close as possible. Also makes sure to
// fit in minimal sizes of the panes. // fit in minimal sizes of the panes.
// Arguments: // Arguments:
// - widthOrHeight: if true operates on width, otherwise on height // - widthOrHeight: if true operates on width; otherwise, on height
// - dimension: a dimension (width or height) to be snapped // - dimension: a dimension (width or height) to be snapped
// Return Value: // Return Value:
// - pair of floats, where first value is the size snapped downward (not greater than // - pair of floats, where first value is the size snapped downward (not greater than
@ -2702,11 +2702,11 @@ Pane::SnapSizeResult Pane::_CalcSnappedDimension(const bool widthOrHeight, const
// Method Description: // Method Description:
// - Increases size of given LayoutSizeNode to match next possible 'snap'. In case of leaf // - Increases size of given LayoutSizeNode to match next possible 'snap'. In case of leaf
// pane this means the next cell of the terminal. Otherwise it means that one of its children // pane this means the next cell of the terminal. Otherwise, it means that one of its children
// advances (recursively). It expects the given node and its descendants to have either // advances (recursively). It expects the given node and its descendants to have either
// already snapped or minimum size. // already snapped or minimum size.
// Arguments: // Arguments:
// - widthOrHeight: if true operates on width, otherwise on height. // - widthOrHeight: if true operates on width; otherwise, on height.
// - sizeNode: a layout size node that corresponds to this pane. // - sizeNode: a layout size node that corresponds to this pane.
// Return Value: // Return Value:
// - <none> // - <none>
@ -2877,7 +2877,7 @@ Size Pane::_GetMinSize() const
// - Builds a tree of LayoutSizeNode that matches the tree of panes. Each node // - Builds a tree of LayoutSizeNode that matches the tree of panes. Each node
// has minimum size that the corresponding pane can have. // has minimum size that the corresponding pane can have.
// Arguments: // Arguments:
// - widthOrHeight: if true operates on width, otherwise on height // - widthOrHeight: if true operates on width; otherwise, on height
// Return Value: // Return Value:
// - Root node of built tree that matches this pane. // - Root node of built tree that matches this pane.
Pane::LayoutSizeNode Pane::_CreateMinSizeTree(const bool widthOrHeight) const Pane::LayoutSizeNode Pane::_CreateMinSizeTree(const bool widthOrHeight) const
@ -2897,7 +2897,7 @@ Pane::LayoutSizeNode Pane::_CreateMinSizeTree(const bool widthOrHeight) const
// - Adjusts split position so that no child pane is smaller then its // - Adjusts split position so that no child pane is smaller then its
// minimum size // minimum size
// Arguments: // Arguments:
// - widthOrHeight: if true, operates on width, otherwise on height. // - widthOrHeight: if true, operates on width; otherwise, on height.
// - requestedValue: split position value to be clamped // - requestedValue: split position value to be clamped
// - totalSize: size (width or height) of the parent pane // - totalSize: size (width or height) of the parent pane
// Return Value: // Return Value:

View File

@ -27,7 +27,7 @@ namespace winrt::TerminalApp::implementation
// Arguments: // Arguments:
// - actionAndArgs: the ShortcutAction and associated args to raise an event for. // - actionAndArgs: the ShortcutAction and associated args to raise an event for.
// Return Value: // Return Value:
// - true if we handled the event was handled, else false. // - true if the event was handled, else false.
bool ShortcutActionDispatch::DoAction(const winrt::Windows::Foundation::IInspectable& sender, bool ShortcutActionDispatch::DoAction(const winrt::Windows::Foundation::IInspectable& sender,
const ActionAndArgs& actionAndArgs) const ActionAndArgs& actionAndArgs)
{ {

View File

@ -421,7 +421,7 @@ namespace winrt::TerminalApp::implementation
} }
else if (key == VirtualKey::Escape) else if (key == VirtualKey::Escape)
{ {
// Dismiss the palette if the text is empty, otherwise clear the // Dismiss the palette if the text is empty; otherwise, clear the
// search string. // search string.
if (_searchBox().Text().empty()) if (_searchBox().Text().empty())
{ {

View File

@ -1289,7 +1289,7 @@ namespace winrt::TerminalApp::implementation
// //
// We need to do this here, to ensure we tell the ConptyConnection // We need to do this here, to ensure we tell the ConptyConnection
// the correct starting path. If we're being invoked from another // the correct starting path. If we're being invoked from another
// terminal instance (e.g. wt -w 0 -d .), then we have switched our // terminal instance (e.g. `wt -w 0 -d .`), then we have switched our
// CWD to the provided path. We should treat the StartingDirectory // CWD to the provided path. We should treat the StartingDirectory
// as relative to the current CWD. // as relative to the current CWD.
// //
@ -3970,7 +3970,7 @@ namespace winrt::TerminalApp::implementation
// Arguments: // Arguments:
// - args: the ExecuteCommandlineArgs to synthesize a list of startup actions for. // - args: the ExecuteCommandlineArgs to synthesize a list of startup actions for.
// Return Value: // Return Value:
// - an empty list if we failed to parse, otherwise a list of actions to execute. // - an empty list if we failed to parse; otherwise, a list of actions to execute.
std::vector<ActionAndArgs> TerminalPage::ConvertExecuteCommandlineToActions(const ExecuteCommandlineArgs& args) std::vector<ActionAndArgs> TerminalPage::ConvertExecuteCommandlineToActions(const ExecuteCommandlineArgs& args)
{ {
::TerminalApp::AppCommandlineArgs appArgs; ::TerminalApp::AppCommandlineArgs appArgs;

View File

@ -327,7 +327,7 @@ namespace winrt::TerminalApp::implementation
// - Show a ContentDialog with buttons to take further action. Uses the // - Show a ContentDialog with buttons to take further action. Uses the
// FrameworkElements provided as the title and content of this dialog, and // FrameworkElements provided as the title and content of this dialog, and
// displays buttons (or a single button). Two buttons (primary and secondary) // displays buttons (or a single button). Two buttons (primary and secondary)
// will be displayed if this is an warning dialog for closing the terminal, // will be displayed if this is a warning dialog for closing the terminal,
// this allows the users to abandon the closing action. Otherwise, a single // this allows the users to abandon the closing action. Otherwise, a single
// close button will be displayed. // close button will be displayed.
// - Only one dialog can be visible at a time. If another dialog is visible // - Only one dialog can be visible at a time. If another dialog is visible

View File

@ -619,7 +619,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// - vkey: The vkey of the key pressed. // - vkey: The vkey of the key pressed.
// - scanCode: The scan code of the key pressed. // - scanCode: The scan code of the key pressed.
// - modifiers: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states. // - modifiers: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states.
// - keyDown: If true, the key was pressed, otherwise the key was released. // - keyDown: If true, the key was pressed; otherwise, the key was released.
bool ControlCore::TrySendKeyEvent(const WORD vkey, bool ControlCore::TrySendKeyEvent(const WORD vkey,
const WORD scanCode, const WORD scanCode,
const ControlKeyStates modifiers, const ControlKeyStates modifiers,

View File

@ -104,7 +104,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// //
// ControlCore::AttachUiaEngine receives a IRenderEngine as a raw pointer, which we own. // ControlCore::AttachUiaEngine receives a IRenderEngine as a raw pointer, which we own.
// We must ensure that we first destroy the ControlCore before the UiaEngine instance // We must ensure that we first destroy the ControlCore before the UiaEngine instance
// in order to safely resolve this unsafe pointer dependency. Otherwise a deallocated // in order to safely resolve this unsafe pointer dependency. Otherwise, a deallocated
// IRenderEngine is accessed when ControlCore calls Renderer::TriggerTeardown. // IRenderEngine is accessed when ControlCore calls Renderer::TriggerTeardown.
// (C++ class members are destroyed in reverse order.) // (C++ class members are destroyed in reverse order.)
std::unique_ptr<::Microsoft::Console::Render::UiaEngine> _uiaEngine; std::unique_ptr<::Microsoft::Console::Render::UiaEngine> _uiaEngine;

View File

@ -45,7 +45,7 @@ static std::wstring Sanitize(std::wstring_view text)
// Arguments: // Arguments:
// - text: the string we're validating // - text: the string we're validating
// Return Value: // Return Value:
// - true, if the text is readable. false, otherwise. // - true, if the text is readable; otherwise, false.
static constexpr bool IsReadable(std::wstring_view text) static constexpr bool IsReadable(std::wstring_view text)
{ {
for (const auto c : text) for (const auto c : text)

View File

@ -1033,7 +1033,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// - Set up each layer's brush used to display the control's background. // - Set up each layer's brush used to display the control's background.
// - Respects the settings for acrylic, background image and opacity from // - Respects the settings for acrylic, background image and opacity from
// _settings. // _settings.
// * If acrylic is not enabled, setup a solid color background, otherwise // * If acrylic is not enabled, set up a solid color background; otherwise,
// use bgcolor as acrylic's tint // use bgcolor as acrylic's tint
// - Avoids image flickering and acrylic brush redraw if settings are changed // - Avoids image flickering and acrylic brush redraw if settings are changed
// but the appropriate brush is still in place. // but the appropriate brush is still in place.
@ -1898,7 +1898,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// - vkey: The vkey of the key pressed. // - vkey: The vkey of the key pressed.
// - scanCode: The scan code of the key pressed. // - scanCode: The scan code of the key pressed.
// - states: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states. // - states: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states.
// - keyDown: If true, the key was pressed, otherwise the key was released. // - keyDown: If true, the key was pressed; otherwise, the key was released.
bool TermControl::_TrySendKeyEvent(const WORD vkey, bool TermControl::_TrySendKeyEvent(const WORD vkey,
const WORD scanCode, const WORD scanCode,
const ControlKeyStates modifiers, const ControlKeyStates modifiers,
@ -2982,7 +2982,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// - Adjusts given dimension (width or height) so that it aligns to the character grid. // - Adjusts given dimension (width or height) so that it aligns to the character grid.
// The snap is always downward. // The snap is always downward.
// Arguments: // Arguments:
// - widthOrHeight: if true operates on width, otherwise on height // - widthOrHeight: if true operates on width; otherwise, on height
// - dimension: a dimension (width or height) to be snapped // - dimension: a dimension (width or height) to be snapped
// Return Value: // Return Value:
// - A dimension that would be aligned to the character grid. // - A dimension that would be aligned to the character grid.

View File

@ -242,7 +242,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// //
// ControlCore::AttachUiaEngine receives a IRenderEngine as a raw pointer, which we own. // ControlCore::AttachUiaEngine receives a IRenderEngine as a raw pointer, which we own.
// We must ensure that we first destroy the ControlCore before the UiaEngine instance // We must ensure that we first destroy the ControlCore before the UiaEngine instance
// in order to safely resolve this unsafe pointer dependency. Otherwise a deallocated // in order to safely resolve this unsafe pointer dependency. Otherwise, a deallocated
// IRenderEngine is accessed when ControlCore calls Renderer::TriggerTeardown. // IRenderEngine is accessed when ControlCore calls Renderer::TriggerTeardown.
// (C++ class members are destroyed in reverse order.) // (C++ class members are destroyed in reverse order.)
// Further, the TermControlAutomationPeer must be destructed after _uiaEngine! // Further, the TermControlAutomationPeer must be destructed after _uiaEngine!

View File

@ -52,7 +52,7 @@ static std::wstring Sanitize(std::wstring_view text)
// Arguments: // Arguments:
// - text: the string we're validating // - text: the string we're validating
// Return Value: // Return Value:
// - true, if the text is readable. false, otherwise. // - true, if the text is readable; otherwise, false.
static constexpr bool IsReadable(std::wstring_view text) static constexpr bool IsReadable(std::wstring_view text)
{ {
for (const auto c : text) for (const auto c : text)

View File

@ -469,7 +469,7 @@ void Terminal::TrySnapOnInput()
// Parameters: // Parameters:
// - <none> // - <none>
// Return value: // Return value:
// - true, if we are tracking mouse input. False, otherwise // - true, if we are tracking mouse input; otherwise, false.
bool Terminal::IsTrackingMouseInput() const noexcept bool Terminal::IsTrackingMouseInput() const noexcept
{ {
return _getTerminalInput().IsTrackingMouseInput(); return _getTerminalInput().IsTrackingMouseInput();
@ -482,7 +482,7 @@ bool Terminal::IsTrackingMouseInput() const noexcept
// Parameters: // Parameters:
// - <none> // - <none>
// Return value: // Return value:
// - true, if we are tracking mouse input. False, otherwise // - true, if we are tracking mouse input; otherwise, false.
bool Terminal::ShouldSendAlternateScroll(const unsigned int uiButton, bool Terminal::ShouldSendAlternateScroll(const unsigned int uiButton,
const int32_t delta) const noexcept const int32_t delta) const noexcept
{ {
@ -599,7 +599,7 @@ std::optional<PointTree::interval> Terminal::GetHyperlinkIntervalFromViewportPos
// - vkey: The vkey of the last pressed key. // - vkey: The vkey of the last pressed key.
// - scanCode: The scan code of the last pressed key. // - scanCode: The scan code of the last pressed key.
// - states: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states. // - states: The Microsoft::Terminal::Core::ControlKeyStates representing the modifier key states.
// - keyDown: If true, the key was pressed, otherwise the key was released. // - keyDown: If true, the key was pressed; otherwise, the key was released.
// Return Value: // Return Value:
// - true if we translated the key event, and it should not be processed any further. // - true if we translated the key event, and it should not be processed any further.
// - false if we did not translate the key, and it should be processed into a character. // - false if we did not translate the key, and it should be processed into a character.
@ -921,7 +921,7 @@ void Terminal::_StoreKeyEvent(const WORD vkey, const WORD scanCode) noexcept
// Arguments: // Arguments:
// - scanCode: The scan code. // - scanCode: The scan code.
// Return Value: // Return Value:
// - The key code matching the given scan code. Otherwise 0. // - The key code matching the given scan code. Otherwise, 0.
WORD Terminal::_TakeVirtualKeyFromLastKeyEvent(const WORD scanCode) noexcept WORD Terminal::_TakeVirtualKeyFromLastKeyEvent(const WORD scanCode) noexcept
{ {
const auto codes = _lastKeyEventCodes.value_or(KeyEventCodes{}); const auto codes = _lastKeyEventCodes.value_or(KeyEventCodes{});

View File

@ -377,7 +377,7 @@ void Terminal::NotifyBufferRotation(const int delta)
auto selection{ _selection.write() }; auto selection{ _selection.write() };
wil::hide_name _selection; wil::hide_name _selection;
// If the end of the selection will be out of range after the move, we just // If the end of the selection will be out of range after the move, we just
// clear the selection. Otherwise we move both the start and end points up // clear the selection. Otherwise, we move both the start and end points up
// by the given delta and clamp to the first row. // by the given delta and clamp to the first row.
if (selection->end.y < delta) if (selection->end.y < delta)
{ {

View File

@ -438,7 +438,7 @@ void Terminal::ExpandSelectionToWord()
// Arguments: // Arguments:
// - dir: the direction we're scanning the buffer in to find the hyperlink of interest // - dir: the direction we're scanning the buffer in to find the hyperlink of interest
// Return Value: // Return Value:
// - true if we found a hyperlink to select (and selected it). False otherwise. // - true if we found a hyperlink to select (and selected it); otherwise, false.
void Terminal::SelectHyperlink(const SearchDirection dir) void Terminal::SelectHyperlink(const SearchDirection dir)
{ {
if (_selectionMode != SelectionInteractionMode::Mark) if (_selectionMode != SelectionInteractionMode::Mark)

View File

@ -137,7 +137,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
// Arguments: // Arguments:
// - actionID: the internal ID associated with a Command // - actionID: the internal ID associated with a Command
// Return Value: // Return Value:
// - The command if it exists in this layer, otherwise nullptr // - The command if it exists in this layer; otherwise, nullptr
Model::Command ActionMap::_GetActionByID(const winrt::hstring& actionID) const Model::Command ActionMap::_GetActionByID(const winrt::hstring& actionID) const
{ {
// Check current layer // Check current layer
@ -692,7 +692,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
// - oldKeys: the key binding that we are rebinding // - oldKeys: the key binding that we are rebinding
// - newKeys: the new key chord that is being used to replace oldKeys // - newKeys: the new key chord that is being used to replace oldKeys
// Return Value: // Return Value:
// - true, if successful. False, otherwise. // - true, if successful; otherwise, false.
bool ActionMap::RebindKeys(const Control::KeyChord& oldKeys, const Control::KeyChord& newKeys) bool ActionMap::RebindKeys(const Control::KeyChord& oldKeys, const Control::KeyChord& newKeys)
{ {
const auto cmd{ GetActionByKeyChord(oldKeys) }; const auto cmd{ GetActionByKeyChord(oldKeys) };

View File

@ -1014,7 +1014,7 @@ void SettingsLoader::_appendProfile(winrt::com_ptr<Profile>&& profile, const win
} }
// If the given ParsedSettings instance contains a profile with the given profile's GUID, // If the given ParsedSettings instance contains a profile with the given profile's GUID,
// the profile is added as a parent. Otherwise a new child profile is created. // the profile is added as a parent. Otherwise, a new child profile is created.
void SettingsLoader::_addUserProfileParent(const winrt::com_ptr<implementation::Profile>& profile) void SettingsLoader::_addUserProfileParent(const winrt::com_ptr<implementation::Profile>& profile)
{ {
if (const auto [it, inserted] = userSettings.profilesByGuid.emplace(profile->Guid(), nullptr); !inserted) if (const auto [it, inserted] = userSettings.profilesByGuid.emplace(profile->Guid(), nullptr); !inserted)

View File

@ -165,7 +165,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
// Arguments: // Arguments:
// - json: The Json::Value representing the command object we should get the name for. // - json: The Json::Value representing the command object we should get the name for.
// Return Value: // Return Value:
// - the empty string if we couldn't find a name, otherwise the command's name. // - the empty string if we couldn't find a name; otherwise, the command's name.
static std::optional<std::wstring> _nameFromJson(const Json::Value& json) static std::optional<std::wstring> _nameFromJson(const Json::Value& json)
{ {
if (const auto name{ json[JsonKey(NameKey)] }) if (const auto name{ json[JsonKey(NameKey)] })
@ -489,7 +489,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
// - expandable: the Command to potentially turn into more commands // - expandable: the Command to potentially turn into more commands
// - profiles: A list of all the profiles that this command should be expanded on. // - profiles: A list of all the profiles that this command should be expanded on.
// Return Value: // Return Value:
// - and empty vector if the command wasn't expandable, otherwise a list of // - and empty vector if the command wasn't expandable; otherwise, a list of
// the newly-created commands. // the newly-created commands.
std::vector<Model::Command> Command::_expandCommand(Command* const expandable, std::vector<Model::Command> Command::_expandCommand(Command* const expandable,
IVectorView<Model::Profile> profiles, IVectorView<Model::Profile> profiles,

View File

@ -89,7 +89,7 @@ namespace Microsoft::Terminal::Settings::Model::JsonUtils
{ {
static constexpr std::optional<T> EmptyV() { return std::nullopt; } static constexpr std::optional<T> EmptyV() { return std::nullopt; }
static constexpr bool HasValue(const std::optional<T>& o) { return o.has_value(); } static constexpr bool HasValue(const std::optional<T>& o) { return o.has_value(); }
// We can return a reference here because the original value is stored inside an std::optional // We can return a reference here because the original value is stored inside a std::optional
static constexpr auto&& Value(const std::optional<T>& o) { return *o; } static constexpr auto&& Value(const std::optional<T>& o) { return *o; }
}; };

View File

@ -310,7 +310,7 @@ std::wstring Profile::EvaluateStartingDirectory(const std::wstring& directory)
} }
// Function Description: // Function Description:
// - Generates a unique guid for a profile, given the name. For an given name, will always return the same GUID. // - Generates a unique guid for a profile, given the name. For a given name, will always return the same GUID.
// Arguments: // Arguments:
// - name: The name to generate a unique GUID from // - name: The name to generate a unique GUID from
// Return Value: // Return Value:

View File

@ -305,7 +305,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation
_StartingDirectory = profile.EvaluatedStartingDirectory(); _StartingDirectory = profile.EvaluatedStartingDirectory();
// GH#2373: Use the tabTitle as the starting title if it exists, otherwise // GH#2373: Use the tabTitle as the starting title if it exists; otherwise,
// use the profile name // use the profile name
_StartingTitle = !profile.TabTitle().empty() ? profile.TabTitle() : profile.Name(); _StartingTitle = !profile.TabTitle().empty() ? profile.TabTitle() : profile.Name();

View File

@ -372,7 +372,7 @@ winrt::hstring Theme::ToString()
// RequestedTheme, this saves some hassle. If there wasn't a `window` defined // RequestedTheme, this saves some hassle. If there wasn't a `window` defined
// for this theme, this'll quickly just return `system`, to use the OS theme. // for this theme, this'll quickly just return `system`, to use the OS theme.
// Return Value: // Return Value:
// - the set applicationTheme for this Theme, otherwise the system theme. // - the set applicationTheme for this Theme; otherwise, the system theme.
winrt::WUX::ElementTheme Theme::RequestedTheme() const noexcept winrt::WUX::ElementTheme Theme::RequestedTheme() const noexcept
{ {
return _Window ? _Window.RequestedTheme() : winrt::WUX::ElementTheme::Default; return _Window ? _Window.RequestedTheme() : winrt::WUX::ElementTheme::Default;

View File

@ -951,7 +951,7 @@ void AppHost::_updateTheme()
_window->UseDarkTheme(_isActuallyDarkTheme(theme.RequestedTheme())); _window->UseDarkTheme(_isActuallyDarkTheme(theme.RequestedTheme()));
// Update the window frame. If `rainbowFrame:true` is enabled, then that // Update the window frame. If `rainbowFrame:true` is enabled, then that
// will be used. Otherwise we'll try to use the `FrameBrush` set in the // will be used. Otherwise, we'll try to use the `FrameBrush` set in the
// terminal window, as that will have the right color for the ThemeColor for // terminal window, as that will have the right color for the ThemeColor for
// this setting. If that value is null, then revert to the default frame // this setting. If that value is null, then revert to the default frame
// color. // color.

View File

@ -692,7 +692,7 @@ int NonClientIslandWindow::_GetResizeHandleHeight() const noexcept
// If there's a taskbar on any side of the monitor, reduce our size // If there's a taskbar on any side of the monitor, reduce our size
// a little bit on that edge. // a little bit on that edge.
// //
// Note to future code archeologists: // Note to future code archaeologists:
// This doesn't seem to work for fullscreen on the primary display. // This doesn't seem to work for fullscreen on the primary display.
// However, testing a bunch of other apps with fullscreen modes // However, testing a bunch of other apps with fullscreen modes
// and an auto-hiding taskbar has shown that _none_ of them // and an auto-hiding taskbar has shown that _none_ of them

View File

@ -103,7 +103,7 @@ namespace Microsoft.Terminal.Wpf
} }
/// <summary> /// <summary>
/// Gets the selected text in the terminal, clearing the selection. Otherwise returns an empty string. /// Gets the selected text in the terminal, clearing the selection. Otherwise, returns an empty string.
/// </summary> /// </summary>
/// <returns>Selected text, empty string if no content is selected.</returns> /// <returns>Selected text, empty string if no content is selected.</returns>
public string GetSelectedText() public string GetSelectedText()

View File

@ -182,7 +182,7 @@ void ConsoleArguments::s_ConsumeArg(_Inout_ std::vector<std::wstring>& args, _In
// should be at (index+1). index will be decremented by one on success. // should be at (index+1). index will be decremented by one on success.
// pSetting: receives the string at index+1 // pSetting: receives the string at index+1
// Return Value: // Return Value:
// S_OK if we parsed the string successfully, otherwise E_INVALIDARG indicating // S_OK if we parsed the string successfully; otherwise, E_INVALIDARG indicating
// failure. // failure.
[[nodiscard]] HRESULT ConsoleArguments::s_GetArgumentValue(_Inout_ std::vector<std::wstring>& args, [[nodiscard]] HRESULT ConsoleArguments::s_GetArgumentValue(_Inout_ std::vector<std::wstring>& args,
_Inout_ size_t& index, _Inout_ size_t& index,
@ -213,7 +213,7 @@ void ConsoleArguments::s_ConsumeArg(_Inout_ std::vector<std::wstring>& args, _In
// should be at (index+1). index will be decremented by one on success. // should be at (index+1). index will be decremented by one on success.
// pSetting: receives the string at index+1 // pSetting: receives the string at index+1
// Return Value: // Return Value:
// S_OK if we parsed the string successfully, otherwise E_INVALIDARG indicating // S_OK if we parsed the string successfully; otherwise, E_INVALIDARG indicating
// failure. // failure.
[[nodiscard]] HRESULT ConsoleArguments::s_HandleFeatureValue(_Inout_ std::vector<std::wstring>& args, _Inout_ size_t& index) [[nodiscard]] HRESULT ConsoleArguments::s_HandleFeatureValue(_Inout_ std::vector<std::wstring>& args, _Inout_ size_t& index)
{ {
@ -243,7 +243,7 @@ void ConsoleArguments::s_ConsumeArg(_Inout_ std::vector<std::wstring>& args, _In
// should be at (index+1). index will be decremented by one on success. // should be at (index+1). index will be decremented by one on success.
// pSetting: receives the short at index+1 // pSetting: receives the short at index+1
// Return Value: // Return Value:
// S_OK if we parsed the short successfully, otherwise E_INVALIDARG indicating // S_OK if we parsed the short successfully; otherwise, E_INVALIDARG indicating
// failure. This could be the case for non-numeric arguments, or for >SHORT_MAX args. // failure. This could be the case for non-numeric arguments, or for >SHORT_MAX args.
[[nodiscard]] HRESULT ConsoleArguments::s_GetArgumentValue(_Inout_ std::vector<std::wstring>& args, [[nodiscard]] HRESULT ConsoleArguments::s_GetArgumentValue(_Inout_ std::vector<std::wstring>& args,
_Inout_ size_t& index, _Inout_ size_t& index,
@ -332,7 +332,7 @@ void ConsoleArguments::s_ConsumeArg(_Inout_ std::vector<std::wstring>& args, _In
// index: the index of the argument of which to start the commandline from. // index: the index of the argument of which to start the commandline from.
// skipFirst: if true, omit the arg at index (which should be "--") // skipFirst: if true, omit the arg at index (which should be "--")
// Return Value: // Return Value:
// S_OK if we parsed the string successfully, otherwise E_INVALIDARG indicating // S_OK if we parsed the string successfully; otherwise, E_INVALIDARG indicating
// failure. // failure.
[[nodiscard]] HRESULT ConsoleArguments::_GetClientCommandline(_Inout_ std::vector<std::wstring>& args, const size_t index, const bool skipFirst) [[nodiscard]] HRESULT ConsoleArguments::_GetClientCommandline(_Inout_ std::vector<std::wstring>& args, const size_t index, const bool skipFirst)
{ {
@ -369,7 +369,7 @@ void ConsoleArguments::s_ConsumeArg(_Inout_ std::vector<std::wstring>& args, _In
// Arguments: // Arguments:
// <none> // <none>
// Return Value: // Return Value:
// S_OK if we parsed our _commandline successfully, otherwise E_INVALIDARG // S_OK if we parsed our _commandline successfully; otherwise, E_INVALIDARG
// indicating failure. // indicating failure.
[[nodiscard]] HRESULT ConsoleArguments::ParseCommandline() [[nodiscard]] HRESULT ConsoleArguments::ParseCommandline()
{ {

View File

@ -73,7 +73,7 @@ using namespace Microsoft::Console::Interactivity;
// SignalHandle: an optional file handle that will be used to send signals into the console. // SignalHandle: an optional file handle that will be used to send signals into the console.
// This represents the ability to send signals to a *nix tty/pty. // This represents the ability to send signals to a *nix tty/pty.
// Return Value: // Return Value:
// S_OK if we initialized successfully, otherwise an appropriate HRESULT // S_OK if we initialized successfully; otherwise, an appropriate HRESULT
// indicating failure. // indicating failure.
[[nodiscard]] HRESULT VtIo::_Initialize(const HANDLE InHandle, [[nodiscard]] HRESULT VtIo::_Initialize(const HANDLE InHandle,
const HANDLE OutHandle, const HANDLE OutHandle,
@ -136,7 +136,7 @@ bool VtIo::IsUsingVt() const
// Arguments: // Arguments:
// <none> // <none>
// Return Value: // Return Value:
// S_OK if we started successfully or had nothing to start, otherwise an // S_OK if we started successfully or had nothing to start; otherwise, an
// appropriate HRESULT indicating failure. // appropriate HRESULT indicating failure.
[[nodiscard]] HRESULT VtIo::StartIfNeeded() [[nodiscard]] HRESULT VtIo::StartIfNeeded()
{ {
@ -361,7 +361,7 @@ void VtIo::FormatAttributes(std::wstring& target, const TextAttribute& attribute
wchar_t VtIo::SanitizeUCS2(wchar_t ch) wchar_t VtIo::SanitizeUCS2(wchar_t ch)
{ {
// If any of the values in the buffer are C0 or C1 controls, we need to // If any of the values in the buffer are C0 or C1 controls, we need to
// convert them to printable codepoints, otherwise they'll end up being // convert them to printable codepoints; otherwise, they'll end up being
// evaluated as control characters by the receiving terminal. We use the // evaluated as control characters by the receiving terminal. We use the
// DOS 437 code page for the C0 controls and DEL, and just a `?` for the // DOS 437 code page for the C0 controls and DEL, and just a `?` for the
// C1 controls, since that's what you would most likely have seen in the // C1 controls, since that's what you would most likely have seen in the

View File

@ -233,7 +233,7 @@ void TestGetConsoleAliasHelper(TCH* ptszSourceGiven,
if (0 == dwExpectedLastError) if (0 == dwExpectedLastError)
{ {
// If it was successful, it should have been filled. Otherwise it will be zeroed as when it started. // If it was successful, it should have been filled. Otherwise, it will be zeroed as when it started.
StringCbCopyT(ptchExpectedTarget, cbTargetBuffer, ptszExpectedTargetGiven); StringCbCopyT(ptchExpectedTarget, cbTargetBuffer, ptszExpectedTargetGiven);
} }

View File

@ -84,7 +84,7 @@ void ConhostInternalGetSet::SetViewportPosition(const til::point position)
THROW_IF_FAILED(info.SetViewportOrigin(true, position, true)); THROW_IF_FAILED(info.SetViewportOrigin(true, position, true));
// SetViewportOrigin() only updates the virtual bottom (the bottom coordinate of the area // SetViewportOrigin() only updates the virtual bottom (the bottom coordinate of the area
// in the text buffer a VT client writes its output into) when it's moving downwards. // in the text buffer a VT client writes its output into) when it's moving downwards.
// But this function is meant to truly move the viewport no matter what. Otherwise `tput reset` breaks. // But this function is meant to truly move the viewport no matter what. Otherwise, `tput reset` breaks.
info.UpdateBottom(); info.UpdateBottom();
} }

View File

@ -184,7 +184,7 @@ COOKED_READ_DATA::COOKED_READ_DATA(_In_ InputBuffer* const pInputBuffer,
// - It may be called more than once. // - It may be called more than once.
// Arguments: // Arguments:
// - TerminationReason - if this routine is called because a ctrl-c or ctrl-break was seen, this argument // - TerminationReason - if this routine is called because a ctrl-c or ctrl-break was seen, this argument
// contains CtrlC or CtrlBreak. If the owning thread is exiting, it will have ThreadDying. Otherwise 0. // contains CtrlC or CtrlBreak. If the owning thread is exiting, it will have ThreadDying. Otherwise, 0.
// - fIsUnicode - Whether to convert the final data to A (using Console Input CP) at the end or treat everything as Unicode (UCS-2) // - fIsUnicode - Whether to convert the final data to A (using Console Input CP) at the end or treat everything as Unicode (UCS-2)
// - pReplyStatus - The status code to return to the client application that originally called the API (before it was queued to wait) // - pReplyStatus - The status code to return to the client application that originally called the API (before it was queued to wait)
// - pNumBytes - The number of bytes of data that the server/driver will need to transmit back to the client process // - pNumBytes - The number of bytes of data that the server/driver will need to transmit back to the client process

View File

@ -36,7 +36,7 @@ DirectReadData::DirectReadData(_In_ InputBuffer* const pInputBuffer,
// Arguments: // Arguments:
// - TerminationReason - if this routine is called because a ctrl-c or // - TerminationReason - if this routine is called because a ctrl-c or
// ctrl-break was seen, this argument contains CtrlC or CtrlBreak. If // ctrl-break was seen, this argument contains CtrlC or CtrlBreak. If
// the owning thread is exiting, it will have ThreadDying. Otherwise 0. // the owning thread is exiting, it will have ThreadDying. Otherwise, 0.
// - fIsUnicode - Should we return UCS-2 unicode data, or should we // - fIsUnicode - Should we return UCS-2 unicode data, or should we
// run the final data through the current Input Codepage before // run the final data through the current Input Codepage before
// returning? // returning?

View File

@ -48,7 +48,7 @@ RAW_READ_DATA::~RAW_READ_DATA() = default;
// Arguments: // Arguments:
// - TerminationReason - if this routine is called because a ctrl-c or // - TerminationReason - if this routine is called because a ctrl-c or
// ctrl-break was seen, this argument contains CtrlC or CtrlBreak. If // ctrl-break was seen, this argument contains CtrlC or CtrlBreak. If
// the owning thread is exiting, it will have ThreadDying. Otherwise 0. // the owning thread is exiting, it will have ThreadDying. Otherwise, 0.
// - fIsUnicode - Whether to convert the final data to A (using // - fIsUnicode - Whether to convert the final data to A (using
// Console Input CP) at the end or treat everything as Unicode (UCS-2) // Console Input CP) at the end or treat everything as Unicode (UCS-2)
// - pReplyStatus - The status code to return to the client // - pReplyStatus - The status code to return to the client

View File

@ -1221,7 +1221,7 @@ void SCREEN_INFORMATION::_AdjustViewportSize(const til::rect* const prcClientNew
const til::size* const pcoordSize) const til::size* const pcoordSize)
{ {
// If the left is the only one that changed (and not the right // If the left is the only one that changed (and not the right
// also), then adjust from the left. Otherwise if the right // also), then adjust from the left. Otherwise, if the right
// changes or both changed, bias toward leaving the top-left // changes or both changed, bias toward leaving the top-left
// corner in place and resize from the bottom right. // corner in place and resize from the bottom right.
// -- // --

View File

@ -415,7 +415,7 @@ void Selection::ClearSelection(const bool fStartingNewSelection)
// If we were using alternate selection, cancel it here before starting a new area. // If we were using alternate selection, cancel it here before starting a new area.
d->fUseAlternateSelection = false; d->fUseAlternateSelection = false;
// Only unblock if we're not immediately starting a new selection. Otherwise stay blocked. // Only unblock if we're not immediately starting a new selection. Otherwise, stay blocked.
if (!fStartingNewSelection) if (!fStartingNewSelection)
{ {
UnblockWriteConsole(CONSOLE_SELECTING); UnblockWriteConsole(CONSOLE_SELECTING);

View File

@ -812,7 +812,7 @@ void ConsoleArgumentsTests::InitialSizeTests()
true); // successful parse? true); // successful parse?
commandline = L"conhost.exe --width foo"; commandline = L"conhost.exe --width foo";
ArgTestsRunner(L"#6 look for an ivalid commandline passing a string", ArgTestsRunner(L"#6 look for an invalid commandline passing a string",
commandline, commandline,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,
@ -833,7 +833,7 @@ void ConsoleArgumentsTests::InitialSizeTests()
false); // successful parse? false); // successful parse?
commandline = L"conhost.exe --width 2foo"; commandline = L"conhost.exe --width 2foo";
ArgTestsRunner(L"#7 look for an ivalid commandline passing a string with a number at the start", ArgTestsRunner(L"#7 look for an invalid commandline passing a string with a number at the start",
commandline, commandline,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,
@ -854,7 +854,7 @@ void ConsoleArgumentsTests::InitialSizeTests()
false); // successful parse? false); // successful parse?
commandline = L"conhost.exe --width 65535"; commandline = L"conhost.exe --width 65535";
ArgTestsRunner(L"#7 look for an ivalid commandline passing a value that's too big", ArgTestsRunner(L"#7 look for an invalid commandline passing a value that's too big",
commandline, commandline,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,
INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE,

View File

@ -5982,7 +5982,7 @@ void ScreenBufferTests::ClearAlternateBuffer()
auto useMain = wil::scope_exit([&] { altBuffer.UseMainScreenBuffer(); }); auto useMain = wil::scope_exit([&] { altBuffer.UseMainScreenBuffer(); });
// Set the position to home, otherwise it's inherited from the main buffer. // Set the position to home; otherwise, it's inherited from the main buffer.
VERIFY_SUCCEEDED(altBuffer.SetCursorPosition({ 0, 0 }, true)); VERIFY_SUCCEEDED(altBuffer.SetCursorPosition({ 0, 0 }, true));
WriteText(altBuffer.GetTextBuffer()); WriteText(altBuffer.GetTextBuffer());

View File

@ -124,7 +124,7 @@ UINT s_LoadStringEx(_In_ HINSTANCE hModule, _In_ UINT wID, _Out_writes_(cchBuffe
lpsz += cch; // Step to start if next string lpsz += cch; // Step to start if next string
} }
// chhBufferMax == 0 means return a pointer to the read-only resource buffer. // cchBufferMax == 0 means return a pointer to the read-only resource buffer.
if (cchBufferMax == 0) if (cchBufferMax == 0)
{ {
*(LPTSTR*)lpBuffer = lpsz; *(LPTSTR*)lpBuffer = lpsz;

View File

@ -79,7 +79,7 @@ void WriteData::SetUtf8ConsumedCharacters(const size_t cchUtf8Consumed)
// - Called back at a later time to resume the writing operation when the output object becomes unblocked. // - Called back at a later time to resume the writing operation when the output object becomes unblocked.
// Arguments: // Arguments:
// - TerminationReason - if this routine is called because a ctrl-c or ctrl-break was seen, this argument // - TerminationReason - if this routine is called because a ctrl-c or ctrl-break was seen, this argument
// contains CtrlC or CtrlBreak. If the owning thread is exiting, it will have ThreadDying. Otherwise 0. // contains CtrlC or CtrlBreak. If the owning thread is exiting, it will have ThreadDying. Otherwise, 0.
// - fIsUnicode - Input data was in UCS-2 unicode or it needs to be converted with the current Output Codepage // - fIsUnicode - Input data was in UCS-2 unicode or it needs to be converted with the current Output Codepage
// - pReplyStatus - The status code to return to the client application that originally called the API (before it was queued to wait) // - pReplyStatus - The status code to return to the client application that originally called the API (before it was queued to wait)
// - pNumBytes - The number of bytes of data that the server/driver will need to transmit back to the client process // - pNumBytes - The number of bytes of data that the server/driver will need to transmit back to the client process

View File

@ -23,7 +23,7 @@ namespace til // Terminal Implementation Library. Also: "Today I Learned"
// Arguments: // Arguments:
// - handle: a HANDLE to the file to check // - handle: a HANDLE to the file to check
// Return Value: // Return Value:
// - true if it had the expected permissions. False otherwise. // - true if it had the expected permissions; otherwise, false.
_TIL_INLINEPREFIX bool isOwnedByAdministrators(const HANDLE& handle) _TIL_INLINEPREFIX bool isOwnedByAdministrators(const HANDLE& handle)
{ {
// If the file is owned by the administrators group, trust the // If the file is owned by the administrators group, trust the

View File

@ -871,7 +871,7 @@ namespace til
// An optimization for the most common vector type which is trivially and copyable and noexcept constructible. // An optimization for the most common vector type which is trivially and copyable and noexcept constructible.
// Compared to the complex form below, we don't need the 2 moves and 1 destroy, because is_trivially_copyable_v implies // Compared to the complex form below, we don't need the 2 moves and 1 destroy, because is_trivially_copyable_v implies
// that we can just memmove() the items in one fell swoop. We don't need a try/catch either because func() is noexcept. // that we can just memmove() the items all at once. We don't need a try/catch either because func() is noexcept.
if constexpr (noexcept(func(begin())) && std::is_trivially_copyable_v<T>) if constexpr (noexcept(func(begin())) && std::is_trivially_copyable_v<T>)
{ {
_size = new_size; _size = new_size;

View File

@ -293,7 +293,7 @@ using namespace Microsoft::Console::Interactivity;
// - hwnd: Receives the value of the newly created window's HWND. // - hwnd: Receives the value of the newly created window's HWND.
// - owner: the HWND that should be the initial owner of the pseudo window. // - owner: the HWND that should be the initial owner of the pseudo window.
// Return Value: // Return Value:
// - STATUS_SUCCESS on success, otherwise an appropriate error. // - STATUS_SUCCESS on success; otherwise, an appropriate error.
[[nodiscard]] NTSTATUS InteractivityFactory::CreatePseudoWindow(HWND& hwnd) [[nodiscard]] NTSTATUS InteractivityFactory::CreatePseudoWindow(HWND& hwnd)
{ {
hwnd = nullptr; hwnd = nullptr;

View File

@ -75,7 +75,7 @@ til::rect WindowMetrics::GetMaxWindowRectInPixels()
// - Gets the maximum possible window rectangle in pixels. Based on the monitor the window is on or the primary monitor if no window exists yet. // - Gets the maximum possible window rectangle in pixels. Based on the monitor the window is on or the primary monitor if no window exists yet.
// Arguments: // Arguments:
// - prcSuggested - If we were given a suggested rectangle for where the window is going, we can pass it in here to find out the max size on that monitor. // - prcSuggested - If we were given a suggested rectangle for where the window is going, we can pass it in here to find out the max size on that monitor.
// - If this value is zero and we had a valid window handle, we'll use that instead. Otherwise the value of 0 will make us use the primary monitor. // - If this value is zero and we had a valid window handle, we'll use that instead. Otherwise, the value of 0 will make us use the primary monitor.
// - pDpiSuggested - The dpi that matches the suggested rect. We will attempt to compute this during the function, but if we fail for some reason, // - pDpiSuggested - The dpi that matches the suggested rect. We will attempt to compute this during the function, but if we fail for some reason,
// - the original value passed in will be left untouched. // - the original value passed in will be left untouched.
// Return Value: // Return Value:

View File

@ -422,7 +422,7 @@ VOID PreviewPaint(
* return = n1 * m / n2 * return = n1 * m / n2
* This can be used to make an aspect ration calculation where n1/n2 * This can be used to make an aspect ration calculation where n1/n2
* is the aspect ratio and m is a known value. The return value will * is the aspect ratio and m is a known value. The return value will
* be the value that corresponds to m with the correct apsect ratio. * be the value that corresponds to m with the correct aspect ratio.
*/ */
LONG AspectScale( LONG AspectScale(

View File

@ -293,7 +293,7 @@ try
RETURN_IF_NTSTATUS_FAILED(RegistrySerialization::s_OpenConsoleKey(&currentUserKey, &consoleKey)); RETURN_IF_NTSTATUS_FAILED(RegistrySerialization::s_OpenConsoleKey(&currentUserKey, &consoleKey));
// Create method for registry is a "create if not exists, otherwise open" function. // Create method for registry is a "create if not exists; otherwise, open" function.
wil::unique_hkey startupKey; wil::unique_hkey startupKey;
RETURN_IF_NTSTATUS_FAILED(RegistrySerialization::s_CreateKey(consoleKey.get(), L"%%Startup", &startupKey)); RETURN_IF_NTSTATUS_FAILED(RegistrySerialization::s_CreateKey(consoleKey.get(), L"%%Startup", &startupKey));

View File

@ -268,7 +268,7 @@ try
} }
// PaintCursor() is only called when the cursor is visible, but we need to invalidate the cursor area // PaintCursor() is only called when the cursor is visible, but we need to invalidate the cursor area
// even if it isn't. Otherwise a transition from a visible to an invisible cursor wouldn't be rendered. // even if it isn't. Otherwise, a transition from a visible to an invisible cursor wouldn't be rendered.
if (const auto r = _api.invalidatedCursorArea; r.non_empty()) if (const auto r = _api.invalidatedCursorArea; r.non_empty())
{ {
_p.dirtyRectInPx.left = std::min(_p.dirtyRectInPx.left, r.left * _p.s->font->cellSize.x); _p.dirtyRectInPx.left = std::min(_p.dirtyRectInPx.left, r.left * _p.s->font->cellSize.x);

View File

@ -2324,7 +2324,7 @@ void BackendD3D::_executeCustomShader(RenderingPayload& p)
{ {
// Before we do anything else we have to unbound _renderTargetView from being // Before we do anything else we have to unbound _renderTargetView from being
// a render target, otherwise we can't use it as a shader resource below. // a render target; otherwise, we can't use it as a shader resource below.
p.deviceContext->OMSetRenderTargets(1, _renderTargetView.addressof(), nullptr); p.deviceContext->OMSetRenderTargets(1, _renderTargetView.addressof(), nullptr);
// IA: Input Assembler // IA: Input Assembler

View File

@ -265,7 +265,7 @@ namespace Microsoft::Console::Render::Atlas
private: private:
// These two functions don't need to use scoped objects or standard allocators, // These two functions don't need to use scoped objects or standard allocators,
// since this class is in fact an scoped allocator object itself. // since this class is in fact a scoped allocator object itself.
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 26402) // Return a scoped object instead of a heap-allocated if it has a move constructor (r.3). #pragma warning(disable : 26402) // Return a scoped object instead of a heap-allocated if it has a move constructor (r.3).
#pragma warning(disable : 26409) // Avoid calling new and delete explicitly, use std::make_unique<T> instead (r.11). #pragma warning(disable : 26409) // Avoid calling new and delete explicitly, use std::make_unique<T> instead (r.11).

View File

@ -1116,7 +1116,7 @@ bool Renderer::_isInHoveredInterval(const til::point coordTarget) const noexcept
// Arguments: // Arguments:
// - <none> // - <none>
// Return Value: // Return Value:
// - nullopt if the cursor is off or out-of-frame, otherwise a CursorOptions // - nullopt if the cursor is off or out-of-frame; otherwise, a CursorOptions
void Renderer::_updateCursorInfo() void Renderer::_updateCursorInfo()
{ {
// Get cursor position in buffer // Get cursor position in buffer

View File

@ -560,7 +560,7 @@ GdiEngine::~GdiEngine()
// Arguments: // Arguments:
// - newTitle: the new string to use for the title of the window // - newTitle: the new string to use for the title of the window
// Return Value: // Return Value:
// - S_OK if PostMessageW succeeded, otherwise E_FAIL // - S_OK if PostMessageW succeeded; otherwise, E_FAIL
[[nodiscard]] HRESULT GdiEngine::_DoUpdateTitle(_In_ const std::wstring_view /*newTitle*/) noexcept [[nodiscard]] HRESULT GdiEngine::_DoUpdateTitle(_In_ const std::wstring_view /*newTitle*/) noexcept
{ {
// the CM_UPDATE_TITLE handler in windowproc will query the updated title. // the CM_UPDATE_TITLE handler in windowproc will query the updated title.

View File

@ -486,7 +486,7 @@ PCONSOLE_API_MSG IoDispatchers::ConsoleHandleConnectionRequest(_In_ PCONSOLE_API
return pReceiveMsg; return pReceiveMsg;
} }
// For future code archeologists: GH#2988 // For future code archaeologists: GH#2988
// //
// Here, the console calls ConsoleControl(ConsoleSetForeground,...) with a // Here, the console calls ConsoleControl(ConsoleSetForeground,...) with a
// flag depending on if the console is focused or not. This is surprisingly // flag depending on if the console is focused or not. This is surprisingly

View File

@ -259,7 +259,7 @@ void FontBuffer::_prepareCharacterBuffer()
{ {
// If any of the attributes have changed since the last time characters // If any of the attributes have changed since the last time characters
// were downloaded, the font dimensions will need to be recalculated, and // were downloaded, the font dimensions will need to be recalculated, and
// the buffer will need to be cleared. Otherwise we'll just be adding to // the buffer will need to be cleared. Otherwise, we'll just be adding to
// the existing font, assuming the current dimensions. // the existing font, assuming the current dimensions.
if (_cellMatrix != _pendingCellMatrix || if (_cellMatrix != _pendingCellMatrix ||
_cellHeight != _pendingCellHeight || _cellHeight != _pendingCellHeight ||
@ -397,7 +397,7 @@ std::tuple<VTInt, VTInt, VTInt> FontBuffer::_calculateDimensions() const
} }
// Now we're going to test whether the dimensions are in range for a number // Now we're going to test whether the dimensions are in range for a number
// of known terminals. We use the declared dimensions if given, otherwise // of known terminals. We use the declared dimensions if given; otherwise,
// estimate the size from the used sixel values. If comparing a sixel-based // estimate the size from the used sixel values. If comparing a sixel-based
// height, though, we need to round up the target cell height to account for // height, though, we need to round up the target cell height to account for
// the fact that our used height will always be a multiple of six. // the fact that our used height will always be a multiple of six.

View File

@ -30,7 +30,7 @@ namespace Microsoft::Console::VirtualTerminal
public: public:
// The original DEC terminals only supported 6K of memory, which is // The original DEC terminals only supported 6K of memory, which is
// probably a bit low for modern usage. But we also don't want to make // probably a bit low for modern usage. But we also don't want to make
// this value too large, otherwise it could be used in a denial-of- // this value too large; otherwise, it could be used in a denial-of-
// service attack. So for now this is probably a sufficient limit, but // service attack. So for now this is probably a sufficient limit, but
// we may need to increase it in the future if we intend to support // we may need to increase it in the future if we intend to support
// macros containing sixel sequences. // macros containing sixel sequences.

View File

@ -1009,7 +1009,7 @@ void AdaptDispatch::_ChangeRectOrStreamAttributes(const til::rect& changeArea, c
// top line is altered from the left offset up to the end of the line. The // top line is altered from the left offset up to the end of the line. The
// bottom line is altered from the start up to the right offset. All the // bottom line is altered from the start up to the right offset. All the
// lines in-between have their entire length altered. The right coordinate // lines in-between have their entire length altered. The right coordinate
// must be greater than the left, otherwise the operation is ignored. // must be greater than the left; otherwise, the operation is ignored.
else if (lineCount > 1 && changeRect.right > changeRect.left) else if (lineCount > 1 && changeRect.right > changeRect.left)
{ {
const auto pageWidth = page.Width(); const auto pageWidth = page.Width();
@ -2392,7 +2392,9 @@ void AdaptDispatch::CarriageReturn()
// Arguments: // Arguments:
// - page - Target page on which the line feed is executed. // - page - Target page on which the line feed is executed.
// - withReturn - Set to true if a carriage return should be performed as well. // - withReturn - Set to true if a carriage return should be performed as well.
// - wrapForced - Set to true is the line feed was the result of the line wrapping. if the viewport panned down. False if not. // - wrapForced - Set to true if the line feed was the result of the line wrapping.
// Return Value:
// - true if the viewport panned down; otherwise, false.
bool AdaptDispatch::_DoLineFeed(const Page& page, const bool withReturn, const bool wrapForced) bool AdaptDispatch::_DoLineFeed(const Page& page, const bool withReturn, const bool wrapForced)
{ {
auto& textBuffer = page.Buffer(); auto& textBuffer = page.Buffer();
@ -2468,7 +2470,7 @@ bool AdaptDispatch::_DoLineFeed(const Page& page, const bool withReturn, const b
_api.NotifyBufferRotation(1); _api.NotifyBufferRotation(1);
// We trigger a scroll rather than a redraw, since that's more efficient, // We trigger a scroll rather than a redraw, since that's more efficient,
// but we need to turn the cursor off before doing so, otherwise a ghost // but we need to turn the cursor off before doing so; otherwise, a ghost
// cursor can be left behind in the previous position. // cursor can be left behind in the previous position.
cursor.SetIsOn(false); cursor.SetIsOn(false);
textBuffer.TriggerScroll({ 0, -1 }); textBuffer.TriggerScroll({ 0, -1 });
@ -2882,7 +2884,7 @@ void AdaptDispatch::AcceptC1Controls(const bool enabled)
void AdaptDispatch::SendC1Controls(const bool enabled) void AdaptDispatch::SendC1Controls(const bool enabled)
{ {
// If this is an attempt to enable C1 controls, the input code page must be // If this is an attempt to enable C1 controls, the input code page must be
// one of the DOCS choices (UTF-8 or ISO-8859-1), otherwise there's a risk // one of the DOCS choices (UTF-8 or ISO-8859-1); otherwise, there's a risk
// that those controls won't have a valid encoding. // that those controls won't have a valid encoding.
const auto codepage = _api.GetInputCodePage(); const auto codepage = _api.GetInputCodePage();
if (enabled == false || codepage == CP_UTF8 || codepage == 28591) if (enabled == false || codepage == CP_UTF8 || codepage == 28591)
@ -3354,7 +3356,7 @@ void AdaptDispatch::SetXtermColorResource(const size_t resource, const DWORD col
// Method Description: // Method Description:
// - Reports the value of one Xterm Color Resource, if it is set. // - Reports the value of one Xterm Color Resource, if it is set.
// Return Value: // Return Value:
// True if handled successfully. False otherwise. // - true if handled successfully; otherwise, false.
void AdaptDispatch::RequestXtermColorResource(const size_t resource) void AdaptDispatch::RequestXtermColorResource(const size_t resource)
{ {
assert(resource >= 10); assert(resource >= 10);
@ -4187,7 +4189,7 @@ ITermDispatch::StringHandler AdaptDispatch::RequestSetting()
{ {
// Although we don't yet support any operations with parameter // Although we don't yet support any operations with parameter
// prefixes, it's important that we still parse the prefix and // prefixes, it's important that we still parse the prefix and
// include it in the ID. Otherwise we'll mistakenly respond to // include it in the ID. Otherwise, we'll mistakenly respond to
// prefixed queries that we don't actually recognise. // prefixed queries that we don't actually recognise.
const auto isParameterPrefix = ch >= L'<' && ch <= L'?'; const auto isParameterPrefix = ch >= L'<' && ch <= L'?';
const auto isParameter = ch >= L'0' && ch < L'9'; const auto isParameter = ch >= L'0' && ch < L'9';

View File

@ -78,7 +78,7 @@ public:
irTest.Event.KeyEvent.bKeyDown = TRUE; irTest.Event.KeyEvent.bKeyDown = TRUE;
// If we want to test a key with the Right Alt modifier, we must generate // If we want to test a key with the Right Alt modifier, we must generate
// an event for the Alt key first, otherwise the modifier will be dropped. // an event for the Alt key first; otherwise, the modifier will be dropped.
if (WI_IsFlagSet(uiKeystate, RIGHT_ALT_PRESSED)) if (WI_IsFlagSet(uiKeystate, RIGHT_ALT_PRESSED))
{ {
irTest.Event.KeyEvent.wVirtualKeyCode = VK_MENU; irTest.Event.KeyEvent.wVirtualKeyCode = VK_MENU;

View File

@ -269,7 +269,7 @@ static constexpr wchar_t _encodeDefaultCoordinate(const til::CoordType sCoordina
// Parameters: // Parameters:
// - <none> // - <none>
// Return value: // Return value:
// - true, if we are tracking mouse input. False, otherwise // - true, if we are tracking mouse input; otherwise, false.
bool TerminalInput::IsTrackingMouseInput() const noexcept bool TerminalInput::IsTrackingMouseInput() const noexcept
{ {
return _inputMode.any(Mode::DefaultMouseTracking, Mode::ButtonEventMouseTracking, Mode::AnyEventMouseTracking); return _inputMode.any(Mode::DefaultMouseTracking, Mode::ButtonEventMouseTracking, Mode::AnyEventMouseTracking);

View File

@ -171,7 +171,7 @@ TerminalInput::OutputType TerminalInput::HandleKey(const INPUT_RECORD& event)
if (matchingLastKeyPress && !_inputMode.test(Mode::AutoRepeat)) if (matchingLastKeyPress && !_inputMode.test(Mode::AutoRepeat))
{ {
// Note that we must return an empty string here to imply that we've handled // Note that we must return an empty string here to imply that we've handled
// the event, otherwise the key press can still end up being submitted. // the event; otherwise, the key press can still end up being submitted.
return _makeNoOutput(); return _makeNoOutput();
} }
_lastVirtualKeyCode = virtualKeyCode; _lastVirtualKeyCode = virtualKeyCode;

View File

@ -1511,7 +1511,7 @@ void StateMachine::_EventOscString(const wchar_t wch)
// - Handle the two-character termination of a OSC sequence. // - Handle the two-character termination of a OSC sequence.
// Events in this state will: // Events in this state will:
// 1. Trigger the OSC action associated with the param on an OscTerminator // 1. Trigger the OSC action associated with the param on an OscTerminator
// 2. Otherwise treat this as a normal escape character event. // 2. Otherwise, treat this as a normal escape character event.
// Arguments: // Arguments:
// - wch - Character that triggered the event // - wch - Character that triggered the event
// Return Value: // Return Value:

View File

@ -57,7 +57,7 @@ u8state::u8state() noexcept :
{ {
// If the Lead Byte indicates that the last bytes in the string is a partial UTF-8 code point then cache them: // If the Lead Byte indicates that the last bytes in the string is a partial UTF-8 code point then cache them:
// Use the bitmask at index `sequenceLen`. Compare the result with the operand having the same index. If they // Use the bitmask at index `sequenceLen`. Compare the result with the operand having the same index. If they
// are not equal then the sequence has to be cached because it is a partial code point. Otherwise the // are not equal then the sequence has to be cached because it is a partial code point. Otherwise, the
// sequence is a complete UTF-8 code point and the whole string is ready for the conversion to hstring. // sequence is a complete UTF-8 code point and the whole string is ready for the conversion to hstring.
if ((*backIter & _cmpMasks.at(sequenceLen)) != _cmpOperands.at(sequenceLen)) if ((*backIter & _cmpMasks.at(sequenceLen)) != _cmpOperands.at(sequenceLen))
{ {

View File

@ -568,7 +568,7 @@ try
// - the anchors have been populated // - the anchors have been populated
// This means that we've found a contiguous range where the text attribute was found. // This means that we've found a contiguous range where the text attribute was found.
// No point in searching through the rest of the search space. // No point in searching through the rest of the search space.
// TLDR: keep updating the second anchor and make the range wider until the attribute changes. // TL;DR: keep updating the second anchor and make the range wider until the attribute changes.
break; break;
} }
} }
@ -663,7 +663,7 @@ CATCH_RETURN();
// - pRetVal - the attributeId's sub-type for the first cell in the range (i.e. foreground color) // - pRetVal - the attributeId's sub-type for the first cell in the range (i.e. foreground color)
// - attr - the text attribute we're checking // - attr - the text attribute we're checking
// Return Value: // Return Value:
// - true, if the attributeId is supported. false, otherwise. // - true, if the attributeId is supported. Otherwise, false.
// - pRetVal is populated with the appropriate response relevant to the returned bool. // - pRetVal is populated with the appropriate response relevant to the returned bool.
bool UiaTextRangeBase::_initializeAttrQuery(TEXTATTRIBUTEID attributeId, VARIANT* pRetVal, const TextAttribute& attr) const bool UiaTextRangeBase::_initializeAttrQuery(TEXTATTRIBUTEID attributeId, VARIANT* pRetVal, const TextAttribute& attr) const
{ {
@ -1310,7 +1310,7 @@ til::CoordType UiaTextRangeBase::_getViewportHeight(const til::inclusive_rect& v
{ {
assert(viewport.bottom >= viewport.top); assert(viewport.bottom >= viewport.top);
// + 1 because til::inclusive_rect is inclusive on both sides so subtracting top // + 1 because til::inclusive_rect is inclusive on both sides so subtracting top
// and bottom gets rid of 1 more then it should. // and bottom gets rid of 1 more, then it should.
return viewport.bottom - viewport.top + 1; return viewport.bottom - viewport.top + 1;
} }

View File

@ -417,7 +417,7 @@ static void _ClosePseudoConsole(_In_ PseudoConsole* pPty) noexcept
// INHERIT_CURSOR: This will cause the created conpty to attempt to inherit the // INHERIT_CURSOR: This will cause the created conpty to attempt to inherit the
// cursor position of the parent terminal application. This can be useful // cursor position of the parent terminal application. This can be useful
// for applications like `ssh`, where ssh (currently running in a terminal) // for applications like `ssh`, where ssh (currently running in a terminal)
// might want to create a pseudoterminal session for an child application // might want to create a pseudoterminal session for a child application
// and the child inherit the cursor position of ssh. // and the child inherit the cursor position of ssh.
// The created conpty will immediately emit a "Device Status Request" VT // The created conpty will immediately emit a "Device Status Request" VT
// sequence to hOutput, that should be replied to on hInput in the format // sequence to hOutput, that should be replied to on hInput in the format

View File

@ -21,7 +21,7 @@ param (
[xml]$appxPrototypeData = Get-Content $AppxManifestPrototype [xml]$appxPrototypeData = Get-Content $AppxManifestPrototype
# You need to make sure each element we add is part of the same namespace as the # You need to make sure each element we add is part of the same namespace as the
# Package, otherwise powershell will append a bunch of `xmlns=""` properties # Package; otherwise, powershell will append a bunch of `xmlns=""` properties
# that will make the appx deployment reject the manifest. # that will make the appx deployment reject the manifest.
$rootNS = $appxPrototypeData.Package.NamespaceURI $rootNS = $appxPrototypeData.Package.NamespaceURI
@ -38,7 +38,7 @@ $files | ForEach-Object {
$InProcessServer = $appxPrototypeData.CreateNode("element", "InProcessServer", $rootNS) $InProcessServer = $appxPrototypeData.CreateNode("element", "InProcessServer", $rootNS)
$Path = $appxPrototypeData.CreateNode("element", "Path", $rootNS) $Path = $appxPrototypeData.CreateNode("element", "Path", $rootNS)
# You need to stash the result here, otherwise a blank line will be echoed to # You need to stash the result here; otherwise, a blank line will be echoed to
# the console. # the console.
$placeholder = $Path.InnerText = $_.name $placeholder = $Path.InnerText = $_.name

Some files were not shown because too many files have changed in this diff Show More