# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# This is a larger example typo dictionary containing 400 entries. It builds to
# a table of about 6000 bytes, so you'll need a keyboard with a generous
# amount of free firmware space to use the full dictionary. Alternatively, pick
# out a subset of entries to a separate file, then build a table from that.
#
# Dictionary syntax:
# Each line of this file defines one typo correction entry with the syntax
# "typo -> correction". Typos and corrections are case insensitive, and any
# whitespace before or after the typo and correction is ignored. The typo must be
# only the letters a-z, or the special character : representing a word break.
#
# For documentation about how to use this dictionary, see
# https://getreuer.info/posts/keyboards/autocorrection
#
# Further resources:
#  * Wikipedia has a large list of common typos at
#    https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
#
#  * EmacsWiki has another list of typos at
#    https://www.emacswiki.org/emacs/autocorrection_abbrev_defs
#
#  * You can find data on English word frequencies at
#    https://www.wordfrequency.info/samples.asp


## 10 most common words.
# The words "there", "about", "their", "would", "people", "which", "could",
# "think", "other", and "because" are among the most common words in English
# that are 5 letters or longer. (We don't include entries for words shorter than
# that to avoid false triggering.)
:htere        -> there
abbout        -> about
abotu         -> about
baout         -> about
:theri        -> their
:thier        -> their
:owudl        -> would
woudl         -> would
peaple        -> people
peolpe        -> people
peopel        -> people
poeple        -> people
poeople       -> people
:hwihc        -> which
whcih         -> which
whihc         -> which
whlch         -> which
wihch         -> which
coudl         -> could
:htikn        -> think
:htink        -> think
thikn         -> think
thiunk        -> think
tihkn         -> think
:olther       -> other
:otehr        -> other
baceause      -> because
beacuse       -> because
becasue       -> because
beccause      -> because
becouse       -> because
becuase       -> because

## Common words, 11-20.
theese        -> these
:goign        -> going
:gonig        -> going
:yaers        -> years
:yeasr        -> years
:thsoe        -> those
shoudl        -> should
raelly        -> really
realy         -> really
relaly        -> really
bedore        -> before
befoer        -> before
littel        -> little
beeing        -> being
:hwile        -> while

## Common words, 21-30.
aroud         -> around
arround       -> around
arund         -> around
thign         -> thing
thigsn        -> things
thnigs        -> things
anohter       -> another
beteen        -> between
beween        -> between
bewteen       -> between
:eveyr        -> every
:graet        -> great
:agian        -> again
:sicne        -> since
alwasy        -> always
alwyas        -> always
throught      -> thought


## Words especially susceptible to skipping or transposing a letter.
# These entries are for words that are easy enough to spell, but not necessarily
# easy to press the keys in the right order.
# Catch misspellings of "achieves", "achieving", etc.
:acheiv       -> achiev
almsot        -> almost
alomst        -> almost
chnage        -> change
chekc         -> check
childen       -> children
claer         -> clear
comapny       -> company
contian       -> contain
elasped       -> elapsed
feild         -> field
fitler        -> filter
firts         -> first
follwo        -> follow
:foudn        -> found
frequecy      -> frequency
firend        -> friend
freind        -> friend
heigth        -> height
iamge         -> image
inital        -> initial
intput        -> input
laguage       -> language
lenght        -> length
levle         -> level
libary        -> library
:moeny        -> money
mysefl        -> myself
ouptut        -> output
ouput         -> output
probaly       -> probably
probelm       -> problem
recrod        -> record
reponse       -> response
reprot        -> report
singel        -> single
stregth       -> strength
strengh       -> strength
tkaes         -> takes
therfore      -> therefore
todya         -> today
toghether     -> together
unkown        -> unknown
unqiue        -> unique
widht         -> width


## Words with tricky spelling.
# If you are a good speller, you could drop this section.
aberation     -> aberration
accross       -> across
adviced       -> advised
aledge        -> allege
alledge       -> allege
amature       -> amateur
anomolous     -> anomalous
anomoly       -> anomaly
aparent       -> apparent
aparrent      -> apparent
apparant      -> apparent
apparrent     -> apparent
asthetic      -> aesthetic
auxilary      -> auxiliary
auxillary     -> auxiliary
auxilliary    -> auxiliary
bankrupcy     -> bankruptcy
busness       -> business
bussiness     -> business
calander      -> calendar
commitee      -> committee
comittee      -> committee
competance    -> competence
competant     -> competent
concensus     -> consensus
cognizent     -> cognizant
copywrite:    -> copyright
choosen       -> chosen
collegue      -> colleague
excercise     -> exercise
:grammer      -> grammar
:guage        -> gauge
govement      -> government
govenment     -> government
goverment     -> government
governmnet    -> government
govorment     -> government
govornment    -> government
guaratee      -> guarantee
garantee      -> guarantee
gaurantee     -> guarantee
heirarchy     -> hierarchy
hygeine       -> hygiene
hypocracy     -> hypocrisy
hypocrasy     -> hypocrisy
hypocricy     -> hypocrisy
hypocrit:     -> hypocrite
looses:       -> loses
maintence     -> maintenance
morgage       -> mortgage
neccesary     -> necessary
necesary      -> necessary
pallete       -> palette
paralel       -> parallel
parralel      -> parallel
parrallel     -> parallel
priviledge    -> privilege
probablly     -> probably
prominant     -> prominent
propogate     -> propagate
proove        -> prove
psuedo        -> pseudo
reciept       -> receipt
# Catch misspellings of "receives", "receiving", etc.
receiev       -> receiv
reciev        -> receiv
recepient     -> recipient
recipiant     -> recipient
relevent      -> relevant
repitition    -> repetition
safty         -> safety
saftey        -> safety
# Catch misspellings of "separate", "separating", etc.
seperat       -> separat
spectogram    -> spectrogram
symetric      -> symmetric
tolerence     -> tolerance


## Words particularly for coding.
# Entries for common code keywords ("const") and terminology ("lookup").
cacheing      -> caching
complier      -> compiler
doulbe        -> double
dyanmic       -> dynamic
# As in "execute", "executable", "executing", ...
excecut       -> execut
failse        -> false
fales         -> false
fasle         -> false
flase         -> false
indeces       -> indices
indecies      -> indices
indicies      -> indices
interator     -> iterator
looup         -> lookup
namesapce     -> namespace
namespcae     -> namespace
nulltpr       -> nullptr
operaotr      -> operator
overide       -> override
ovveride      -> override
poitner       -> pointer
:rference     -> reference
referece      -> reference
singed        -> signed
stirng        -> string
strign        -> string
swithc        -> switch
swtich        -> switch
teamplate     -> template
tempalte      -> template
:ture         -> true
retrun        -> return
retun         -> return
reutrn        -> return
cosnt         -> const
virutal       -> virtual
vitual        -> virtual
yeild         -> yield


## Catch skipped spaces between common words.
:alot:        -> a lot
:andteh       -> and the
:andthe       -> and the
:asthe        -> as the
:atthe        -> at the
abouta        -> about a
aboutit       -> about it
aboutthe      -> about the
:tothe        -> to the
didnot        -> did not
fromthe       -> from the


## Various additional entries.
:agred        -> agreed
:ajust        -> adjust
:anual        -> annual
:asign        -> assign
:aslo:        -> also
:casue        -> cause
:choses       -> chooses
:gaurd        -> guard
:haev         -> have
:hapen        -> happen
:idaes        -> ideas
:jsut:        -> just
:jstu:        -> just
:knwo         -> know
:konw         -> know
:kwno         -> know
:ocuntry      -> country
:ocur         -> occur
:socre        -> score
:szie         -> size
:the:the:     -> the
:turth        -> truth
:uesd:        -> used
:usally       -> usually
abilties      -> abilities
abilty        -> ability
abvove        -> above
accesories    -> accessories
accomodate    -> accommodate
acommodate    -> accommodate
acomplish     -> accomplish
actualy       -> actually
acurate       -> accurate
acutally      -> actually
addtion       -> addition
againnst      -> against
aganist       -> against
aggreed       -> agreed
agianst       -> against
ahppn         -> happen
allign        -> align
anytying      -> anything
aquire        -> acquire
availabe      -> available
availaible    -> available
availalbe     -> available
availble      -> available
availiable    -> available
avalable      -> available
avaliable     -> available
avilable      -> available
bandwith      -> bandwidth
begginer      -> beginner
beleif        -> belief
beleive       -> believe
belive        -> believe
breif         -> brief
burried       -> buried
caluclate     -> calculate
caluculate    -> calculate
calulate      -> calculate
catagory      -> category
cauhgt        -> caught
ceratin       -> certain
certian       -> certain
cheif         -> chief
cieling       -> ceiling
circut        -> circuit
clasic        -> classic
cmoputer      -> computer
coform        -> conform
comming:      -> coming
considerd     -> considered
dervied       -> derived
desicion      -> decision
diferent      -> different
diferrent     -> different
differnt      -> different
diffrent      -> different
divison       -> division
effecient     -> efficient
eligable      -> eligible
elpased       -> elapsed
embarass      -> embarrass
embeded       -> embedded
encypt        -> encrypt
finaly        -> finally
foriegn       -> foreign
foward        -> forward
fraciton      -> fraction
fucntion      -> function
fufill        -> fulfill
fullfill      -> fulfill
futher        -> further
ganerate      -> generate
generaly      -> generally
greatful      -> grateful
heigher       -> higher
higest        -> highest
howver        -> however
hydogen       -> hydrogen
importamt     -> important
inclued       -> include
insted        -> instead
intrest       -> interest
invliad       -> invalid
largst        -> largest
learnign      -> learning
liasion       -> liaison
likly         -> likely
lisense       -> license
listner       -> listener
macthing      -> matching
manefist      -> manifest
mesage        -> message
naturual      -> natural
occassion     -> occasion
occured       -> occurred
particualr    -> particular
paticular     -> particular
peice         -> piece
perhasp       -> perhaps
perheaps      -> perhaps
perhpas       -> perhaps
perphas       -> perhaps
persue        -> pursue
posess        -> possess
postion       -> position
preiod        -> period
primarly      -> primarily
privte        -> private
proccess      -> process
proeprty      -> property
propery       -> property
realtion      -> relation
reasearch     -> research
recuring      -> recurring
refered       -> referred
regluar       -> regular
releated      -> related
resutl        -> result
reuslt        -> result
reveiw        -> review
satisifed     -> satisfied
scheduel      -> schedule
sequnce       -> sequence
similiar      -> similar
simmilar      -> similar
slighly       -> slightly
somehwat      -> somewhat
statment      -> statement
sucess        -> success
succsess      -> success
sugest        -> suggest
sumary        -> summary
supress       -> suppress
surpress      -> suppress
thresold      -> threshold
tongiht       -> tonight
tranpose      -> transpose
typcial       -> typical
udpate        -> update
ususally      -> usually
verticies     -> vertices
whereever     -> wherever
wherre        -> where
wierd         -> weird