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 OpusAppBy trial-and-error I figured out there were 926 entries.
AutoReplace
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...
Might be solved/requested already. :?:The only practical use is the hotstring (abbreviation) stuff, like changing © to ©.
Is there an option to connect MS (Win)Word's AutoCorrection to AHK (eg. to use the AHK command reference/index) that way ??
Side note: I don't know for Notepad2, but SciTE (and probably a lot of other editors) has abbreviation expansion.
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.
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.
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.
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.
That sounds great.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.
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.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.
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.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.
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....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.
That would be an interesting project; but I agree that it's too costly.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.
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.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.
Although that's pretty ambitious, I'm sure many users would welcome it if you have the time.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.
Ah, it's good to know the performance is acceptable even on older hardware. Thanks for the test.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%.
I'll PM that to Titan (its author) in case he can fix it.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.
Thanks for making auto-correct better for us all.
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).http://www.autohotkey.com/wiki/index.php?title=Internet_Explorer_Control and upload to ~anonymous in the same way as on that page.
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: https://ahknet.autoh... ... 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.
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 :)maybe disabling the hotkey by default would be acceptable.
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 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.
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."
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.That would be an interesting project; but I agree that it's too costly.
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.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.
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 :)Although that's pretty ambitious, I'm sure many users would welcome it if you have the time.
Perhaps that is best. By means of #Include's *i option, you can optionally include a list of user/personal corrections.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?
Thanks for taking on this project.
does anyone have an idea how i'd do that?
Let me know if there's anything specific you want in!
[Edit]