Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate

AutoReplace


  • Please log in to reply
45 replies to this topic
jaco0646
  • Guests
  • Last active:
  • Joined: --
I was trying to think of some useful hotstrings to make an auto-replace script, when I remembered that Microsoft Word 2003 has a feature called AutoCorrect (I'm not sure if it's in all versions). So I made a little script to take all the entries from MS Word and create my auto-replace script for me.
Run, winword
WinWaitActive, ahk_class OpusApp
ControlSend, MsoCommandBar1, {ALT DOWN}ta{ALT UP}, ahk_class OpusApp
WinWaitActive, ahk_class bosa_sdm_Microsoft Office Word 11.0
ControlFocus, bosa_sdm_Microsoft Office Word 11.01, ahk_class bosa_sdm_Microsoft Office Word 11.0
Send, {DOWN}
Loop, 926
{
ControlGetText, misspell, RichEdit20W1, ahk_class bosa_sdm_Microsoft Office Word 11.0
ControlGetText, correction, RichEdit20W2, ahk_class bosa_sdm_Microsoft Office Word 11.0
FileAppend, ::%misspell%::%correction%`n, %A_Desktop%\spell.ahk
Send, {DOWN}
}
ControlSend, ahk_parent, {ENTER}, ahk_class bosa_sdm_Microsoft Office Word 11.0
WinClose, ahk_class OpusApp
By trial-and-error I figured out there were 926 entries.

jaco0646
  • Guests
  • Last active:
  • Joined: --
I just noticed an even longer list at:
http://en.wikipedia....gs/For_machines

PhiLho
  • Moderators
  • 6850 posts
  • Last active: Jan 02 2012 10:09 PM
  • Joined: 27 Dec 2005
I would have made that in VBA...
Actually, I wrote a script to empty most of this list: I don't like much of this auto-correction stuff, as it reinforce you in your bad habits: just continue to type wrongly, the result will be fine... And when you use another text editor or a Web form, you still get the errors...
The only practical use is the hotstring (abbreviation) stuff, like changing © to ©.

Note: I wondered why you used the edit controls instead of scanning directly the ListView below, but it seems that Microsoft thought it was too simple to use standard controls (RichEdit for one-line Edit control?!) and their "bosa_sdm_Microsoft xxx" control cannot be controlled from AHK.

OK, since I see an (deactivated on my version) option for rich text corrections (hotstrings), perhaps there was a need for more sophisticated controls, but they should have made their bosa stuff to answer standard ListView messages...

BoBo
  • Guests
  • Last active:
  • Joined: --

The only practical use is the hotstring (abbreviation) stuff, like changing © to ©.

Might be solved/requested already. :?:
Is there an option to connect MS (Win)Word's AutoCorrection to AHK (eg. to use the AHK command reference/index) that way ??

PhiLho
  • Moderators
  • 6850 posts
  • Last active: Jan 02 2012 10:09 PM
  • Joined: 27 Dec 2005
Uh? Sorry, but what do you mean by "that way"? Use autocorrection in Word to quickly replace STMM by SetTitleMatchMode? Or use the list of autocorrection stuff in AHK?

Side note: I don't know for Notepad2, but SciTE (and probably a lot of other editors) has abbreviation expansion.

Chris
  • Administrators
  • 10727 posts
  • Last active: Sep 14 2014 06:10 PM
  • Joined: 02 Mar 2004
Sawfoot sent me 900 additional misspellings, mostly based on MS Word's AutoCorrect as described above. I've included these new misspellings in the main AutoCorrect script at http://www.autohotke... ... orrect.ahk

Description: This script corrects about 4700 common English misspellings on-the-fly via hotstrings. It also includes a Win+H hotkey to make it easy to add more misspellings.

Dewi Morgan
  • Members
  • 189 posts
  • Last active: Aug 03 2014 02:50 AM
  • Joined: 03 Oct 2005
Yeesh, looks like you and I have duplicated a lot of work: I, too, got the wiki list, but got the autocorrect list from OpenOffice instead of MSOffice, and a few other sources, like a press release by texttrust, and my own typos.

Here are a few I use in mine, as separate code blocks. The first one corrects the pernicious "-ign" instead of "-ing" ending.

; Fix for -ign instead of -ing.
; Words to exclude: (could probably do this by return without rewrite)
; From: http://www.morewords.com/e nds-with/gn/
::align::align
::antiforeign::antiforeign
::arraign::arraign
::assign::assign
::benign::benign
::campaign::campaign
::champaign::champaign
::codesign::codesign
::coign::coign
::condign::condign
::consign::consign
::coreign::coreign
::cosign::cosign
::countercampaign::countercampaign
::countersign::countersign
::deign::deign
::deraign::deraign
::design::design
::eloign::eloign
::ensign::ensign
::feign::feign
::foreign::foreign
::indign::indign
::malign::malign
::misalign::misalign
::outdesign::outdesign
::overdesign::overdesign
::preassign::preassign
::realign::realign
::reassign::reassign
::redesign::redesign
::reign::reign
::resign::resign
::sign::sign
::sovereign::sovereign
::unbenign::unbenign
:?:ign::ing 

A short one here: TitleCasing zodiac signs (except Cancer of course)
::aries::Aries
::aquarius::Aquarius
::capricorn::Capricorn
; ::cancer::Cancer
::gemini::Gemini
::leo::Leo
::libra::Libra
::pisces::Pisces
::sagittarius::Sagittarius
::scorpio::Scorpio
::taurus::Taurus
::virgo::Virgo

Next is all (well, a good portion of) the accented words in English.
; Accented English words, from, amongst others,
; http://en.wikipedia.org/wiki/List_of_English_words_with_diacritics
; I have included all the ones compatible with reasonable codepages, but 
; commented out those that I do not feel should normally be accented
; in my own writing, either from a clash with an unaccented word (resume),
; or because the unaccented version has become more standard (cafe).
::aesop::Æsop
::a bas::à bas
; ::abbe::abbé
; ::a gogo::à gogo
; ::ago-go::àgo-go
::a la::à la
::ancien regime::Ancien Régime
::angstrom::Ångström
::angstroms::Ångströms
::anime::animé
::animes::animés
; ::anu::añu
::ao dai::ào dái
::apertif::apértif
::apertifs::apértifs
::applique::appliqué
::appliques::appliqués
::apres::après
::arete::arête
::attache::attaché
::attaches::attachés
::auto-da-fe::auto-da-fé
::belle epoque::belle époque
::bete noire::bête noire
::betise::bêtise
::Bjorn::Bjørn
::blase::blasé
::boite::boîte
; ::Bon::Bön
; ::Bootes::Boötes
::boutonniere::boutonnière
; ::bric-a-brac::bric-à-brac
; ::cafe::café
::canape::canapé
::canapes::canapés
; ::canon::cañon
::celebre::célèbre
::celebres::célèbres
::chaines::chaînés
::cinema verite::cinéma vérité
::cinemas verite::cinémas vérité
::cinema verites::cinéma vérités
::champs-elysees::Champs-Élysées
::charge d'affaires::chargé d'affaires
::chateau::château
::chateaux::châteaux
::chateaus::châteaus
::cliche::cliché
::cliched::clichéd
::cliches::clichés
::cloisonne::cloisonné
::consomme::consommé
::consommes::consommés
::communique::communiqué
::communiques::communiqués
::confrere::confrère
::confreres::confrères
; ::continuum::continuüm
; :*:cooperat::coöperat
; ::coopt::coöpt
; ::coordinat::coördinat
::cortege::cortège
::corteges::cortèges
::coup d'etat::coup d'état
::coup d'etats::coup d'états
::coup de tat::coup d'état
::coup de tats::coup d'états
::coup de grace::coup de grâce
::creche::crèche
::creches::crèches
::coulee::coulée
::coulees::coulées
; ::creme::crème
::creme brulee::crème brûlée
::creme brulees::crème brûlées
::creme caramel::crème caramel
::creme caramels::crème caramels
::creme de cacao::crème de cacao
::creme de menthe::crème de menthe
::crepe::crêpe
::crepes::crêpes
::creusa::Creüsa
::crouton::croûton
::croutons::croûtons
::crudites::crudités
::curacao::curaçao
::dais::daïs
::daises::daïses
::debacle::débâcle
::debacles::débâcles
::debutante::débutante
::debutants::débutants
::declasse::déclassé
::decolletage::décolletage
::decollete::décolleté
::decor::décor
::decors::décors
::decoupage::découpage
::degage::dégagé
::deja vu::déjà vu
::demode::démodé
::denoument::dénoument
::derailleur::dérailleur
::derriere::derrière
::deshabille::déshabillé
::detente::détente
::diamante::diamanté
::discotheque::discothèque
::discotheques::discothèques
; ::divorce::divorcé
::divorcee::divorcée
::divorcees::divorcées
; ::Dona::Doña
::doppelganger::doppelgänger
::doppelgangers::doppelgängers
::eclair::éclair
::eclairs::éclairs
::eclat::éclat
::el nino::El Niño
::elan::élan
; ::elite::élite
::emigre::émigré
::emigres::émigrés
::entree::entrée
::entrees::entrées
::entrepot::entrepôt
::entrecote::entrecôte
::epee::épée
::epees::épées
::etouffee::étouffée
; ::etude::étude
; ::expose::exposé
::facade::façade
::facades::façades
::fete::fête
::fetes::fêtes
::faience::faïence
::fiance::fiancé
::fiances::fiancés
::fiancee::fiancée
::fiancees::fiancées
::filmjolk::filmjölk
::fin de siecle::fin de siècle
::flambe::flambé
::flambes::flambés
::fleche::flèche
::Fohn wind::Föhn wind
::folie a deux::folie à deux
::folies a deux::folies à deux
::fouette::fouetté
::frappe::frappé
::frappes::frappés
:?*:fraulein::fräulein
:?*:fuhrer::Führer
::garcon::garçon
::garcons::garçons
::gateau::gâteau
::gateaus::gâteaus
::gateaux::gâteaux
::gemutlichkeit::gemütlichkeit
::glace::glacé
::glogg::glögg
::gewurztraminer::Gewürztraminer
::gotterdammerung::Götterdämmerung
::grafenberg spot::Gräfenberg spot
::habitue::habitué
::ingenue::ingénue
::jager::jäger
::jalapeno::jalapeño
::jalapenos::jalapeños
::jardiniere::jardinière
::krouzek::kroužek
::kummel::kümmel
::kaldolmar::kåldolmar
; ::lame::lamé
::landler::ländler
::langue d'oil::langue d'oïl
::la nina::La Niña
::litterateur::littérateur
::lycee::lycée
::macedoine::macédoine
::macrame::macramé
::maitre d'hotel::maître d'hôtel
::malaguena::malagueña
::manana::mañana
::manege::manège
::manque::manqué
::materiel::matériel
::matinee::matinée
::matinees::matinées
::melange::mélange
::melee::mêlée
::melees::mêlées
::menage a trois::ménage à trois
::menages a trois::ménages à trois
::mesalliance::mésalliance
::metier::métier
; ::Metis::Métis
::minaudiere::minaudière
::mobius strip::Möbius strip
::mobius strips::Möbius strips
::moire::moiré
::moireing::moiréing
::moires::moirés
::motley crue::Mötley Crüe
::motorhead::Motörhead
::naif::naïf
::naifs::naïfs
::naive::naïve
::naiver::naïver
::naives::naïves
::naivete::naïveté
; ::ne::né
::nee::née
::negligee::negligée
::negligees::negligées
::neufchatel cheese::Neufchâtel cheese
::nez perce::Nez Percé
::noël::Noël
::noëls::Noëls
::número uno::número uno
::objet trouve::objet trouvé
::objets trouve::objets trouvé
; ::ole::olé
::ombre::ombré
::ombres::ombrés
::omerta::omertà
; :?:oology::oölogy
::opera bouffe::opéra bouffe
::operas bouffe::opéras bouffe
::opera comique::opéra comique
::operas comique::opéras comique
; ::opium::opïum
; ::ore::öre
; ::ore::øre
::outre::outré
::papier-mache::papier-mâché
::passe::passé
; ::pate::pâte
; ::pate::pâté
::piece de resistance::pièce de résistance
::pied-a-terre::pied-à-terre
::plisse::plissé
::pina colada::Piña Colada
::pina coladas::Piña Coladas
::pinata::piñata
::pinatas::piñatas
::pinon::piñon
::pinons::piñons
::pirana::piraña
::pique::piqué
::piqued::piquéd
::più::più
::plie::plié
::precis::précis
::polsa::pölsa
; ::preëmpt
::premiere::première
::premiered::premièred
::premieres::premières
::premiering::premièring
::pret-a-porter::prêt-à-porter
::protoge::protégé
::protege::protégé
::proteged::protégéd
::proteges::protégés
::protegee::protégée
::protegees::protégées
::protegeed::protégéed
::puree::purée
::pureed::puréed
::purees::purées
::Quebecois::Québécois
::raison d'etre::raison d'être
::recherche::recherché
::reclame::réclame
; ::reenter::reënter
; ::resume::résumé
::résume::résumé
::resumé::résumé
::résumes::résumés
::resumés::résumés
; ::residuum::residuüm
::retrousse::retroussé
::risque::risqué
; ::role::rôle
::riviere::rivière
::roman a clef::roman à clef
; ::rose::rosé
::roue::roué
::saute::sauté
::sauted::sautéd
::seance::séance
::seances::séances
::senor::señor
::senors::señors
::senora::señora
::senoras::señoras
::senorita::señorita
::senoritas::señoritas
::sinn fein::Sinn Féin
::smorgasbord::smörgåsbord
::smorgasbords::smörgåsbords
::smorgastarta::smörgåstårta
::soigne::soigné
::soiree::soirée
::soireed::soiréed
::soirees::soirées
::souffle::soufflé
::souffles::soufflés
::soupcon::soupçon
::soupcons::soupçons
::surstromming::surströmming
::tete-a-tete::tête-à-tête
::tete-a-tetes::tête-à-têtes
::touche::touché
::tourtiere::tourtière
::uber::über
::ubermensch::Übermensch
::ubermensches::Übermensches
::ventre a terre::ventre à terre
::vicuna::vicuña
::vin rose::vin rosé
::vins rose::vins rosé
::vis a vis::vis à vis
::voila::voilà

Next, all the word stems and tails. I expected these to slow down my machine a lot, but have not noticed any significant increase in CPU usage when typing.

This has a double advantage: it significantly reduces the size of the wordlist, and it also means that it catches words that I would not normally have bothered to put in the list, like "abbreviatedly".

Some of them are also doing stuff that just wouldn't be possible to fix any other way.

; prefixes are: *=any ending, ?=any beginning.

; Word endings
:?:bilites::bilities
:?:bilties::bilities
:?:bilty::bility
:?:, btu::, but ; Not just replacing "btu", as that is a unit of heat.
:?:n;t::n't
::sice::since  ; Must precede the following line!
:?:sice::sive
:?:t eh:: the
:?:t hem:: them

; Word beginnings
:*:abondon::abandon
:*:abreviat::abbreviat
:*:accomadat::accommodat
:*:acheiv::achiev
:*:achievment::achievement
:*:acquaintence::acquaintance
:*:adquir::acquir
:*:aquisition::acquisition
:*:agravat::aggravat
:*:allign::align
:*:ameria::America
:*:archaelog::archaeolog
:*:archtyp::archetyp
:*:archetect::architect
:*:arguement::argument
:*:assasin::assassin
:*:asociat::associat
:*:assymetr::asymmet
:*:atempt::attempt
:*:atribut::attribut
:*:avaialb::availab
:*:catagor::categor
:*:comision::commission
:*:contien::conscien
:*:critisi::critici
:*:crticis::criticis
:*:critiz::criticiz
:*:desicant::desiccant
:*:desicat::desiccat
:*:develope::develop
:*:dissapoint::disappoint
:*:divsion::division
:*:dcument::document
:*:embarass::embarrass
:*:emminent::eminent
:*:empahs::emphas
:*:enlargment::enlargement
:*:envirom::environm
:*:enviorment::environment
:*:excede::exceed
:*:exilerat::exhilarat
:*:extraterrestial::extraterrestrial
:*:faciliat::facilitat
:*:garantee::guaranteed
:*:guerrila::guerrilla
:*:guidlin::guidelin
:*:girat::gyrat
:*:harasm::harassm
:*:immitat::imitat
:*:imigra::immigra
:*:impliment::implement
:*:inlcud::includ
:*:incompatabili::incompatibili
:*:incompatiblit::incompatibilit
:*:indenpenden::independen
:*:indisputib::indisputab
:*:isntall::install
:*:insitut::institut
:*:knwo::know
:*:lsit::list
:*:mountian::mountain
:*:nmae::name
:*:necassa::necessa
:*:negociat::negotiat
:*:neigbor::neighbour
:*:noticibl::noticeabl
:*:ocasion::occasion
:*:occuranc::occurrence
:*:priveledg::privileg
:*:recie::recei
:*:recived::received
:*:reciver::receiver
:*:recepient::recipient
:*:reccomend::recommend
:*:recquir::requir
:*:requirment::requirement
:*:respomd::respond
:*:repons::respons
:*:ressurect::resurrect
:*:seperat::separat
:*:sevic::servic
:*:smoe::some
:*:weild::wield

A few words I skip
; ::adress::address - Or "A dress"
; ::afair::affair - Could also be "afar", "Afar" (place in Africa), "a fair" ...
; ::agin::again  - Could also be "a gin", "aging"
; ::aledge::allege or "A ledge"
; ::anual::annual or "manual"
; ::aparent::apparent or a parent
; ::assasined::assassinated Broken by following, but no great loss.
; ::assosication::assassination Far more likely to be "association"
; ::attened::attended or attend
; ::availalbe::available Disabled by the others, but small price.
; ::indispensible::indispensable Agree to disagree?
; ::indispensable::indispensible Agree to disagree?
; ::manoeuver::maneuver agree to disagree?
; ::manouver::manoeuvre agree to disagree?
; ::mit::mitt Or "MIT" or german "with"
; ::personel::personal Or "personnel"
; ::snese::sneeze ; More likely to be sense. Leave to spellchecker
; :?:t he:: the  ; Can't use this. Needs to be cleverer.
; ::throught::throughout - could be through, thought - leave for spellchecker.
; ::vistors::visitors - could be "vistas", leave for spellchecker
; ::wanna::want to - often deliberate, leave for spellchecker.
; ::woulf::would ; Could also be wolf - leave for spellchecker.


And a list of entries that are in mine but not yours:
; Typoed words, from, amongst others, 
; - http://en.wikipedia.org/wiki/Wikipedia:Typo
; - the OpenOffice autocorrect list
; - TextTrust's press release
; - my own typos, added as I make them.
; I've avoided typos where there is more than one likely interpretation.
; This is because I feel it is better to have these typos highlighted by
; my inline spellchecker than to "correct" them incorrectly.
; I have also tried to avoid words where it is a clear matter of personal
;  style "wanna"<->"want to", commonwealth<->US spelling, etc.
::abscence::absence
::abcense::absense
::accension::accession
::accesorise::accessorise
::acording::according
::acocunt::account
::achive::achieve
::aquit::acquit
::aquitted::acquitted
::additinal::additional
::addres::address
::adantage::advantage
::affilliate::affiliate
::alege::allege
::aleged::alleged
::alusion::allusion
::alonw::alone
::alreayd::already
::alsation::Alsatian
::allwasy::always
::andteh::and the
::anotehr::another
::anti-semetic::anti-Semitic
::apenines::Apennines
::apparant::apparent
::appealling::appealing
::appearence::appearance
::arbouretum::arboretum
::archimedian::Archimedean
::arond::around
::assisnate::assassinate
::assassintation::assassination
::asssassans::assassins
::assesment::assessment
::assistent::assistant
::athenean::Athenian
::atheneans::Athenians
::attatch::attach
::atention::attention
::attributred::attributed
::austrailia::Australia
::australian::Australian
::availablility::availability
::aywa::away
::abck::back
::barbeque::barbecue
::eb::be
::becoe::become
::becomming::becoming
::befoer::before
::behavour::behaviour
::beleiev::believe
::bellweather::bellwether
::benefical::beneficial
::bernouilli::Bernoulli
::betweeen::between
::bicep::biceps
::blitzkreig::Blitzkrieg
::bonnano::Bonanno
::brasillian::Brazilian
::britian::Britain
::brittish::British
::buddah::Buddha
::bouy::buoy
::busineses::businesses
::ceasar::Caesar
::calcullated::calculated
::calander::calendar
::califronia::California
::califronian::Californian
::callipigian::callipygian
::cambrige::Cambridge
::capetown::Cape Town
::carcas::carcass
::carribbean::Caribbean
::carmalite::Carmelite
::carthagian::Carthaginian
::categiory::category
::caucasion::Caucasian
::celcius::Celsius
::champange::Champagne
::caharcter::character
::caht::chat
::childrens::children's
::chilli::chili
::cincinatti::Cincinnati
::cirtus::citrus
::collectable::collectible
::colection::collection
::colum::column
::comander::commander
::comemmorate::commemorate
::comit::commit
::competely::completely
::concieve::conceive
::conneticut::Connecticut
::consumber::consumer
::comntains::contains
::could of::could have
::coururier::courier
::criticing::criticising
::cilinder::cylinder
::dakiri::daiquiri
::dardenelles::Dardanelles
::dael::deal
::decaffinated::decaffeinated
::decathalon::decathlon
::decisons::decisions
::deafult::default
::defencive::defensive
::degredation::degradation
::damenor::demeanour
::deparment::department
::descriptoin::description
::develloped::developed
::diarhea::diarrhoea
::didint::didn't
::difefrent::different
::diffculties::difficulties
::diffculty::difficulty
::diptheria::diphtheria
::disapear::disappear
::diciplin::discipline
::desease::disease
::dispell::dispel
::dispeled::dispelled
::dispeling::dispelling
::dispells::dispels
::distribusion::distribution
::docuement::documents
::doens't::doesn't
::do'nt::don't
::dravadian::Dravidian
::deram::dream
::derams::dreams
::drunkeness::drunkenness
::dumbell::dumbbell
::dieing::dying
::eachotehr::eachother
::esctasy::ecstasy
::eigth::eighth
::eight o::eight o
::embarrased::embarrassed
::embarrasing::embarrassing
::embarrasment::embarrassment
::enlish::English
::especally::especially
::expresso::espresso
::europian::European
::europians::Europeans
::exisiting::existing
::fascitious::facetious
::farenheit::Fahrenheit
::familair::familiar
::facia::fascia
::fued::feud
::firey::fiery
::fiel::file
::fiels::files
::ficed::fixed
::flemmish::Flemish
::flouride::fluoride
::formalhaut::Fomalhaut
::forwrd::forward
::fransiscan::Franciscan
::fransiscans::Franciscans
::frmo::from
::firc::furc
::galations::Galatians
::gameboy::Game Boy
::ghandi::Gandhi
::gentlemens::gentlemen's
::guilia::Giulia
::guiliani::Giuliani
::guilio::Giulio
::guiseppe::Giuseppe
::godounov::Godunov
::giid::good
::gothenberg::Gothenburg
::gottleib::Gottlieb
::graffitti::graffiti
::guadulupe::Guadalupe
::guatamala::Guatemala
::guatamalan::Guatemalan
::guiness::Guinness
::habsbourg::Habsburg
::hallowean::Halloween
::hace::hare
::hasn;t::hasn't
::haveing::having
::heidelburg::Heidelberg
::hier::heir
::heirarchy::heirarchy
::ehre::here
::heirarchical::hierarchical
::heirarchies::hierarchies
::hersuit::hirsute
::honourarium::honorarium
::honourific::honorific
::housr::hours
::humer::humour
::humerous::humourous
::i;d::I'd
::ignorence::ignorance
::i;ll::I'll
::ilumination::illumination
::imanent::imminent
::incomptable::incompatible
::independece::independence
::independendet::independent
::infinitly::infinitely
::inate::innate
::inumerable::innumerable
::innoculate::inoculate
::insufficent::insufficient
::insufficently::insufficiently
::inteh::in the
::isn;t::isn't
::israelies::Israelis
::ihaca::Ithaca
::japanes::Japanese
::jewelery::jewellery
::johanine::Johannine
::jospeh::Joseph
::juadaism::Judaism
::judgment::judgement
::knowldge::knowledge
::labled::labelled
::labourious::laborious
::lazer::laser
::lasoo::lasso
::lastest::latest
::elast::least
::lybia::Libya
::lightening::lightning
::amkes::makes
::malcom::Malcolm
::managable::manageable
::mrak::mark
::maked::marked
::massachussets::Massachusetts
::menat::meant
::medieval::mediaeval
::mediteranean::Mediterranean
::momento::memento
::micheal::Michael
::michagan::Michigan
::missisipi::Mississippi
::misouri::Missouri
::mythraic::Mithraic
::monestary::monastery
::monkies::monkeys
::monserrat::Montserrat
::moreso::more so
::morisette::Morissette
::mysefl::myself
::napoleonian::Napoleonic
::nazereth::Nazareth
::negotation::negotiation
::foundland::Newfoundland
::newyorker::New Yorker
::neice::niece
::notive::notice
::nullabour::Nullarbor
::nuptual::nuptial
::nuremburg::Nuremberg
::obsolecence::obsolescence
::occationally::occasionally
::odouriferous::odoriferous
::odourous::odorous
::fo::of
::omnious::ominous
::onomatopeia::onomatopoeia
::orgin::origin
::orthagonal::orthogonal
::orthagonally::orthogonally
::ohter::other
::pwn::own
::palistian::Palestinian
::palistinians::Palestinians
::papanicalou::Papanicolaou
::paralell::parallel
::peloponnes::Peloponnesus
::peleton::peloton
::peolpe::people
::performes::performs
::pharoah::Pharaoh
::phillipine::Philippine
::philipines::Philippines
::phonecian::Phoenecian
::pheonix::phoenix ; No caps, could be the bird
::palce::place
::portugese::Portuguese
::potatoe::potato
::postdam::Potsdam
::pre-Colombian::pre-Columbian
::premonasterians::Premonstratensians
::presance::presence
::porblem::problem
::procede::proceed
::proceded::proceeded
::proceding::proceeding
::procedes::proceeds
::profesion::profession
::protien::protein
::protem::pro tem
::pucini::Puccini
::puertorrican::Puerto Rican
::puertorricans::Puerto Ricans
::questionnair::questionnaire
::rancourous::rancorous
::rasberry::raspberry
::ratehr::rather
::relized::realised
::erally::really
::receieve::receive
::recommedations::recommendations
::recyling::recycling
::representativs::representatives
::requred::required
::resurgance::resurgence
::rigeur::rigueur
::rockerfeller::Rockefeller
::sandess::sadness
::sanhedrim::Sanhedrin
::sasy::says
::scedule::schedule
::scholarstic::scholastic
::sieze::seize
::siezed::seized
::siezing::seizing
::separeate::separate
::sepulchure::sepulchre
::shoudln't::shouldn't
::silicone chip::silicon chip
::simalar::similar
::sice::since ; See also -sive
::sixtin::Sistine
::skagerak::Skagerrak
::smoothe::smooth
::smoothes::smooths
::soveits::soviets
::speciallized::specialised
::specificalyl::specifically
::sportscar::sports car
::strat::start
::suffcient::sufficient
::suffciently::sufficiently
::suggestable::suggestible
::supercede::supersede
::surley::surely
::surrended::surrendered
::talkign::talking
::televize::televise
::thast::that's
::hte::the
::theather::theatre
::hten::then
::htese::these
::they;ll::they'll
::they;re::they're
::they;ve::they've
::thikning::thinking
::throuhg::through
::tiget::tiger
::tiem::time
::tiogether::together
::tolkein::Tolkien
::totalyl::totally
::transcripting::transcribing
::triathalon::triathlon
::turnk::trunk
::tuscon::Tucson
::ukranian::Ukrainian
::ukelele::ukulele
::alterior::ulterior
::unitesStates::UnitedStates
::unitedStates::United States
::unmanouverable::unmanoeuvrable
::vaccume::vacuum
::varous::various
::virgina::Virginia
::volkswagon::Volkswagen
::wan tit::want it
::wether::weather
::wiegh::weigh
::wehre::where
::hwich::which
::withdrawl::withdrawal
::wo'nt::won't
::x-Box::Xbox
::eyar::year
::eyars::years
::yelow::yellow
::yoiu::you
::sionist::Zionist
::sionists::Zionists

Finally: handy sorting tip. I use unix' sort to sort my wordlist by the correctly-spelled word, then the incorrectly spelled one, and strip duplicates. To do this I use the command:
sort -u -t: -k5 < infile > outfile

Please do feel free to use any of the lists in this post: as mere lists, they are not subject to copyright. If there is sufficient creativity in any part of the code to be copyrightable, I release it to the public domain, and you may do as you wish with it, without attribution or limits.

Chris
  • Administrators
  • 10727 posts
  • Last active: Sep 14 2014 06:10 PM
  • Joined: 02 Mar 2004
Sorry for the delayed reply. Thanks for posting your lists and additions. If you or anyone else would like to take charge of maintaining the master spelling-correction script, that would be helpful. However, it seems best to omit the really obscure/personal misspellings to prevent the size from ballooning too much. This is because the size affects performance: hotstrings weren't really designed to support thousands of abbreviations (but apparently it performs well enough, especially with Moore's Law as the wind in our sails).

Dewi Morgan
  • Members
  • 189 posts
  • Last active: Aug 03 2014 02:50 AM
  • Joined: 03 Oct 2005
Happy to maintain it, if you tell me what needs doing and where I should stick the uploaded version. In the absense of guidance, I'll create a wiki page similar to http://www.autohotke... ... er_Control and upload to ~anonymous in the same way as on that page.

Things I'd probably do, unless told not to:

1) Personally, other than sections which need to be separated because they perform different tasks that users may want to disable en masse (the -ing fix, diacritics) I'd be inclined to merge the lists from various sources in order to prevent duplicates, and because the source isn't relevant to the user. Sources should probably be credited in the comments at the top of the script instead. This would prevent failure to credit sources for words that had been removed from their section due to duplication, and would mean that a single alphabetised list would be considerably easier to search.

Most importantly, it'll be less work for me. So let me know if you definitely want the sections kept separate.

2) I hate global hotkeys, especially where they are hardcoded. I know, I know, a heretical idea for an AHK user. But, for example, I have three applications that try to make ctrl-alt-I do stuff even if they are not the focused window, and I hate the clashing mess it creates.

So to globally grab Win+H for a function that some people will not even use seems intrusive, and will break any program that wants to use that hotkey. So I'd be inclined to instead have "add an entry" as a rightclick context menu thing, with an optional user-configurable hotkey.

3) I would probably retain all typos from all current lists. While I agree that "it seems best to omit the really obscure/personal misspellings to prevent the size from ballooning too much", figuring out which words those are would be awfully tricky and time consuming, unless there's a simple way that I'm missing. I have tended to only add terms where they're regular typos, where they're included in "most frequently misspelled" lists (eg the TextTrust press release), or where they're included in "autocorrect" lists. This prettymuch guarantees that there'll be a fair number of people who'll make each typo.

The only two exceptions are the wikipedia list (which is still made up of fairly common typosthat have been made by wikipedia contributors, but many are not critically frequent), and the diacritics list. My reasoning for including the latter is that creating diacritics in most keyboard layouts is complex enough that most people will not know how to create, say, an umlaut. So, while it contains uncommon words, the diacritics section is valuable because it provides correct spellings for even the rare words which would be otherwise impossible for people to type.

In the extreme case, it could keep a count of which typos people make and how often, and auto-upload that anonymously every month or so. That'd show which corrections are not being used. But the CPU taken by the monitoring would considerably outweigh any saving made.

4) An application exclusion list is important, I feel: some applications should probably be excluded, such as those with their own autoreplace systems, programming IDEs, etc. The diacritics section probably needs a longer list, and should have a context-menu option to disable it completely.

5) Either maintain two lists (commonwealth and US spellings), or have a toggle to switch between them. Though where possible, most corrections should probably just avoid the distinction, eg correcting "collour" to "colour", and "collor" to "color", reguardless of their locale preferences.

==
Sadly, I am largely unaffected by Moore's law, so as a test I took your list and appended my code blocks to the end. According to the task manager, on my 500MHz machine, cpu usage hit 4% if I typed frantically. If I just dragged my fingers across the keyboard, I got it to hit 9%.

On my 1.2GHz machine, I could not get higher than 0% CPU by typing, or 4% by sliding my hands up and down the keyboard frantically.

These seem reasonable figures, comparable to Notepad's own CPU usage from the same input. They would be very slightly improved by removing duplicates.

Incidentally I found a (probably-known) bug in the forums "copy" link while doing that test: if you click "copy" to copy the diacritics block, all non-ascii characters are replaced by "?" but if you manually highlight and copy, this does not happen.

Chris
  • Administrators
  • 10727 posts
  • Last active: Sep 14 2014 06:10 PM
  • Joined: 02 Mar 2004

Happy to maintain it, if you tell me what needs doing and where I should stick the uploaded version. In the absense of guidance, I'll create a wiki page similar to www.autohotkey.net to provide best performance). In other words, I prefer no intermediate page unless you think some kind of introduction or documentation becomes necessary.

1) Personally, other than sections which need to be separated because they perform different tasks that users may want to disable en masse (the -ing fix, diacritics) I'd be inclined to merge the lists from various sources in order to prevent duplicates, and because the source isn't relevant to the user. Sources should probably be credited in the comments at the top of the script instead. This would prevent failure to credit sources for words that had been removed from their section due to duplication, and would mean that a single alphabetised list would be considerably easier to search.

That sounds great.

2) ...So to globally grab Win+H for a function that some people will not even use seems intrusive, and will break any program that wants to use that hotkey. So I'd be inclined to instead have "add an entry" as a rightclick context menu thing, with an optional user-configurable hotkey.

I believe the hotkey was originally Jim Biancolo's idea. From a benefit/cost point-of-view, having some kind of global hotkey enabled by default probably does more good than harm, especially when you take into account existing users (i.e. backward compatibility). On the other hand, existing users would have to explicitly upgrade to the new script you create, so maybe disabling the hotkey by default would be acceptable.

3) I would probably retain all typos from all current lists. While I agree that "it seems best to omit the really obscure/personal misspellings to prevent the size from ballooning too much", figuring out which words those are would be awfully tricky and time consuming, unless there's a simple way that I'm missing. I have tended to only add terms where they're regular typos, where they're included in "most frequently misspelled" lists (eg the TextTrust press release), or where they're included in "autocorrect" lists. This prettymuch guarantees that there'll be a fair number of people who'll make each typo.

That sounds reasonable. I just wanted to avoid having more than 30% of the list comprised by off-the-wall misspellings that most people would frown upon if they actually saw them.

...the diacritics list. My reasoning for including the latter is that creating diacritics in most keyboard layouts is complex enough that most people will not know how to create, say, an umlaut.

I'm wary of including that due to possible interference with programming languages such as AutoHotkey, which uses backtick as an escape symbol. However, I'm not sure exactly what you have in mind, so maybe there's no cause for concern.

In the extreme case, it could keep a count of which typos people make and how often, and auto-upload that anonymously every month or so. That'd show which corrections are not being used. But the CPU taken by the monitoring would considerably outweigh any saving made.

That would be an interesting project; but I agree that it's too costly.

4) An application exclusion list is important, I feel: some applications should probably be excluded, such as those with their own autoreplace systems, programming IDEs, etc. The diacritics section probably needs a longer list, and should have a context-menu option to disable it completely.

If it's verified that the autocorrect script actually interferes with a particular app, I agree that it would be nice to exclude it. Perhaps GroupAdd and #IfWinNotActive ahk_group will be sufficient.

5) Either maintain two lists (commonwealth and US spellings), or have a toggle to switch between them. Though where possible, most corrections should probably just avoid the distinction, eg correcting "collour" to "colour", and "collor" to "color", reguardless of their locale preferences.

Although that's pretty ambitious, I'm sure many users would welcome it if you have the time.

Sadly, I am largely unaffected by Moore's law, so as a test I took your list and appended my code blocks to the end. According to the task manager, on my 500MHz machine, cpu usage hit 4% if I typed frantically. If I just dragged my fingers across the keyboard, I got it to hit 9%.

Ah, it's good to know the performance is acceptable even on older hardware. Thanks for the test.

Incidentally I found a (probably-known) bug in the forums "copy" link while doing that test: if you click "copy" to copy the diacritics block, all non-ascii characters are replaced by "?" but if you manually highlight and copy, this does not happen.

I'll PM that to Titan (its author) in case he can fix it.

Thanks for making auto-correct better for us all.

Dewi Morgan
  • Members
  • 189 posts
  • Last active: Aug 03 2014 02:50 AM
  • Joined: 03 Oct 2005

http://www.autohotkey.com/wiki/index.php?title=Internet_Explorer_Control and upload to ~anonymous in the same way as on that page.

I'd prefer a one-click download; so you could put the file anywhere that it stays a .ahk file (perhaps www.autohotkey.net to provide best performance).


Yep, the ~anonymous place I mentioned (and which I suspect you were referring to when you said "www.autohotkey.net") is the one-click download, eg: http://www.autohotke... ... ontrol.ahk

I just thought having a wiki page as well would be nice. Though thinking about it, I can't think of much to say about it, so maybe I'll save myself the trouble :)

existing users would have to explicitly upgrade to the new script you create,


That's a good point, and could be an issue for the future. People will have their own wordlists and will find it irritating to repeatedly have to cut-n-paste their wordlists into the updates. Should personal wordlists be a separate #included file?

Also, people will always disagree with some of the autocorrections, and will remove or modify them. But when they upgrade, going through the new list to try to remember which ones they removed or changed, to do it again, would be really irritating. Perhaps I should also provide each update as a diff to the previous version, for those who want to upgrade existing modified lists.

maybe disabling the hotkey by default would be acceptable.

I'm not fussed either way: I'll have it on by default, but will try to provide the option turn it off or remap it, and to access the same functionality through rightclick for when they can't remember the hotkey :)

I'm wary of including that due to possible interference with programming languages such as AutoHotkey, which uses backtick as an escape symbol. However, I'm not sure exactly what you have in mind, so maybe there's no cause for concern.

Possibly not - by "the diacritics list" I meant the "Next is all (well, a good portion of) the accented words in English" block from my post above.

I'm inclined not to include the zodiac signs block just above that: including that opens the door to titlecasing all sorts of other proper nouns, like people's names, places, weekdays, months, SI units and so on. And that's a project in itself. It's also the sort of thing "that most people would frown upon if they actually saw them."

That would be an interesting project; but I agree that it's too costly.

I may be wrong about the CPU cost though, since the monitoring (incrementing a counter) would only happen when a hotstring triggered - it would not be something that ran during normal use. I still think it's too costly in terms of user privacy (and developer time, and lines of code, etc), though.

If it's verified that the autocorrect script actually interferes with a particular app, I agree that it would be nice to exclude it. Perhaps GroupAdd and #IfWinNotActive ahk_group will be sufficient.

Yup, that's what I was thinking. I was also optimistically imagining something where people could say "exclude THIS window" with a hotkey or something.

Although that's pretty ambitious, I'm sure many users would welcome it if you have the time.

I have mostly maintained my list that way, but made some concessions to the fact that I live in the UK. I can just search through for "ou" and other common commonwealth forms and figure out if they need to be in the "specialist" section. Finding the americanisms will be harder. But I guess its a "living document", so I can fix 'em as I find 'em :)

Chris
  • Administrators
  • 10727 posts
  • Last active: Sep 14 2014 06:10 PM
  • Joined: 02 Mar 2004
Sorry for the late reply.

People will have their own wordlists and will find it irritating to repeatedly have to cut-n-paste their wordlists into the updates. Should personal wordlists be a separate #included file?

Perhaps that is best. By means of #Include's *i option, you can optionally include a list of user/personal corrections.

Thanks for taking on this project.

dwaynek
  • Members
  • 73 posts
  • Last active: Oct 12 2013 12:20 AM
  • Joined: 20 Dec 2005
this is awesome! but i'd like to implement some form of tooltip to show the text being replaced before it replaces it.

does anyone have an idea how i'd do that?

engunneer
  • Moderators
  • 9162 posts
  • Last active: Sep 12 2014 10:36 PM
  • Joined: 30 Aug 2005
search for regex powered dynamic hotstrings. you will have to add the tooltip code, but I think it can be done.

Dewi Morgan
  • Members
  • 189 posts
  • Last active: Aug 03 2014 02:50 AM
  • Joined: 03 Oct 2005
I promised some time ago to update this... and just had a flopsweat moment where I thought I'd deleted my local version. Let's see if I can get this done tonight.

Let me know if there's anything specific you want in!

[Edit]