From c80b6225f1faaaba255d4ea9899a006798020c1c Mon Sep 17 00:00:00 2001 From: Martin Ball Date: Sun, 1 Nov 2026 18:37:02 +0000 Subject: [PATCH] CP1.2: English without Language data uses the whole Moby list and every installed English dictionary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review of craft-libs#482: - The built-in fallback is now the full public-domain Moby word list (data/en-words.dic, words only, 343,992 bytes, from craft-i18n's en-us.dic by examples/en_words.rs) plus WordCraft's own en-extra.txt (MIT OR Apache-2.0). An unknown word is misspelled; the near-miss scan (which flagged fiber, theater, organize… and took 14 s on a 2,000-word token) is gone. Suggestions are the words one edit away, looked up, for words of up to 32 letters. spelling_scales_over_one_long_token runs without the data, with a time bound. - English Hunspell dictionaries ignore compounding (COMPOUNDMIN, COMPOUNDRULE…; their ONLYINCOMPOUND stems are left out) and OCONV instead of refusing the file, and a file that can't be read is skipped for the next name or folder. - A load that started before english::reload() isn't kept (reloads counter, as slot.rs); Englishes that use the same .dic share one copy. en-GB/en-CA falling back to en_US is documented. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01FypgCX8LsYYE8fsj4byBm2 --- ATTRIBUTION.md | 3 +- NOTICE | 7 +- crates/proof/README.md | 35 +- crates/proof/data/en-core.txt | 11372 ---------------------------- crates/proof/data/en-extra.txt | 241 + crates/proof/data/en-words.dic | Bin 0 -> 343992 bytes crates/proof/examples/en_core.rs | 70 - crates/proof/examples/en_words.rs | 28 + crates/proof/src/affix.rs | 71 +- crates/proof/src/english.rs | 396 +- crates/proof/src/hunspell.rs | 27 + crates/proof/src/lib.rs | 91 +- crates/proof/src/no_data.rs | 22 +- crates/proof/src/vi.rs | 2 +- 14 files changed, 738 insertions(+), 11627 deletions(-) delete mode 100644 crates/proof/data/en-core.txt create mode 100644 crates/proof/data/en-extra.txt create mode 100644 crates/proof/data/en-words.dic delete mode 100644 crates/proof/examples/en_core.rs create mode 100644 crates/proof/examples/en_words.rs diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 6297e0ff..30386eac 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -14,7 +14,8 @@ author, source and license. Library code and original assets are under the repos | `crates/cms/tests/data/FOGRA39.txt` (unmodified) | Fogra | [Fogra characterisation data](https://fogra.org/en/downloads/work-tools/characterisation-data), `FOGRA39_to_FOGRA60_v2.zip` | Fogra terms: free use and redistribution, unmodified, with Fogra identified as the source; "FOGRA39" identifies the reference data only and implies no certification, approval or endorsement by Fogra (full text in [NOTICE](NOTICE)) | | `crates/i18n/data/collation.postcard` | Unicode, Inc. (ICU 78.1 collation data, CLDR 48.2.1); generated by `crates/i18n/data/generate-collation.sh` | [ICU](https://github.com/unicode-org/icu/releases/tag/release-78.1rc) | Unicode-3.0 | | `crates/text/assets/hyphen/en-us.dic` | Grady Ward (Moby Hyphenator II), converted by DesignCraft | [Project Gutenberg eBook #3204](https://www.gutenberg.org/ebooks/3204) | Public domain | -| `crates/proof/data/en-core.txt` | Grady Ward (Moby Hyphenator II word list); selected by craft-proof contributors with `crates/proof/examples/en_core.rs`, ranked by word frequency in 50 public-domain Project Gutenberg books | [Project Gutenberg eBook #3204](https://www.gutenberg.org/ebooks/3204), via craft-i18n `language-data/en-us/en-us.dic` | Public domain | +| `crates/proof/data/en-words.dic` | Grady Ward (Moby Hyphenator II word list); break points dropped by craft-proof contributors with `crates/proof/examples/en_words.rs` | [Project Gutenberg eBook #3204](https://www.gutenberg.org/ebooks/3204), via craft-i18n `language-data/en-us/en-us.dic` | Public domain | +| `crates/proof/data/en-extra.txt` | WordCraft contributors (original list, no other dictionary copied) | craft-i18n `language-data/en-us/en-extra.txt` | MIT OR Apache-2.0 | | `crates/text/assets/hyphen/en-us.pat` | DesignCraft contributors, trained from the Moby Hyphenator II list | `crates/text/examples/hyphgen.rs` | CC0-1.0 | | Patterns embedded through `hypher` (optional `craft-text` language features) | hyph-utf8 authors, per language | [tex-hyphen](https://github.com/hyphenation/tex-hyphen), as packaged in [hypher](https://github.com/typst/hypher/tree/main/patterns) | Per file header: LPPL, MIT, BSD-3-Clause, Unlicense or a permit-any-use notice (or a choice including one); Slovak (`hyph-sk.tex`, embedded whenever `hypher/slovak` is on: feature `slovak-gpl`, or another dependency through feature unification) is GPL-2.0-or-later; Spanish (`hyph-es.tex` 5.0, Javier Bezos, CervanTeX) is MIT | | Word-break dictionaries and LSTM models embedded through `icu_segmenter_data` (optional `craft-text` features `thai`, `lao`, `khmer`, `burmese`) | Unicode, Inc. and ICU4X contributors | [ICU4X](https://github.com/unicode-org/icu4x) | Unicode-3.0 | diff --git a/NOTICE b/NOTICE index c2de6bed..1c7ac9c9 100644 --- a/NOTICE +++ b/NOTICE @@ -21,9 +21,10 @@ crates/cms/tests/data/FOGRA39.txt: FOGRA39 characterisation data, distributed un imply certification, approval or endorsement by Fogra." crates/text/assets/hyphen/en-us.dic: public domain, derived from the Moby Hyphenator II list by Grady Ward (Project Gutenberg eBook #3204). -crates/proof/data/en-core.txt: public domain, about 11,000 words of the Moby Hyphenator II list by - Grady Ward (Project Gutenberg eBook #3204), ranked by frequency in public-domain Project - Gutenberg books. +crates/proof/data/en-words.dic: public domain, the words of the Moby Hyphenator II list by Grady + Ward (Project Gutenberg eBook #3204), without its break points. +crates/proof/data/en-extra.txt: MIT OR Apache-2.0, WordCraft contributors' own list of modern + English words (a copy of craft-i18n's language-data/en-us/en-extra.txt). crates/text/assets/hyphen/en-us.pat: CC0-1.0, trained from en-us.dic by DesignCraft's trainer. Hyphenation patterns for other languages, embedded through the hypher crate only when the matching craft-text feature is enabled (none are by default). They come from hyph-utf8, diff --git a/crates/proof/README.md b/crates/proof/README.md index b909bfb3..57d80673 100644 --- a/crates/proof/README.md +++ b/crates/proof/README.md @@ -13,7 +13,7 @@ craft-proof = { git = "https://github.com/storytold/craft-libs", rev = " | Language | Spelling | Grammar | Hyphenation | |---|---|---|---| -| English (en-US, en-GB and the British-spelling Englishes, en-CA) | Moby word list + `en-extra.txt`, dialect variants (`en-variants.txt`); without them the installed Hunspell English, else the built-in core list ([below](#english-is-always-checked)) | yes | Moby list, our patterns, heuristic | +| English (en-US, en-GB and the British-spelling Englishes, en-CA) | Moby word list + `en-extra.txt`, dialect variants (`en-variants.txt`); without them the installed Hunspell English, else the built-in Moby list ([below](#english-is-always-checked)) | yes | Moby list, our patterns, heuristic | | Polish, Portuguese, Italian | the installed Hunspell dictionary | yes | TeX patterns | | Croatian, Turkish, Russian, Czech, Indonesian, Spanish (es, es-MX, es-419, es-UY) | the installed Hunspell dictionary (Russian also `ru-extra.txt`) | yes | Turkish and Russian rules; English fallback otherwise | | German | — | — | TeX patterns | @@ -55,8 +55,9 @@ The word lists and patterns live in [craft-i18n](https://github.com/storytold/cr grammar and the Hunspell languages work as before. - `CRAFT_I18N_REQUIRED=1` (releases) makes a missing directory or file an error. -Tests that pin results of the data are ignored without it; `src/no_data.rs` runs every public -entry point with no data embedded. +Tests that pin results of the data run only when every file is embedded (`craft_proof_data`); +`src/no_data.rs` runs every public entry point when none is (`craft_proof_no_data`). A partial +data folder runs neither set. ### English is always checked @@ -64,23 +65,27 @@ English spelling uses the first of these that is there; `english_source(lang)` s 1. **Embedded:** the Moby word list from `CRAFT_I18N_DIR` (above). Nothing below is used then. 2. **System Hunspell:** an English `.aff`/`.dic` pair in the dictionaries folder or the system - locations, the run's English first (`en_US`, `en_GB`, `en_CA`…), then another English. None on - the web. -3. **Core list:** `data/en-core.txt`, about 11,000 common words built into the crate (inflections - come from the same rules as the Moby list's). It marks only near misses of common words: two - letters swapped (`teh`, `recieved`), or one letter added, missing or changed in a lower-case - word of four letters or more (`definately`). Other words it doesn't know (rare words, names, - terms) are taken as right. + locations, the run's English first (`en_US`, `en_GB`, `en_CA`…), then another English: en-GB + and en-CA use an `en_US` dictionary when no regional one is installed. A file that can't be + read is skipped for the next name or folder; one file is read once for every English that uses + it. Compounding (`COMPOUNDMIN`, `COMPOUNDRULE`…, used by English dictionaries only for + ordinals) and `OCONV` are ignored for English rather than refused. None on the web. +3. **Built-in list:** `data/en-words.dic`, the whole Moby word list (about 165,000 words, 344 KB + compressed, words only) built into the crate, with `data/en-extra.txt` (WordCraft's supplement + of modern words, a copy of craft-i18n's) and the same inflection rules as the embedded list. A + word it doesn't know is misspelled. Suggestions are the words one edit away (swap, missing, + added or changed letter), looked up in the list, for words of up to 32 letters. A dictionary that is there but can't be read (encoding, size, parse error, no words) is skipped, and `dictionary_load_error(lang)` gives the reason; it never panics. Text in other languages is never checked against English: a language without its dictionary has no spelling marks. -The core list is public domain. Every word is from the Moby Hyphenator II list by Grady Ward -(Project Gutenberg eBook #3204, as in craft-i18n's `language-data/en-us/en-us.dic`); 50 -public-domain Project Gutenberg books only rank them by how often they are written in lower case. -No other word list or dictionary was used. Regenerate with -`cargo run -p craft-proof --example en_core -- 12000 crates/proof/data/en-core.txt `. +`data/en-words.dic` is public domain: the Moby Hyphenator II list by Grady Ward (Project Gutenberg +eBook #3204), from craft-i18n's `language-data/en-us/en-us.dic` with its break points dropped. +Regenerate with +`cargo run -p craft-proof --example en_words -- /language-data/en-us/en-us.dic crates/proof/data/en-words.dic`. +`data/en-extra.txt` is WordCraft contributors' own list (MIT OR Apache-2.0); keep it in step with +craft-i18n's copy. ## Check diff --git a/crates/proof/data/en-core.txt b/crates/proof/data/en-core.txt deleted file mode 100644 index ff4bbbb5..00000000 --- a/crates/proof/data/en-core.txt +++ /dev/null @@ -1,11372 +0,0 @@ -# English core word list: the built-in fallback when neither the embedded Language data nor a -# system Hunspell English dictionary is available (see crates/proof/README.md). -# Public domain: every word is from the Moby Hyphenator II list by Grady Ward (Project -# Gutenberg eBook #3204), ranked by frequency in public-domain Project Gutenberg books. -# Generated by `cargo run -p craft-proof --example en_core`. Do not edit by hand. -aback -abandon -abandoned -abandonment -abasement -abate -abated -abatement -abhor -abhorred -abhorrence -abide -abiding -ability -abject -ablaze -able -abnormal -aboard -abode -abolition -abominable -abominably -abominate -abomination -abound -abounding -about -above -abreast -abroad -abrupt -abruptly -abruptness -absence -absent -absolute -absolutely -absolved -absorb -absorbed -absorbing -absorption -abstain -abstinence -abstract -abstracted -abstraction -absurd -absurdity -absurdly -abundance -abundant -abundantly -abuse -abused -abusing -abyss -academic -acceded -accent -accept -acceptable -acceptance -accepted -access -accessible -accession -accessory -accident -accidental -accidentally -accommodate -accommodated -accommodation -accompanied -accompaniment -accompany -accompanying -accomplice -accomplish -accomplished -accomplishment -accord -accordance -accorded -according -accordingly -accosted -account -accountable -accounting -accumulate -accumulated -accumulating -accumulation -accuracy -accurate -accurately -accursed -accusation -accuse -accused -accusing -accustom -accustomed -ache -achieve -achieved -achievement -aching -acid -acknowledge -acknowledged -acknowledging -acknowledgment -acquaintance -acquainted -acquiescence -acquire -acquired -acquiring -acquisition -acquit -acquitted -acre -acres -acrid -across -act -acted -acting -action -active -actively -activity -actor -actress -acts -actual -actually -actuated -acute -acutely -acuteness -ad -adapt -adapted -add -added -addicted -adding -addition -additional -address -addressed -addressing -adequate -adequately -adhere -adhered -adhering -adieu -adieus -adjacent -adjective -adjoining -adjust -adjusted -adjusting -administer -administered -administering -administration -admirable -admirably -admiral -admiration -admire -admired -admirer -admiring -admiringly -admission -admit -admittance -admitted -admitting -admonition -ado -adopt -adopted -adoption -adoration -adore -adored -adorn -adorned -adrift -adult -advance -advanced -advancement -advances -advancing -advantage -advantageous -advent -adventure -adventurous -adversary -adversity -advertise -advertised -advertisement -advertising -advice -advisable -advise -advised -adviser -advocate -afar -affability -affable -affair -affairs -affect -affectation -affected -affecting -affection -affectionate -affectionately -affinity -affirm -affirmative -affliction -afford -affright -affront -afire -afloat -afoot -afore -aforesaid -afraid -afresh -after -afternoon -afternoons -afterward -afterwards -again -against -age -aged -agency -agent -ages -aggravated -aggravating -aggravation -aggrieved -aghast -agile -agility -agitated -agitation -ago -agonised -agonizing -agony -agree -agreeable -agreeably -agreed -agreeing -agreement -agricultural -agriculture -ague -ahead -aid -aids -ailing -aim -aimlessly -ain -air -airily -airing -airs -airy -aisle -ajar -akin -alacrity -alarm -alas -albeit -ale -alert -alertness -alien -alienated -alight -alighted -alighting -alike -alive -all -allay -allayed -alleged -alley -alliance -allied -allies -allotted -allow -allowable -allowance -allowed -alloy -allude -alluded -alluding -alluring -allusion -ally -almost -alms -aloft -alone -along -alongside -aloof -aloud -alphabet -already -also -altar -alter -alteration -altercation -altered -alternate -alternately -alternating -alternative -although -altogether -always -am -amateur -amaze -amazed -amazement -amazing -amazingly -amber -ambition -ambitious -ambush -amenable -amend -amendment -amends -amiability -amiable -amiably -amid -amidst -amiss -ammunition -among -amongst -amorous -amount -ample -amply -amuse -amused -amusement -amusing -an -analogous -analogy -analysis -anatomy -ancestor -ancestral -anchor -ancient -and -anecdote -anew -angel -angelic -angels -anger -angle -angles -angrily -angry -anguish -animal -animate -animated -animating -animation -animosity -ankle -annihilate -annihilated -annihilation -anniversary -announce -announced -announcement -announcing -annoy -annoyance -annoyed -annoying -annual -annum -anointed -anon -anonymous -another -answer -answered -ant -antagonist -antagonistic -anticipate -anticipated -anticipating -anticipation -antidote -antipathy -antique -antiquity -anxiety -anxious -anxiously -any -anybody -anyhow -anyone -anything -anyway -anywhere -apart -apartment -apathy -ape -aperture -apex -apiece -apologetic -apologetically -apologise -apologize -apology -apoplectic -apoplexy -apothecary -appalled -appalling -apparatus -apparel -apparent -apparently -apparition -appeal -appealing -appear -appearance -appearing -appease -appeased -appellation -appetite -applauded -applause -apple -apples -applicable -application -applied -apply -applying -appoint -appointed -appointment -appreciate -appreciated -appreciation -appreciative -apprehend -apprehension -apprehensive -apprenticeship -approach -approached -approbation -appropriate -appropriated -approval -approve -approved -approving -approvingly -apron -apropos -apt -aptitude -arbitrary -arch -arched -arches -architect -architecture -archly -archway -ardent -ardently -ardour -arduous -are -area -argue -argued -arguing -argument -argumentative -arid -aright -arise -arisen -aristocracy -aristocratic -arithmetic -ark -arm -armchair -armed -armor -armour -arms -army -aromatic -arose -around -arouse -aroused -arrange -arranged -arrangement -arranging -array -arrayed -arrears -arrest -arresting -arrival -arrive -arrived -arriving -arrogance -arrogant -arrow -arrows -art -arteries -artful -article -articles -articulate -articulated -artifice -artificial -artificially -artillery -artist -artistic -artless -arts -as -ascend -ascending -ascent -ascertain -ascertained -ascribed -ash -ashamed -ashes -ashore -ashy -aside -ask -askance -askew -asking -aslant -asleep -asparagus -aspect -asperity -aspiration -aspire -aspired -aspiring -ass -assail -assailant -assassin -assault -assemblage -assemble -assembled -assembly -assent -assert -asserted -assertion -asses -assiduity -assiduous -assiduously -assign -assigned -assist -assistance -assistant -assisted -associate -associated -association -assorted -assuage -assume -assumed -assuming -assumption -assurance -assure -assured -assuredly -assuring -astir -astonish -astonishing -astonishment -astounding -astray -astride -asunder -asylum -at -ate -athletic -athwart -atmosphere -atom -atone -atonement -atrocious -attach -attached -attachment -attack -attain -attained -attempt -attempted -attend -attendance -attendant -attended -attending -attention -attentive -attentively -attested -attic -attire -attired -attitude -attorney -attract -attraction -attractive -attribute -attributed -attributing -auction -audacious -audacity -audible -audibly -audience -auditor -aught -augment -augmented -augur -august -aunt -auspices -auspicious -austere -austerity -authentic -author -authoritative -authority -authorized -authors -autumn -autumnal -auxiliary -avail -available -avarice -avaricious -avenge -avenged -avenger -avenging -avenue -average -averse -aversion -avert -avoid -avoidance -avow -avowal -avowed -await -awake -awaken -awakened -awakening -awaking -awarded -aware -away -awe -awed -awful -awfully -awhile -awkward -awkwardly -awkwardness -awoke -awry -axe -axes -aye -babbling -babe -babies -baby -bachelor -bachelors -back -backbone -backed -background -backing -backs -backward -backwards -bacon -bad -bade -badge -badly -badness -bag -baggage -bags -bailiff -bait -bake -baked -baker -baking -balance -balanced -balancing -balcony -bald -ball -ballad -balloon -ballroom -balls -balm -balmy -balustrade -bamboo -band -bandage -bandaged -bands -bane -bang -banish -banished -banishment -banisters -bank -banker -banking -bankrupt -banks -banner -banquet -baptism -baptized -bar -barbarian -barbarism -barbarous -barber -bare -barefoot -bareheaded -barely -bargain -bargaining -barge -bark -barking -barley -barn -baron -barracks -barred -barrel -barren -barricade -barrier -barring -barrow -bars -base -basely -basement -baseness -bashful -bashfully -bashfulness -basin -basis -bask -basket -bass -bastard -bat -batch -bath -bathe -bathing -bats -battalion -battered -battery -battle -bay -be -beach -beacon -beaded -beadle -beads -beak -beam -beaming -bean -bear -beard -bearded -bearer -bearers -bearing -bearings -beast -beastly -beat -beaten -beating -beau -beautiful -beautifully -beauty -beaver -became -because -become -becoming -bed -bedchamber -bedclothes -bedding -bedroom -beds -bedside -bedstead -bedtime -bee -beech -beef -been -beer -beetle -befall -befallen -befell -befitting -before -beforehand -befriend -beg -began -beggar -beggarly -begging -begin -beginning -begone -begotten -beguile -beguiled -begun -behalf -behave -behaved -behavior -behaviour -beheld -behind -behold -beholding -being -belated -belfry -belied -belief -believe -believed -believer -believing -bell -belle -bellows -bells -belly -belong -belonging -belongings -beloved -below -belt -bench -bend -bending -bends -beneath -benediction -benefactor -beneficent -beneficial -benefit -benefited -benevolence -benevolent -bent -bequeath -bequest -berries -berth -beseech -beseeching -beset -besetting -beside -besides -besought -bespeak -bespoke -best -bestow -bestowed -bet -bethought -betimes -betook -betray -betraying -betrothed -better -between -betwixt -beware -bewilderment -beyond -bias -bid -bidden -bidding -bide -bier -big -bigger -biggest -bile -bilious -bill -billiard -billows -bind -binding -biography -birch -bird -birds -birth -birthday -biscuit -bishop -bit -bite -biting -bitten -bitter -bitterly -bitterness -black -blackguard -blackness -blacksmith -blade -blame -blamed -blameless -blaming -bland -blandly -blank -blanket -blankly -blasphemous -blasphemy -blast -blasted -blaze -blazing -bleak -bleed -bleeding -blemish -blend -blended -blending -bless -blessed -blessing -blest -blew -blight -blind -blinded -blindfold -blinding -blindly -blindness -blinds -blinking -bliss -blissful -bloated -block -blocked -blockhead -blond -blood -blooded -bloodhound -bloodless -bloodshot -bloody -bloom -bloomed -blooming -blossom -blot -blotted -blotting -blow -blowing -blown -blue -bluff -bluish -blunder -blunt -bluntly -blush -board -boarder -boarding -boast -boastful -boat -bob -bobbing -bodice -bodies -bodily -body -bog -boil -boiled -boiler -boiling -boisterous -bold -boldly -boldness -bolt -bond -bondage -bonds -bone -bones -bonnet -bony -book -bookcase -books -boom -boon -boot -booted -boots -booty -border -bordered -borders -bore -born -borne -borrow -borrowing -bosom -both -bother -bottle -bottom -bottoms -boudoir -bough -bought -bounce -bouncing -bound -boundary -bounded -boundless -bounds -bounty -bouquet -bout -bow -bower -bowing -bowl -bowling -bowls -box -boxing -boy -boyhood -boyish -boys -brace -bracelet -bracelets -braces -bracing -braided -brain -branch -brand -branded -brandy -brass -brat -bravado -brave -bravely -braver -bravery -bravest -brazen -breach -bread -breadth -break -breakfast -breaking -breast -breasted -breath -breathe -breathing -breathless -breathlessly -bred -breeches -breed -breeding -breeze -brethren -brevity -brewing -bribe -brick -bridal -bride -bridegroom -bridge -bridges -bridle -brief -briefly -bright -brightly -brightness -brilliancy -brilliant -brilliantly -brim -bring -bringing -brink -brisk -briskly -brittle -broad -broadly -brocade -broke -broken -bronze -brooch -brood -brook -broom -broth -brother -brotherhood -brotherly -brothers -brought -brow -brown -bruise -brush -brushed -brusquely -brutal -brutality -brutally -brute -bubble -bucket -buckle -bud -budge -buff -bug -build -builder -building -built -bulk -bulky -bull -bullet -bully -bulwark -bump -bunch -bunches -bundle -burden -burdened -bureau -burglar -burial -buried -burly -burn -burned -burning -burns -burnt -burst -bursting -bury -burying -bush -bushel -bushy -busied -busily -business -bust -bustle -bustled -busy -but -butcher -butler -butt -butter -butterflies -butterfly -button -buttoned -buttons -buy -buying -buys -buzz -by -bye -bygone -cab -cabbage -cabin -cabinet -cabman -cadence -cage -cake -calamity -calculate -calculated -calculating -calculation -calendar -calf -calico -call -calling -callous -calm -calmly -calmness -calves -cambric -came -camel -camp -campaign -can -canal -canary -candid -candidate -candidly -candle -candlelight -candlestick -candour -cane -cannibal -cannon -cannot -canopy -cant -canter -canvas -cap -capable -capacious -capacity -cape -caper -capers -capital -caprice -capricious -caps -captain -captivated -captivating -captive -captivity -capture -captured -capturing -car -caravan -carcass -card -cardboard -cardinal -cards -care -career -careful -carefully -careless -carelessly -carelessness -caress -careworn -cargo -caricature -caring -carpenter -carpet -carpeted -carriage -carried -carrier -carrion -carry -carrying -cart -carve -carving -case -casement -cash -cashier -cask -casket -cast -caste -casting -castle -casual -casually -cat -catalogue -catastrophe -catch -catching -catechism -category -cathedral -cattle -caught -cause -causing -caution -cautioned -cautious -cautiously -cavalier -cavalry -cave -cavern -cease -ceaseless -ceasing -ceiling -celebrate -celebrated -celebration -celebrity -celestial -cell -cellar -cemetery -censure -cent -central -centre -centred -century -ceremonies -ceremonious -ceremony -certain -certainly -certainty -certificate -cessation -chafing -chagrin -chain -chair -chairs -chaise -chalk -challenge -challenged -chamber -chambers -chamois -champagne -champion -chance -chandelier -change -changeable -changes -changing -channel -chaos -chaotic -chap -chapel -chaplain -chaps -chapter -character -characteristic -characterized -charge -charged -charging -chariot -charitable -charity -charm -charming -charmingly -chart -chase -chasing -chasm -chaste -chat -chatted -chatter -chatting -cheap -cheaply -cheat -check -checked -checking -checks -cheek -cheer -cheerful -cheerfully -cheerfulness -cheerily -cheerless -cheers -cheery -cheese -chemical -chemist -chemistry -cheque -cherish -cherished -cherry -chess -chest -chestnut -chew -chewing -chicken -chickens -chief -chiefly -child -childhood -childish -childless -childlike -children -chill -chilly -chimney -chin -china -chink -chintz -chip -chisel -chiselled -chivalrous -chivalry -chocolate -choice -choir -choke -choking -choose -chop -chopping -chops -chord -chorus -chose -chosen -chronic -chubby -chuckle -chuckled -chuckling -church -churchyard -cigar -cigarette -cipher -circle -circuit -circular -circulated -circulating -circulation -circumference -circumspect -circumspection -circumstance -circumstanced -circumstances -circumstantial -circus -citadel -cited -cities -citizen -citizens -city -civil -civilian -civilisation -civilised -civility -civilization -civilized -civilly -clad -claim -claiming -clammy -clamorous -clang -clap -clapping -claret -clash -clasp -clasping -class -classes -classic -classical -clatter -clause -claw -clay -clean -cleaner -cleaning -cleanliness -cleanly -cleanse -clear -clearer -clearing -clearly -clearness -cleft -clemency -clergy -clergyman -clerical -clerk -clever -cleverly -cleverness -click -client -cliff -climate -climax -climb -climbing -cling -clinging -clink -clipped -cloak -clock -close -closed -closely -closeness -closer -closest -closet -closing -cloth -clothe -clothes -clothing -clotted -cloud -clouded -cloudless -clouds -cloudy -clover -clown -club -clue -clump -clumsily -clumsy -clung -cluster -clustered -clutch -co -coach -coachman -coal -coarse -coarsely -coarseness -coarser -coarsest -coast -coat -coated -coax -coaxing -cobbler -cobwebs -cock -cocking -code -coffee -coffin -cogitation -coherent -coil -coin -coincidence -cold -coldly -coldness -collapse -collapsed -collar -collared -colleague -collect -collected -collection -college -collision -colonel -colony -color -colored -colors -colossal -colour -column -comb -combat -combination -combinations -combine -combined -come -comedy -comely -comer -comes -comfort -comfortable -comfortably -comforter -comfortless -comforts -comic -comical -coming -command -commanded -commander -commanding -commence -commenced -commencement -commencing -commend -commendation -commended -comment -commerce -commercial -commiseration -commission -commissioned -commissioner -commit -committed -committee -committing -commodious -common -commoner -commonly -commonplace -commotion -commune -communicate -communicated -communicating -communication -communications -communicative -communing -communion -community -compact -companion -companionship -company -comparable -comparative -comparatively -compare -compared -comparing -comparison -compass -compassion -compassionate -compassionately -compatible -compel -compelled -compelling -compensate -compensated -compensation -competent -competition -complacency -complacent -complacently -complain -complaint -complete -completed -completely -completeness -completing -completion -complex -complexion -complexioned -compliance -complicated -complied -compliment -complimentary -comply -compose -composed -composedly -composing -composition -composure -compound -comprehend -comprehended -comprehending -comprehension -comprehensive -compressed -comprised -compromise -compromised -compromising -compulsion -compulsory -compunction -computation -comrade -conceal -concealed -concealing -concealment -conceded -conceit -conceited -conceivable -conceive -conceived -conceiving -concentrate -concentrated -concentrating -concentration -conception -concern -concerned -concerning -concert -concession -conciliate -conciliating -concise -conclude -concluded -concluding -conclusion -conclusive -conclusively -concourse -concrete -concurrence -concussion -condemn -condemnation -condemned -condemning -condensed -condescend -condescending -condescension -condition -conditioned -condolence -conduce -conducive -conduct -conductor -confer -conference -conferences -conferred -conferring -confess -confessed -confession -confessor -confidant -confide -confided -confidence -confident -confidential -confidentially -confidently -confiding -confine -confined -confinement -confirm -confirmation -confirmed -conflagration -conflict -conform -confound -confounded -confront -confuse -confused -confusedly -confusing -confusion -congenial -congratulate -congratulated -congratulating -congratulation -congratulations -congregation -conjecture -conjectured -conjugal -conjunction -conjure -conjured -connect -connected -connecting -connection -connexion -connoisseur -conquer -conquered -conqueror -conquest -conscience -conscientious -conscientiously -conscious -consciously -consciousness -consecrated -consecutive -consent -consenting -consequence -consequences -consequent -consequently -conservative -conservatory -consider -considerable -considerably -considerate -considerately -consideration -considered -considering -consist -consistency -consistent -consolation -consolatory -console -consoled -consoling -consort -conspicuous -conspiracy -conspired -constable -constancy -constant -constantly -consternation -constitute -constituted -constitution -constitutional -constrained -constraint -construct -constructed -construction -consult -consultation -consulting -consume -consumed -consuming -consummate -consummation -consumption -contact -contagion -contagious -contain -contained -contemplate -contemplated -contemplating -contemplation -contemporaries -contemporary -contempt -contemptible -contemptuous -contemptuously -contend -content -contented -contentedly -contention -contentment -contest -contiguous -continent -contingency -contingent -continual -continually -continuance -continuation -continue -continued -continuing -continuous -continuously -contorted -contract -contracted -contraction -contradict -contradiction -contradictory -contrary -contrast -contrasted -contribute -contributed -contributing -contribution -contrition -contrivance -contrive -contrived -contriving -control -controlled -controlling -convalescence -convalescent -convenience -convenient -conveniently -convent -conventional -conversant -conversation -conversational -converse -conversed -conversing -conversion -convert -converted -convex -convey -conveyance -conveyed -convict -convicted -conviction -convince -convinced -convincing -convivial -convulsed -convulsion -convulsive -convulsively -cook -cookery -cooking -cooks -cool -cooled -cooler -cooling -coolly -coolness -cope -copied -copies -copious -copper -copy -copying -coquetry -coquettish -coral -cord -cordial -cordiality -cordially -cords -core -cork -corkscrew -corn -corner -cornered -coronation -coroner -corporal -corps -corpse -corpulent -correct -corrected -correcting -correction -correctly -correctness -correspond -correspondence -correspondent -corridor -corroborated -corrupt -corruption -cost -costly -costume -cot -cottage -cotton -couch -cough -could -council -counsel -counsellor -count -counted -countenance -counter -counteract -counterfeit -counterpane -counterpart -counting -countless -countries -country -countryman -countryside -county -couple -coupled -courage -courageous -course -courses -court -courted -courteous -courteously -courtesy -courtier -courtly -courts -courtship -courtyard -cousin -cousins -cove -cover -covered -covering -coverlet -covers -covert -covet -cow -coward -cowardice -cowardly -coxcomb -crab -crack -cracked -cracking -crackling -cradle -craft -crafty -craggy -cramp -cramped -crape -crash -crashing -cravat -craving -crawl -crawling -crazed -crazy -creak -cream -create -created -creating -creation -creative -creature -credible -credit -creditable -creditor -creed -creek -creep -creeping -creeps -crept -crest -crestfallen -crevice -crew -crib -cricket -cried -crime -criminal -crimson -cringing -cripple -crisis -crisp -critical -critically -criticise -criticism -crockery -crocodile -crooked -crop -cross -crossed -crosses -crossing -crow -crowd -crowded -crowing -crown -crowned -crowning -crucified -crude -cruel -cruelly -cruelty -crumb -crumble -crumbled -crumbling -crumbs -crumpled -crush -crushing -crust -cry -crying -crystal -cub -cuff -cuffs -culinary -culprit -cultivate -cultivated -cultivation -culture -cumbrous -cunning -cunningly -cup -cupboard -cur -curate -curb -cure -curiosity -curious -curiously -curl -curling -curly -currant -current -curse -cursed -curses -cursing -curtain -curtains -curtly -curtsey -curve -curving -cushion -cushioned -custody -custom -customary -customer -customs -cut -cuts -cutting -cylinder -cynical -dab -dad -dagger -daily -daintily -dainty -dairy -dale -dam -damage -damaged -damask -dame -damn -damned -damp -damsel -dance -dancers -dancing -dandy -danger -dangerous -dangerously -dangling -dank -dare -dares -daresay -daring -dark -darken -darkened -darkly -darkness -darling -darned -dart -darts -dash -dashed -dashing -data -date -dated -dates -daughter -daughters -dawn -day -daybreak -daylight -days -daytime -de -dead -deaden -deadly -deaf -deafened -deafening -deal -dealer -dealing -dealings -dealt -dear -dearly -death -deathbed -deathlike -deathly -debased -debate -debated -debauchery -debt -decanter -decay -decease -deceased -deceit -deceitful -deceive -deceived -deceiving -decency -decent -decently -deception -decide -decided -decidedly -deciding -decipher -decision -decisive -decisively -deck -decked -decks -declaration -declare -declared -declaring -decline -declined -declining -decorated -decoration -decorous -decorum -decree -decreed -decrepit -dedicated -deduce -deduced -deduction -deed -deem -deep -deeply -deer -defaced -default -defeat -defeated -defect -defective -defence -defenceless -defend -defended -defensive -defer -deference -deferential -deferred -defiance -defiant -defiantly -deficiency -deficient -defiled -define -defined -definite -definitely -definition -deformed -deformity -deftly -defy -degenerate -degenerated -degradation -degrade -degraded -degrading -degree -deity -dejected -dejection -delay -delayed -deliberate -deliberated -deliberately -deliberating -deliberation -delicacy -delicate -delicately -delicious -deliciously -delight -delighted -delightful -delightfully -delirious -delirium -deliver -deliverance -delivered -delivery -delude -deluded -deluge -delusion -demand -demanding -demolished -demon -demonstrated -demonstration -demonstrative -demure -den -denial -denied -denominated -denote -denoted -denounce -denounced -denouncing -dens -dense -density -dentist -deny -denying -depart -departed -department -departure -depend -dependence -dependent -depending -depict -depicted -deplorable -deplore -deplored -deportment -depose -deposed -deposit -depraved -depravity -depressed -depression -deprive -deprived -depriving -depth -deputy -deranged -derision -derive -derived -des -descend -descendant -descent -describe -described -describing -descried -description -descriptive -desert -deserted -desertion -deserve -deserved -deservedly -deserving -design -designated -designation -designed -designing -desirable -desire -desired -desiring -desirous -desist -desk -desolate -desolation -despair -despairing -despairingly -despatch -desperate -desperately -desperation -despicable -despise -despised -despising -despite -despondency -despondent -despot -despotic -dessert -destination -destined -destiny -destitute -destitution -destroy -destroyed -destroyer -destroying -destruction -destructive -detach -detached -detachment -detail -detailed -detain -detect -detection -detective -determination -determine -determined -determining -deterred -detest -detestable -detestation -detriment -deuce -devastation -develop -developed -developing -development -deviation -device -devil -devilish -devils -devise -devised -devising -devoid -devote -devoted -devotedly -devoting -devotion -devour -devouring -devoutly -dew -dewy -dexterity -dexterously -diabolical -dial -dialect -dialogue -diameter -diametrically -diamond -diary -dice -dictate -dictation -dictionary -did -didst -die -dies -diet -differ -difference -different -differently -difficult -difficulties -difficulty -diffidence -diffident -diffuse -diffused -dig -digest -digestion -digger -digging -dignified -dignity -dilapidated -dilated -dilating -dilemma -diligence -diligent -diligently -dim -diminish -diminished -diminution -diminutive -dimly -din -dine -dingy -dining -dinner -dint -dip -dipping -dire -direct -directed -directing -direction -directions -directly -directness -director -dirt -dirty -disabled -disadvantage -disagree -disagreeable -disagreeably -disagreement -disappear -disappearance -disappoint -disappointed -disappointment -disapprobation -disapproval -disapprove -disapproved -disarm -disaster -disastrous -disbelieve -discern -discernible -discerning -discernment -discharge -disciple -disciples -discipline -disciplined -disclose -disclosed -disclosing -disclosure -discomfiture -discomfort -discomposed -discomposure -disconcerted -disconsolate -disconsolately -discontent -discontented -discord -discourage -discouraged -discouragement -discouraging -discourse -discoursed -discoursing -discover -discoveries -discovery -discredit -discreet -discreetly -discretion -discrimination -discuss -discussed -discussion -disdain -disdainful -disdainfully -disease -diseased -disengaged -disengaging -disfigured -disgrace -disgraced -disgraceful -disguise -disguised -disgust -disgusted -disgusting -dish -dishevelled -dishonest -disinclination -disinclined -disinterested -disinterestedness -disjointed -disk -dislike -disliked -dislocated -dismal -dismally -dismay -dismiss -dismissal -dismount -disobedience -disobey -disorder -disordered -disorderly -disparagement -disparity -dispatch -dispel -dispelled -dispense -dispensed -dispensing -disperse -dispersed -dispirited -displaced -display -displayed -displease -displeased -displeasure -disposal -dispose -disposed -disposing -disposition -dispute -disputed -disputing -disquiet -disquietude -disregard -disreputable -disrespect -disrespectful -dissatisfaction -dissatisfied -dissecting -dissent -dissimilar -dissipated -dissipation -dissolute -dissolution -dissolve -dissolved -dissolving -dissuade -distance -distant -distantly -distasteful -distinct -distinction -distinctive -distinctly -distinctness -distinguish -distinguishable -distinguished -distinguishing -distorted -distract -distracted -distractedly -distraction -distress -distressed -distribute -distributed -distributing -distribution -district -distrust -distrustful -disturb -disturbance -disturbed -disturbing -disuse -disused -ditch -divan -dive -diver -diverged -divers -diversified -diversion -diversity -divert -diverting -divide -divided -dividing -divine -divined -divinely -diving -divinity -division -divorce -dizzy -do -docile -dock -doctor -doctrine -document -dodge -does -dog -dogged -doggedly -dogs -doing -doings -doleful -dolefully -doll -domain -dome -domestic -domesticated -dominant -dominion -dominions -don -done -donkey -doom -door -doorstep -doorway -dormant -dose -dost -dot -doth -dotted -double -doubles -doubling -doubly -doubt -doubtful -doubtfully -doubting -doubtless -dove -down -downcast -downfall -downhill -downright -downs -downstairs -downward -downwards -downy -doze -dozen -dozens -dozing -drab -draft -drag -dragging -dragon -drain -drama -dramatic -drank -drapery -draught -draw -drawback -drawer -drawing -drawings -drawn -dread -dreadful -dreadfully -dream -dreamer -dreamily -dreaming -dreams -dreamt -dreamy -dreary -dregs -dress -dresser -dressing -dressmaker -drew -dried -drift -drill -drily -drink -drinking -drip -dripping -drive -driven -driver -driving -droll -drone -droning -droop -drop -dropping -drops -drove -drown -drowning -drowsily -drowsiness -drowsy -drudge -drug -drum -drunk -drunkard -drunken -drunkenness -dry -drying -dryly -du -dubious -dubiously -duck -ducks -due -duel -duet -dug -duke -dull -dulness -duly -dumb -dummy -dun -dungeon -dupe -duplicate -durable -duration -during -durst -dusk -dusky -dust -dusted -dusting -dusty -dutiful -dutifully -duty -dwarf -dwell -dwelling -dwelt -dye -dying -dynasty -each -eager -eagerly -eagerness -eagle -ear -earlier -earliest -early -earn -earned -earnest -earnestly -earnestness -earning -earth -earthly -earthquake -earthy -ease -easier -easiest -easily -east -easterly -eastern -eastward -easy -eat -eatable -eaten -eating -eats -eaves -ebb -ebony -ebullition -eccentric -eccentricity -ecclesiastical -echo -echoed -echoes -echoing -eclipsed -economic -economical -economy -ecstasy -ecstatic -ecstatically -ed -eddy -eddying -edge -edged -edging -edifice -edifying -edition -editor -educate -educated -educating -education -educational -eel -efface -effaced -effect -effected -effective -effects -effectual -effectually -efficacy -efficiency -efficient -effigy -effort -effusion -egg -eggs -egotism -egotistical -eight -eighteen -eighteenth -eighth -eighty -either -ejaculated -ejaculation -elaborate -elaborately -elapsed -elastic -elasticity -elated -elbow -elder -elderly -eldest -elect -elected -election -electric -electricity -electrified -elegance -elegant -elegantly -element -elemental -elementary -elephant -elevate -elevated -elevating -elevation -eleven -eleventh -eligible -elm -elongated -eloquence -eloquent -eloquently -else -elsewhere -elude -eluded -elusive -emaciated -embankment -embarrassment -emblem -embodied -embrace -embraced -embracing -embroidery -embryo -emerald -emerge -emerged -emergency -emerging -emigrant -eminence -eminent -eminently -emotion -emotional -emperor -emphasis -emphatic -empire -employ -employed -employer -employment -emptied -emptiness -empty -emptying -emulation -en -enable -enabling -enacted -enchanter -enchanting -enchantment -enclosed -enclosing -enclosure -encounter -encourage -encouraged -encouragement -encouraging -encouragingly -encumbrance -end -endanger -ended -ending -endless -endowed -endurance -endure -endured -enduring -enemy -energetic -energetically -energy -enforce -enforced -engage -engaged -engagement -engaging -engine -engraved -engrossed -engrossing -enhance -enhanced -enigma -enigmatical -enjoy -enjoyment -enlarge -enlarged -enlargement -enlarging -enlighten -enlightened -enlightenment -enlist -enmity -ennui -enormous -enormously -enough -enraged -enraptured -enrolled -enslaved -ensue -ensued -ensuing -ensure -entangled -enter -entered -entering -enterprise -entertain -entertained -entertainer -entertaining -entertainment -enthusiasm -enthusiast -enthusiastic -enthusiastically -enticed -entire -entirely -entitle -entitled -entrails -entrance -entreat -entreaties -entreaty -entry -enumerated -envelope -enveloped -enviable -envied -envious -environment -environs -envy -envying -episode -epistle -epithet -epoch -equal -equality -equalled -equally -equals -equanimity -equestrian -equilibrium -equipage -equipped -equitable -equity -equivalent -era -erase -ere -erect -erected -err -errand -erring -erroneous -error -eruption -es -escape -escaped -escaping -escort -escorted -especial -especially -essay -essayed -essence -essential -essentially -est -establish -established -establishment -estate -estates -esteem -esteemed -estimable -estimate -estimated -estimation -estranged -et -etc -eternal -eternally -eternity -ether -ethereal -etiquette -evade -evaded -eve -even -evening -evenings -evenly -event -eventful -eventually -ever -evergreen -everlasting -evermore -every -everybody -everyday -everyone -everything -everywhere -evidence -evident -evidently -evil -evince -evinced -evincing -evoke -evoked -evolution -ex -exact -exacting -exactly -exactness -exaggerate -exaggerated -exaggeration -exalt -exaltation -exalted -examination -examine -examined -examining -example -exasperated -exasperating -exasperation -excavation -exceed -exceeding -exceedingly -excellence -excellent -excellently -except -excepting -exception -exceptional -excess -excessive -excessively -exchange -exchanged -exchanging -excitable -excite -excited -excitedly -excitement -exciting -exclaim -exclamation -exclude -excluded -exclusion -exclusive -exclusively -excursion -excusable -excuse -excused -excusing -execute -executed -executing -execution -executioner -exemplary -exempt -exercise -exercised -exercising -exert -exerted -exertion -exhaust -exhaustion -exhibit -exhibited -exhibition -exhilarating -exile -exiled -exist -existence -exit -exordium -exotic -expand -expanded -expanding -expanse -expansion -expect -expectant -expectantly -expectation -expected -expecting -expediency -expedient -expedition -expeditiously -expelled -expended -expenditure -expense -expenses -expensive -experience -experienced -experiencing -experiment -experimental -expert -expiation -expiration -expire -expired -expiring -explain -explained -explaining -explanation -explanatory -explicit -explode -exploded -exploit -explore -explored -exploring -explosion -expose -exposed -exposing -exposition -exposure -expound -express -expressed -expression -expressive -expressively -expressly -exquisite -exquisitely -extant -extend -extended -extension -extensive -extent -exterior -exterminated -extermination -external -externally -extinct -extinction -extinguish -extort -extra -extract -extraneous -extraordinarily -extraordinary -extravagance -extravagant -extreme -extremely -extremest -extremity -extricate -extricated -exultation -exulting -exultingly -eye -eyebrow -eyed -eyeing -eyes -eyesight -fa -fable -fabric -fabulous -face -faced -facetious -facilitate -facility -facing -fact -factory -facts -faculty -fade -faded -fading -fail -failing -failure -fain -faint -fainter -faintly -faintness -fair -fairies -fairly -fairy -faith -faithful -faithfully -fall -fallen -falling -falls -false -falsehood -falsely -falter -fame -famed -familiar -familiarity -familiarly -family -famine -famished -famous -fan -fancied -fanciful -fancy -fancying -fanning -fantastic -far -farce -fare -farewell -farm -farmer -farmers -farmhouse -farming -farther -farthest -farthing -fascinated -fascinating -fascination -fashion -fashionable -fashioned -fast -fasten -fastened -fastening -fastidious -fat -fatal -fatality -fatally -fate -fated -fateful -father -fatherless -fatherly -fathers -fathom -fatigue -fatigued -fatiguing -fatten -fault -faultless -faulty -favor -favorite -favour -favourable -favourably -favoured -favourite -favours -fear -fearful -fearfully -fearing -fearless -feasible -feast -feat -feather -feathered -feathers -feathery -feature -featured -fed -fee -feeble -feebleness -feebly -feed -feeding -feel -feeling -feelingly -feet -feigned -feint -felicity -fell -fellow -fellowship -felony -felt -female -feminine -fence -fencing -fender -ferocious -ferociously -ferocity -ferret -ferry -fertile -fertility -fervent -fervently -fervour -festival -festive -festivity -fetch -fetching -fever -feverish -feverishly -few -fewer -fibre -fickle -fiction -fictitious -fiddle -fidelity -fidget -field -fields -fiend -fiendish -fierce -fiercely -fierceness -fiercer -fiery -fifteen -fifteenth -fifth -fiftieth -fifty -fight -fighting -figuratively -figure -figured -figures -file -filial -filing -fill -filling -film -filth -filthy -final -finally -find -finding -fine -finely -finer -finery -finest -finger -fingering -fingers -finish -finished -finishing -fir -fire -fired -firelight -fireplace -fireside -firewood -firing -firm -firmament -firmer -firmly -firmness -first -firstly -fish -fisherman -fishes -fishing -fist -fit -fitful -fitfully -fitness -fitted -fitting -five -fix -fixed -fixedly -fixing -flabby -flag -flagrant -flags -flame -flaming -flank -flannel -flap -flapping -flare -flaring -flash -flashing -flask -flat -flatly -flats -flatter -flattered -flattering -flattery -flavor -flavour -flaw -flaxen -fled -flee -fleeing -fleet -fleeting -flesh -fleshy -flew -flexibility -flexible -flicker -flight -flighty -flinch -fling -flinging -flint -flirt -flirtation -flit -flitted -flitting -float -floated -floating -flock -flogging -flood -flooded -floor -flooring -florid -flour -flourish -flourishing -flow -flower -flowered -flowering -flowers -flowery -flowing -flown -fluctuating -fluently -fluid -flung -flurried -flurry -flush -flushing -flute -flutter -fly -flying -foam -focus -foe -fog -foggy -foil -fold -folded -folding -folds -foliage -folk -follow -followed -following -folly -fond -fondly -fondness -food -fool -foolish -foolishly -foolishness -foot -footed -footing -footman -footpath -footsore -footstep -footstool -for -forbade -forbear -forbearance -forbearing -forbid -forbidden -forbidding -forbore -force -forced -forces -forcible -forcibly -forcing -fore -foreboding -forefinger -forego -foregoing -foreground -forehead -foreign -foreigner -foreman -foremost -forenoon -forerunner -foresaw -foresee -foreseeing -foreseen -foresight -forest -forestall -foretaste -foretold -forever -forfeit -forgave -forge -forgery -forget -forgetful -forgetfulness -forgetting -forgive -forgiven -forgiveness -forgiving -forgot -forgotten -fork -forked -forks -forlorn -form -formal -formality -formally -formation -former -formerly -formidable -forming -formless -forsake -forsaken -forsook -forth -forthwith -fortified -fortify -fortitude -fortnight -fortress -fortunate -fortunately -fortune -forty -forward -forwards -foster -fought -foul -found -foundation -founded -founder -fountain -four -fourteen -fourth -fowl -fox -foxes -fraction -fractured -fragile -fragment -fragmentary -fragrance -fragrant -frail -frame -framework -frank -frankly -frankness -frantic -frantically -fraternal -fraternity -fraud -fraught -freak -freckled -free -freedom -freely -freezing -freight -frenzied -frenzy -frequency -frequent -frequented -frequently -fresh -fresher -freshly -freshness -fret -fretful -fretted -fretting -friction -fried -friend -friendless -friendliness -friendly -friends -friendship -fright -frighten -frightened -frightful -frightfully -frigid -frill -fringe -fringed -frivolous -fro -frock -frog -frolic -frolicsome -from -front -frontier -frost -frosty -frown -frowning -froze -frozen -frugal -fruit -fruitful -fruition -fruitless -fry -frying -fuel -fugitive -fulfil -fulfilled -fulfilling -fulfilment -full -fuller -fullness -fully -fulness -fun -function -functionary -fund -fundamental -funds -funeral -funereal -funnel -funny -fur -furious -furiously -furnace -furnish -furnished -furnishing -furniture -furrow -furry -further -furthest -furtive -furtively -fury -fuss -futile -future -gable -gaiety -gaily -gain -gains -gait -gale -gall -gallant -gallantly -gallantry -galleries -gallery -galley -galling -gallop -galloping -gallows -gambler -game -games -gaming -gang -gap -gape -gaping -garb -garden -gardener -gardening -garment -garments -garnished -garret -garrison -gas -gash -gasp -gate -gates -gateway -gather -gathered -gathering -gaudy -gauge -gaunt -gauze -gave -gay -gaze -gazing -gear -geese -gem -gems -gen -general -generality -generally -generated -generation -generations -generosity -generous -generously -genial -genially -genius -genteel -gentility -gentle -gentleman -gentlemanly -gentlemen -gentleness -gentlewoman -gently -gentry -genuine -geographical -geography -geometrical -geometry -germ -gesticulating -gesture -get -getting -ghastly -ghost -ghostly -giant -giddiness -giddy -gift -gifted -gig -gigantic -giggle -gilded -gilt -gin -ginger -gingerbread -gingerly -gipsy -girdle -girl -girlhood -girlish -girt -give -given -giver -giving -glad -glade -gladly -gladness -glance -glancing -glare -glaring -glass -glasses -glassy -glazed -gleam -glee -gleefully -glide -glided -gliding -glimmer -glimmering -glimpse -glitter -globe -gloom -gloomily -gloomy -glorified -glorious -gloriously -glory -gloss -glossy -glove -glow -glowing -gnarled -gnaw -gnawing -go -goal -goat -goblin -god -goddess -gods -goes -going -goings -gold -golden -gone -good -goodly -goodness -goods -goodwill -goose -gooseberry -gorge -gorgeous -gospel -gossip -gossiping -got -gout -gouty -govern -governed -governess -governing -government -governor -gown -grab -grace -graceful -gracefully -graces -gracious -graciously -grade -gradual -gradually -graduated -grain -grains -grammar -grand -grandchildren -grandeur -grandfather -grandly -grandmother -grandson -granite -grant -grape -grapes -grapple -grasp -grasping -grass -grassy -grate -grated -grateful -gratefully -gratification -gratified -gratify -gratifying -grating -gratitude -gratuitous -grave -gravel -gravely -graven -graver -graves -gravest -gravity -gray -grease -greasy -great -greater -greatest -greatly -greatness -greed -greedily -greedy -green -greenhouse -greenish -greet -greeted -greeting -grew -grey -greyish -grief -grievance -grieve -grieving -grievous -grievously -grim -grimace -grimly -grimy -grin -grind -grinding -grinning -grip -gripping -grizzled -groan -grocer -grog -groom -groove -grope -groping -gross -grossly -grotesque -ground -grounded -group -grove -grovelling -groves -grow -growing -growl -grown -growth -grub -grudge -grudging -gruff -gruffly -grumble -grunt -guarantee -guard -guarded -guardian -guardianship -guards -guess -guest -guidance -guide -guided -guiding -guilt -guilty -guinea -guineas -guise -guitar -gulf -gull -gulp -gum -gun -gunpowder -guns -gush -gust -gutter -ha -habit -habitation -habitual -habitually -habituated -hack -hackney -had -hag -haggard -hail -hair -hairy -hale -half -halfpenny -halfway -hall -halo -halt -halter -halting -halves -ham -hamlet -hammer -hammered -hammering -hand -handcuffs -handed -handful -handiwork -handkerchief -handle -handled -handling -hands -handsome -handsomely -handsomer -handsomest -handwriting -handy -hang -hanging -hangman -hansom -hap -haphazard -hapless -happen -happening -happier -happiest -happily -happiness -happy -harassed -harbour -hard -harden -hardened -hardihood -hardly -hardness -hardship -hardy -hare -hark -harm -harming -harmless -harmonious -harmony -harness -harnessed -harp -harping -harsh -harshly -harshness -harvest -has -hast -haste -hasten -hastily -hasty -hat -hatchet -hate -hated -hateful -hath -hating -hatred -haughtily -haughty -haul -haunt -haunted -haunting -have -haven -having -havoc -hawk -hay -hazard -hazarded -haze -hazel -hazy -he -head -headache -headed -heading -headless -headlong -headquarters -heads -headstrong -heal -healing -health -healthy -heap -heaping -hear -hearer -hearing -hearken -hearse -heart -hearted -heartfelt -hearth -heartily -heartless -hearts -hearty -heat -heated -heath -heathen -heather -heave -heaven -heavenly -heavier -heaviest -heavily -heaviness -heaving -heavy -hedge -heed -heedless -heel -height -heighten -heir -heiress -held -hell -hellish -helm -helmet -help -helper -helpful -helping -helpless -helplessly -helplessness -hem -hen -hence -henceforth -henceforward -her -herald -herb -herd -here -hereabouts -hereafter -hereditary -heretofore -hermit -hero -heroic -heroine -heroism -hers -herself -hesitate -hesitated -hesitating -hesitatingly -hesitation -hewn -hey -hid -hidden -hide -hideous -hideously -hiding -hieroglyphics -high -higher -highest -highly -highway -hilarious -hilarity -hill -hillock -hills -hillside -hilly -hilt -him -himself -hind -hinder -hindrance -hint -hip -hire -his -hiss -hissing -historian -historical -history -hit -hitch -hither -hitherto -hitting -hive -ho -hoard -hoarse -hoarsely -hoary -hob -hobby -hoist -hold -holder -holding -hole -holiday -holiness -hollow -holly -holy -homage -home -homeless -homely -homeward -honest -honestly -honesty -honey -honeymoon -honor -honorable -honored -honors -hood -hoof -hook -hooked -hop -hope -hopeful -hopefully -hopeless -hopelessly -hopelessness -hoping -hopping -horizon -horizontal -horizontally -horn -horrible -horribly -horrid -horrified -horror -horrors -horse -horseback -horseman -horses -hospitable -hospital -hospitality -host -hostess -hostile -hostility -hot -hotel -hotly -hotter -hottest -hound -hour -hourly -hours -house -household -housekeeper -housekeeping -housemaid -houses -housewife -hovel -hover -how -however -howl -howling -hubbub -hue -hug -huge -hugging -hull -hum -human -humane -humanity -humble -humbly -humbug -humiliated -humiliating -humiliation -humility -humming -humor -humorous -humour -humoured -humouredly -hump -hundred -hundreds -hundredth -hung -hunger -hungry -hunt -hunted -hunter -hunting -hunts -hurl -hurling -hurricane -hurried -hurriedly -hurry -hurrying -hurt -hurting -husband -hush -huskily -husky -hussy -hut -hymn -hypocrisy -hypocrite -hypothesis -hysterical -hysterics -ice -icy -idea -ideal -identical -identified -identify -identity -idiot -idiotic -idle -idleness -idly -idol -ignoble -ignominious -ignominy -ignorance -ignorant -ill -illegal -illiterate -illness -illuminated -illumination -illumined -illusion -illustrate -illustrated -illustration -illustrious -image -imaginable -imaginary -imagination -imaginative -imagine -imagined -imagines -imagining -imbecile -imbecility -imbibed -imbued -imitate -imitated -imitating -imitation -immaculate -immaterial -immeasurable -immeasurably -immediate -immediately -immemorial -immense -immensely -immensity -imminent -immoderately -immoral -immortal -immortality -immovable -immutable -imp -impalpable -impart -impartial -impartiality -impartially -imparting -impassable -impassioned -impassive -impatience -impatient -impatiently -impeded -impediment -impelled -impending -impenetrable -imperative -imperceptible -imperceptibly -imperfect -imperfection -imperfectly -imperial -imperious -imperiously -impersonal -impertinence -impertinent -imperturbable -impetuosity -impetuous -impetuously -impetus -impious -implacable -implicated -implicit -implicitly -implied -implore -implored -imploring -imploringly -imply -implying -import -importance -important -importunate -importunity -impose -imposed -imposing -impossibility -impossible -impostor -impotence -impotent -impracticable -impregnable -impress -impressed -impressing -impression -impressive -impressively -imprisonment -improbable -impromptu -improper -improperly -impropriety -improve -improved -improvement -improving -imprudence -imprudent -impudence -impudent -impulse -impulsive -impulsively -impunity -impure -impute -imputed -in -inability -inaccessible -inaction -inactive -inadequate -inadvertently -inanimate -inarticulate -inasmuch -inattention -inattentive -inaudible -incalculable -incapable -incapacity -incarnate -incense -incensed -incessant -incessantly -inch -incident -incidental -incidentally -incipient -incited -inclement -inclination -incline -inclined -inclining -include -included -including -incoherent -incoherently -income -incommoded -incompatible -incomplete -incomprehensible -inconceivable -incongruity -incongruous -inconsiderable -inconsiderate -inconsistency -inconsistent -inconsolable -inconstant -inconvenience -inconvenient -incorporated -incorrigible -incorruptible -increase -increased -increasing -incredible -incredibly -incredulity -incredulous -incredulously -incumbent -incur -incurable -incurred -incurring -indebted -indecision -indecorous -indeed -indefatigable -indefinable -indefinite -indefinitely -indelible -independence -independent -independently -indescribable -indescribably -indestructible -index -indicate -indicated -indicating -indication -indicative -indifference -indifferent -indifferently -indignant -indignantly -indignation -indignity -indirect -indirectly -indiscreet -indiscretion -indiscriminately -indispensable -indisposed -indisposition -indisputable -indistinct -indistinctly -individual -individuality -individually -indolence -indolent -indomitable -indoors -induce -induced -inducement -indulge -indulged -indulgence -indulgent -indulging -industrious -industry -ineffable -ineffectual -inequality -inert -inestimable -inevitable -inevitably -inexcusable -inexhaustible -inexorable -inexperience -inexperienced -inexplicable -inexpressible -inexpressibly -inextricable -infallible -infallibly -infamous -infamy -infancy -infant -infantry -infatuated -infatuation -infection -infectious -infer -inference -inferior -inferiority -infernal -inferred -infinite -infinitely -infinity -infirm -infirmity -inflamed -inflammation -inflated -inflexible -inflict -inflicted -infliction -influence -influenced -influential -inform -informant -information -informed -informer -informing -infuriated -infused -ingenious -ingenuity -ingratitude -inhabit -inhabitant -inhabited -inhaling -inherent -inherit -inheritance -inherited -inhuman -inimitable -initial -initiated -initiation -injunction -injure -injured -injuries -injuring -injurious -injury -injustice -ink -inkling -inkstand -inky -inlaid -inland -inmate -inmost -inn -innate -inner -innermost -innocence -innocent -innocently -innumerable -inoffensive -inordinate -inquest -inquire -inquired -inquiries -inquiring -inquiringly -inquiry -inquisitive -inquisitively -insane -insanity -insatiable -inscribed -inscription -inscrutable -insect -insensibility -insensible -insensibly -inseparable -insert -inserted -inside -insidious -insight -insignificance -insignificant -insinuating -insipid -insist -insolence -insolent -insolently -insomuch -inspect -inspected -inspection -inspector -inspiration -inspire -inspired -inspiring -installed -instance -instant -instantaneous -instantaneously -instantly -instead -instigation -instinct -instinctive -instinctively -instituted -institution -instruct -instructed -instructing -instruction -instructions -instructive -instructor -instrument -insufferable -insufficient -insult -insulted -insulting -insupportable -insurance -insured -insurmountable -insurrection -intact -integrity -intellect -intellectual -intelligence -intelligent -intelligible -intend -intended -intense -intensely -intensified -intensity -intent -intention -intentionally -intently -inter -intercept -interchange -interchanged -intercourse -interest -interested -interesting -interfere -interfered -interference -interfering -interim -interior -intermediate -interment -interminable -intermission -intermittent -internal -internally -interpose -interposed -interpret -interpretation -interpreted -interpreter -interpreting -interrupt -interrupted -interrupting -interruption -interspersed -interval -intervened -intervening -intervention -interview -intimacy -intimate -intimated -intimately -intimating -intimation -intimidated -into -intolerable -intonation -intoxicated -intoxication -intricate -intrigue -introduce -introduced -introducing -introduction -intrude -intruder -intruding -intrusion -intuition -inured -invade -invaded -invading -invalid -invaluable -invariable -invariably -invasion -invent -invented -invention -inventor -invest -invested -investigate -investigated -investigating -investigation -investment -inveterate -invincible -invisible -invitation -invite -invited -inviting -invoked -involuntarily -involuntary -involve -involved -involving -inward -inwardly -inwards -irksome -iron -ironed -ironical -ironically -irons -irony -irrational -irregular -irregularity -irregularly -irrelevant -irremediable -irreparable -irrepressible -irreproachable -irresistible -irresistibly -irresolute -irresolutely -irresponsible -irrevocable -irrevocably -irritability -irritable -irritate -irritated -irritating -irritation -is -island -islands -isolated -isolation -issue -issued -issuing -it -item -its -itself -ivory -ivy -jack -jacket -jaded -jagged -jail -jam -jar -jargon -jaunty -jaw -jaws -jealous -jealously -jealousy -jelly -jerk -jerks -jest -jesting -jet -jewel -jeweller -jewellery -jewels -jingle -job -join -joint -joke -joking -jolly -jolt -jot -journal -journey -jovial -joy -joyful -joyfully -joyous -joyously -judge -judges -judging -judgment -judicial -judicious -judiciously -jug -juice -jumbled -jump -jumping -junction -juncture -junior -jury -just -justice -justifiable -justification -justified -justify -justifying -justly -jutting -juvenile -keel -keen -keener -keenly -keenness -keep -keeper -keeping -ken -kennel -kep -kept -kerchief -kettle -key -keyhole -kick -kid -kill -killing -kin -kind -kindle -kindled -kindliness -kindling -kindly -kindness -kindred -king -kingdom -kings -kinsman -kiss -kissing -kitchen -kite -kitten -knack -knave -knee -kneel -kneeling -knell -knelt -knew -knife -knight -knights -knit -knitted -knitting -knives -knob -knock -knocker -knocking -knoll -knot -knotted -knotty -know -knowing -knowledge -known -la -label -labelled -labor -laboratory -laborious -laboriously -labour -laboured -labourer -labyrinth -lace -lack -lacking -laconic -lad -ladder -ladders -laden -ladies -lady -ladyship -lagging -laid -lain -lair -lake -lakes -lamb -lame -lament -lamentable -lamentation -lamentations -lamented -lamp -lamplight -lance -land -landed -landing -landlady -landlord -lands -landscape -lane -language -languid -languidly -languishing -languor -lank -lantern -lanterns -lap -lapping -lapse -larboard -larder -large -largely -larger -largest -lark -lash -lashed -lashing -lass -lassitude -last -lasting -lastly -latch -late -lately -latent -later -latest -lath -latitude -latter -latterly -lattice -latticed -laudable -laudanum -laugh -laughable -laughing -laughingly -laughter -launch -laurel -lavender -lavish -law -lawful -lawless -lawn -laws -lawyer -lay -layer -layers -laying -lazily -lazy -le -lead -leaden -leader -leading -leaf -leafless -leafy -league -leak -leaky -lean -leaning -leant -leap -leaping -leapt -learn -learned -learning -learnt -lease -least -leastways -leather -leathern -leave -leaves -leaving -lecture -led -ledge -lee -leech -leer -left -leg -legacy -legal -legally -legend -legged -legible -legion -legitimate -leisure -leisurely -lemon -lemonade -lend -lending -length -lengthen -lent -less -lessen -lesser -lesson -lest -let -lethargy -letter -letters -letting -level -levelled -lever -levity -liable -liar -liberal -liberality -liberally -liberated -liberty -library -licence -license -licensed -lick -licking -lid -lie -lied -lies -lieu -lieutenant -life -lifeless -lifetime -lift -lifting -light -lighted -lighten -lighter -lighthouse -lighting -lightly -lightness -lightning -lights -like -likelihood -likely -likeness -likewise -liking -lilac -lilies -lily -limb -lime -limit -limitation -limitations -limited -limits -limp -line -lined -linen -lines -linger -lining -link -linked -links -lion -lions -lip -lipped -liquid -liquor -lisp -list -listen -listener -listening -listless -listlessly -listlessness -lists -lit -literal -literally -literary -literature -lithe -litter -little -live -lived -livelier -liveliest -livelihood -liveliness -lively -liver -livery -lives -livid -living -load -loaded -loading -loads -loaf -loan -loath -loathing -loathsome -loaves -lobby -lobster -local -locality -lock -locking -lodge -lodged -lodger -lodging -lodgings -loft -loftier -loftiest -lofty -log -logic -logical -loins -loiter -lone -loneliness -lonely -lonesome -long -longer -longing -look -looking -lookout -looming -loop -loophole -loose -loosely -loosen -lord -lordly -lords -lose -loser -losing -loss -lost -lot -loth -lots -loud -loudly -lounge -lounging -lovable -love -loveliest -loveliness -lovely -lover -lovers -loving -lovingly -low -lower -lowering -lowest -lowly -loyal -loyalty -lucid -luck -luckily -lucky -lucrative -ludicrous -luggage -lugubrious -lull -lumber -luminous -lump -lunatic -lunch -luncheon -lure -lurid -luring -lurk -lust -lustily -lustre -lustrous -lusty -luxuriant -luxurious -luxuriously -luxury -lying -machine -machinery -mad -madam -maddening -made -madly -madman -madness -magazine -magic -magical -magician -magistrate -magistrates -magnanimity -magnanimous -magnificence -magnificent -magnificently -magnified -magnify -magnifying -magnitude -mahogany -maid -maiden -maids -mail -main -mainly -maintain -maintained -maintaining -maintenance -majestic -majestically -majesty -major -majority -make -maker -making -malady -male -malevolent -malice -malicious -malignant -malignity -mamma -man -manage -managed -management -manager -managing -mane -manfully -manger -manhood -mania -manifest -manifestation -manifold -mankind -manly -manned -manner -mannered -manners -manor -mansion -mantel -mantelpiece -mantle -manual -manufacture -manufactured -manufacturing -manuscript -many -map -mar -marble -marbles -march -marches -marching -mare -margin -marine -mariner -mark -marked -market -marking -marriage -married -marrow -marry -marrying -marsh -marshal -marshes -marshy -martial -martyr -martyrdom -martyrs -marvel -marvelled -marvelling -marvellous -marvellously -masculine -mask -masked -masonry -mass -massacre -masses -massive -mast -master -mastered -mastering -masterly -masterpiece -masters -mastery -mat -match -matched -mate -material -materially -materials -maternal -mathematical -mathematics -matrimonial -matrimony -matron -matronly -matted -matter -matting -mattress -mature -matured -maturity -maxim -may -maybe -mayor -maze -me -meadow -meagre -meal -mean -meaning -meanly -means -meant -meantime -meanwhile -measles -measure -measured -measurement -measures -measuring -meat -mechanical -mechanically -mechanics -mechanism -medal -meddle -mediation -medical -medicine -meditate -meditated -meditating -meditation -meditatively -medium -medley -meek -meekly -meekness -meet -meeting -melancholy -mell -mellow -melodious -melody -melt -melting -member -memoirs -memorable -memorandum -memorial -memory -men -menace -menaced -menacing -mend -mended -mending -mental -mentally -mention -mercenary -merchandise -merchant -merciful -mercifully -merciless -mercilessly -mercy -mere -merely -merest -merit -merited -meritorious -merits -merrily -merriment -merry -mess -message -messenger -met -metal -metallic -metals -metaphor -metaphorically -metaphysical -metaphysics -method -methodical -methodically -metropolis -mice -microscope -microscopic -mid -midday -middle -midnight -midst -midsummer -midway -mien -might -mightier -mightily -mighty -mild -mildly -mildness -mile -miles -military -militia -milk -mill -miller -million -millionaire -mills -mimic -mince -mind -minded -mindful -mine -mineral -mines -mingle -mingled -miniature -minister -minor -mint -minute -minutely -minuteness -minutes -minutest -miracle -miraculous -mire -mirror -mirth -miscellaneous -mischance -mischief -mischievous -misconduct -miser -miserable -miserably -miseries -misery -misfortune -misgiving -mishap -mislead -misled -misplaced -miss -misses -missile -missing -mission -missionary -missis -mist -mistake -mistaken -mistaking -mistook -mistress -mistrust -misty -misunderstand -misunderstanding -misunderstood -mite -mix -mixed -mixing -mixture -mo -moan -mob -mock -mockery -mode -model -modelled -moderate -moderately -moderation -modern -modest -modestly -modesty -modified -moist -moisture -mole -moment -momentarily -momentary -momentous -mon -monarch -money -mongrel -monkey -monomania -monosyllable -monotonous -monotony -monsieur -monster -monstrous -month -monthly -monument -mood -moodily -moody -moon -moonlight -moonlit -moonshine -moor -moral -morality -morbid -more -moreover -morn -morning -mornings -morose -morrow -morsel -mortal -mortality -mortally -mortar -mortification -mortified -mortify -mortifying -moss -mossy -most -mostly -moth -mother -motherly -mothers -motion -motionless -motive -motley -motor -mottled -motto -mould -moulding -mouldy -mound -mounds -mount -mountain -mountains -mounted -mounting -mourn -mourner -mournful -mourning -mouse -moustache -mouth -mouthed -mouthful -move -movement -moving -much -mud -muddle -muddy -muffin -mug -mule -multiplication -multiplied -multiply -multiplying -multitude -multitudinous -mumbled -murder -murdered -murderer -murderous -murky -murmur -muscle -muscular -museum -mushroom -music -musical -musician -musing -musk -musket -muslin -must -mustard -muster -musty -mute -mutilated -mutinous -mutiny -mutter -mutton -mutual -mutually -muzzle -my -myself -mysteries -mysterious -mysteriously -mystery -mystic -na -nail -naked -name -named -nameless -namely -naming -nap -nape -napkin -narcotic -narrate -narrated -narration -narrative -narrator -narrow -narrowly -nasty -nation -national -nations -native -natural -naturally -nature -natured -naturedly -naught -naughty -nautical -naval -navigation -navy -nay -ne -near -nearly -neat -neatly -neatness -necessaries -necessarily -necessary -necessity -neck -neckcloth -necked -necklace -need -needed -needful -needle -needles -needless -needlework -needs -negative -neglect -neglected -neglecting -negligence -negligent -negligently -negotiation -negro -neighbor -neighborhood -neighbour -neighbourhood -neighbouring -neither -nephew -nerve -nerved -nerves -nervous -nervously -nervousness -nest -nestling -net -nether -network -neutral -never -nevertheless -new -newcomer -newly -news -newspaper -next -nice -nicely -nicer -nicest -nicety -nick -nickname -niece -nigh -night -nightcap -nightfall -nightingale -nightly -nightmare -nights -nimble -nimbly -nine -nineteen -nineteenth -ninety -ninth -nip -no -nobility -noble -nobleman -nobody -nocturnal -nod -nodded -nodding -noise -noiseless -noiselessly -noisily -noisy -nominal -non -none -nonsense -nonsensical -nook -noon -noonday -nor -normal -north -northern -northward -nose -nosed -nosegay -nostril -not -notable -notably -note -notebook -noted -notes -nothing -nothingness -notice -noticeable -noticed -noticing -noting -notion -notions -notorious -notwithstanding -nought -nourish -nourished -nourishing -nourishment -novel -novels -novelty -novice -now -nowadays -nowhere -nuisance -number -numbers -numerous -nun -nuptial -nurse -nursery -nursing -nurture -nurtured -nut -nutmeg -nuts -oak -oaken -oaks -oar -oars -oasis -oath -oaths -obdurate -obedience -obedient -obediently -obeisance -obey -obeyed -object -objection -objectionable -obligation -oblige -obliged -obliging -obligingly -oblique -obliquely -obliterated -oblivion -oblivious -oblong -obnoxious -obscene -obscure -obscurity -obsequious -observable -observance -observant -observation -observe -observed -observer -observing -obstacle -obstinacy -obstinate -obstinately -obstruction -obtain -obtaining -obtruded -obtrusive -obvious -obviously -occasion -occasional -occasionally -occasions -occupant -occupation -occupied -occupy -occur -occurred -occurrence -occurring -ocean -odd -oddly -odds -odious -odor -odour -of -off -offence -offend -offended -offender -offensive -offer -offered -offering -office -officer -official -officially -officiating -officious -offspring -oft -often -oh -oil -oily -old -olden -older -oldest -olive -omen -ominous -omission -omit -omitted -omitting -omnipotent -on -once -one -oneself -onion -onions -only -onset -onslaught -onto -onward -onwards -ooze -opaque -open -opened -opening -opera -operate -operated -operating -operation -operations -opinion -opium -opponent -opportune -opportunity -oppose -opposed -opposite -opposition -oppress -oppression -oppressive -opulence -or -oracle -orange -oration -orator -oratory -orb -orchard -orchestra -ordained -ordeal -order -ordered -orderly -orders -ordinarily -ordinary -organ -organisation -organism -organization -organized -origin -original -originality -originally -originate -originated -ornament -ornamental -ornamented -orphan -orthodox -ostentation -ostentatiously -ostrich -other -otherwise -ought -ounce -our -ours -ourselves -out -outbreak -outburst -outcast -outcry -outdone -outdoor -outer -outfit -outhouse -outlandish -outlet -outline -outlined -outlived -outrage -outraged -outrageous -outright -outset -outside -outsider -outskirts -outspread -outstrip -outward -outwardly -outwards -outweigh -oval -oven -over -overbearing -overboard -overcame -overcast -overcoat -overcome -overcoming -overdo -overflow -overgrown -overhanging -overhead -overhear -overheard -overhearing -overhung -overlook -overmuch -overnight -overpowering -overspread -overtake -overthrow -overtook -overwhelm -overwhelming -owe -owing -owl -own -owner -ox -oxen -oyster -pace -paced -pacify -pacing -pack -package -packed -packet -packing -padded -pagan -page -pages -paid -pail -pain -pained -painful -painfully -pains -paint -painted -painter -painting -pair -pairs -palace -palate -pale -paler -pall -pallid -pallor -palm -palpable -palpitating -paltry -pampered -pan -pane -panel -panelled -pang -panic -pant -pantomime -pantry -papa -paper -papers -par -parade -paradise -paradox -paragraph -parallel -paralysed -paralysis -paramount -parapet -parasol -parcel -parchment -pardon -pardonable -parent -parentage -parental -parish -park -parley -parliamentary -parlor -parlour -paroxysm -parrot -parsley -parson -parsonage -part -partake -parted -partial -partiality -participate -participation -particle -particular -particularly -particulars -parting -partition -partly -partner -partners -partnership -partook -partridges -parts -party -pass -passable -passage -passed -passenger -passer -passers -passing -passion -passionate -passionately -passive -passport -past -paste -pasteboard -pasted -pastor -pastry -pasture -pat -patch -patchwork -patent -paternal -paternity -path -pathetic -pathetically -pathos -pathway -patience -patient -patiently -patriarch -patriarchal -patrician -patriot -patriotic -patriotism -patron -patronage -patroness -patted -patter -pattern -patting -pauper -pause -pausing -pavement -paving -paw -pawnbroker -pay -paying -payment -pea -peace -peaceful -peacefully -peach -peacock -peak -peaked -peal -pear -pearl -peasant -pebble -peck -pecking -peculiar -peculiarity -peculiarly -pecuniary -pedestal -pedestrian -peel -peeling -peep -peeping -peer -peevish -peg -pen -penalty -penance -pence -pencil -pendent -pendulum -penetrate -penetrating -penetration -penitence -penitent -penknife -penniless -penny -pension -pensive -pent -people -peopled -pepper -per -perceive -perceived -perceiving -perceptible -perceptibly -perception -perch -perchance -perdition -peremptory -perennial -perfect -perfecting -perfection -perfectly -perforce -perform -performance -performed -performer -performing -perfume -perhaps -peril -perilous -period -periodical -periodically -perish -perished -perishing -permanent -permanently -permission -permit -perpendicular -perpetrated -perpetual -perpetually -perplex -perplexed -perplexity -persecuted -persecuting -persecution -perseverance -persevere -persevering -persist -persistence -persistent -persistently -person -personage -personal -personality -personally -personification -personified -perspective -perspiration -persuade -persuaded -persuasion -persuasive -pert -perturbation -perusal -perused -pervaded -pervading -perverse -perversity -pestilence -pet -petition -petrified -petted -petticoat -petting -pettishly -petty -petulance -pew -pewter -phantom -phase -phenomena -phenomenon -philanthropy -philosopher -philosophic -philosophical -philosophically -philosophy -phlegm -photograph -phrase -phraseology -physic -physical -physically -physician -physiognomy -physiology -piano -pianoforte -pick -picked -picking -pickle -pickled -picnic -picture -pictured -picturesque -picturing -pie -piece -pier -pierce -pierced -piercing -piety -pig -pigeon -pigs -pike -pile -piled -piles -pilgrim -pilgrimage -pilgrims -piling -pill -pillar -pillars -pillow -pills -pilot -pin -pinch -pinching -pine -pines -pink -pinnacle -pins -pint -pious -piously -pipe -piping -pique -pirate -pistol -pit -pitch -pitched -pitcher -pitching -piteous -pitiable -pitied -pitiful -pitiless -pitilessly -pittance -pity -pitying -pivot -place -places -placid -placidity -placidly -placing -plague -plaid -plain -plainly -plainness -plains -plaintive -plaintively -plan -plane -planet -planets -plank -planning -plant -plantation -planted -plaster -plastered -plate -platform -plausible -play -player -playfellow -playful -playfully -playfulness -playing -playmate -plaything -plea -plead -pleaded -pleading -pleasant -pleasantry -please -pleasing -pleasurable -pleasure -plebeian -pledge -plentiful -plentifully -plenty -plight -plodding -plot -plotted -plough -pluck -plum -plumage -plume -plump -plunder -plunge -plunging -plying -pocket -pocketbook -pocketing -poem -poet -poetic -poetical -poetry -poets -poignant -point -pointed -pointedly -pointing -points -poise -poised -poison -poisoning -poisonous -poke -poker -poking -pole -poles -police -policeman -policy -polish -polished -polite -politely -politeness -politic -political -politician -politics -polluted -pomp -pompous -pond -ponder -pondered -ponderous -pony -pooh -pool -pools -poor -poorly -pop -popular -popularity -population -populous -porcelain -porch -pore -poring -pork -porridge -port -portal -portentous -porter -portfolio -portico -portion -portly -portmanteau -portrait -pose -position -positive -positively -possess -possessed -possession -possessor -possibility -possible -possibly -post -posted -posterity -posting -postman -postpone -postponed -postscript -posture -pot -potato -potatoes -potent -poultry -pounce -pound -pour -poverty -powder -power -powerful -powerfully -powerless -powers -pr -practicable -practical -practically -practice -practise -practised -practitioner -praise -praiseworthy -praising -pray -prayer -praying -pre -preach -preacher -precarious -precaution -precede -preceded -precedence -preceding -precept -precincts -precious -precipice -precipitate -precipitately -precipitation -precise -precisely -precision -precocious -predecessor -predestined -predicament -predict -prediction -predominant -predominated -preface -prefer -preferable -preference -preferred -preferring -pregnant -prejudice -prejudiced -preliminaries -preliminary -prelude -premature -prematurely -premeditated -premises -premium -preoccupation -preoccupied -preparation -preparatory -prepare -prepared -preparing -prepossessing -preposterous -prescribed -prescription -presence -present -presentable -presentation -presented -presentiment -presently -presents -preservation -preserve -preserved -preserver -preserving -preside -president -press -pressing -pressure -presumably -presume -presumed -presuming -presumption -presumptuous -pretence -pretend -pretended -pretension -pretext -prettier -prettiest -prettily -pretty -prevail -prevailing -prevalent -prevent -prevented -previous -prey -price -priceless -prick -pride -priest -prig -prim -primary -prime -primitive -prince -princely -princess -principal -principally -principle -print -printed -printer -printing -prior -prison -prisoner -privacy -private -privately -privation -privilege -privileged -privy -prize -pro -probability -probable -probably -probing -problem -procedure -proceed -proceeding -proceedings -proceeds -process -processes -procession -proclaim -proclaimed -proclaiming -proclamation -procure -procured -procuring -prodigal -prodigious -prodigiously -prodigy -produce -produced -producing -product -production -productive -profane -profess -professed -profession -professional -professionally -professor -profile -profit -profitable -profound -profoundly -profundity -profusion -progeny -programme -progress -prohibition -project -projection -prolong -prolonged -prominent -promise -promised -promising -promote -promoted -promoting -promotion -prompt -promptitude -promptly -prone -pronounce -pronounced -pronouncing -pronunciation -proof -prop -propensity -proper -properly -property -prophecy -prophet -prophetic -propitiate -propitious -proportion -proportionate -proportioned -proposal -propose -proposed -proposing -proposition -proprietor -propriety -prosaic -prose -prosecute -prosecuted -prosecution -prospect -prospective -prosper -prosperity -prosperous -prostrate -prostration -prot -protect -protected -protecting -protection -protector -protest -protestation -protested -protesting -protruded -protruding -proud -proudly -prove -proverb -provide -provided -providence -providential -providing -province -provinces -provincial -proving -provision -provisions -provocation -provoke -provoked -provoking -prow -prowess -prowl -proximity -prudence -prudent -prudently -pry -prying -psychological -public -publication -publicity -publicly -publish -published -publishing -pudding -puddle -puff -pull -pulpit -pulse -pump -pumping -punch -punctual -punctuality -punctually -pungent -punish -punished -punishing -punishment -puny -pupil -puppy -purchase -purchased -purchaser -pure -purely -purer -purest -purge -purified -purify -purity -purple -purport -purpose -purposed -purposeless -purposely -purse -pursuance -pursue -pursued -pursuing -pursuit -push -pushed -pushing -put -putting -puzzle -pyramid -quaint -quaking -qualified -quality -quantity -quarrel -quarrelled -quarrelling -quarrelsome -quarry -quart -quarter -quartered -quarterly -quarters -quay -queen -queens -queer -quench -querulous -query -quest -question -questionable -questioner -questioning -quick -quicken -quicker -quickly -quickness -quid -quiet -quieter -quietly -quietness -quill -quilt -quit -quite -quiver -quotation -quote -quoted -quoting -rabbit -rabble -race -races -racing -rack -racket -racking -radiance -radiant -raft -rag -rage -ragged -raging -rags -rail -railing -raillery -railway -raiment -rain -rainbow -rains -rainy -raise -raised -raising -rake -raked -rakish -rallied -rally -rallying -ram -ramble -rambling -ran -random -rang -range -ranged -ranges -ranging -rank -rap -rapid -rapidity -rapidly -rapt -rapture -rapturous -rapturously -rare -rarely -rarity -rascal -rascally -rash -rashly -rat -rate -rated -rates -rather -rational -rationally -rats -rattle -rattling -raven -ravenous -raving -raw -ray -rays -razor -re -reach -reaching -reaction -read -reader -readily -readiness -reading -ready -real -realisation -realise -realised -reality -realization -realize -realized -really -realm -reap -reappear -reappearance -rear -reason -reasonable -reasonableness -reasonably -reasoned -reasoning -reassurance -reassure -rebel -rebellion -rebellious -rebuke -recall -recede -receding -receipt -receive -received -receiver -receiving -recent -recently -receptacle -reception -recess -recipe -reciprocal -reciprocated -recital -recite -recited -reciting -reckless -reckon -reckoning -reclaim -reclaimed -reclined -reclining -recognise -recognised -recognising -recognition -recognize -recognized -recognizing -recoil -recollect -recollected -recollection -recommenced -recommend -recommendation -recommended -recompense -reconcile -reconciled -reconciling -record -recorded -recourse -recover -recovered -recovery -recreation -recruit -recur -recurrence -recurring -red -redder -reddish -redeem -redeeming -redness -redress -reduce -reduced -reducing -reduction -reed -reef -reel -refer -reference -referred -referring -refined -refinement -reflect -reflected -reflecting -reflection -reflectively -reform -reformation -refractory -refrain -refresh -refreshed -refreshing -refreshment -refuge -refusal -refuse -refused -refusing -refute -regain -regained -regard -regarded -regarding -regardless -regiment -region -regions -register -registered -regret -regretfully -regular -regularity -regularly -regulate -regulated -regulating -regulation -regulations -rehearsal -reign -rein -reinforced -reins -reject -rejected -rejection -rejoice -rejoiced -rejoicing -rejoin -rejoinder -relapse -relapsing -relate -related -relating -relation -relations -relationship -relative -relax -relaxation -release -released -releasing -relent -relentless -reliable -reliance -relic -relied -relief -relieve -relieved -relieving -religion -religious -relinquish -relish -reluctance -reluctant -reluctantly -rely -relying -remain -remainder -remains -remark -remarkable -remarked -remedy -remember -remembered -remembrance -remind -reminiscence -remiss -remnant -remonstrance -remonstrate -remorse -remorselessly -remote -remotely -remoter -remotest -removal -remove -removed -removing -rend -render -rendered -rendering -rending -renew -renewal -renewed -renounce -renounced -renouncing -renown -renowned -rent -repaid -repair -repaired -reparation -repast -repay -repeat -repeated -repeatedly -repeating -repel -repelled -repent -repentance -repentant -repetition -repine -replace -replaced -replacing -replenished -replete -reply -report -reported -repose -reposed -reposing -reprehensible -represent -representation -representative -representatives -represented -repress -repressed -repressing -reprimand -reproach -reproachful -reproachfully -reproaching -reproof -reproved -reproving -republic -republican -repudiated -repugnance -repugnant -repulse -repulsed -repulsion -repulsive -reputation -repute -reputed -request -require -required -requiring -requisite -requisition -requited -res -rescue -rescued -rescuing -research -resemblance -resemble -resent -resentful -resentment -reservation -reserve -reserved -reserving -reside -resided -residence -resident -residing -resign -resignation -resigned -resist -resistance -resisted -resolute -resolutely -resolution -resolve -resolved -resolving -resort -resource -resources -respect -respectability -respectable -respected -respectful -respectfully -respecting -respective -respiration -respite -resplendent -respond -response -responsibility -responsible -responsive -rest -restaurant -rested -resting -restless -restlessly -restlessness -restoration -restorative -restore -restored -restoring -restrain -restraining -restraint -restricted -result -resume -resumed -resuming -resurrection -retail -retain -retained -retaining -retaliation -retarded -reticule -retire -retired -retirement -retiring -retort -retrace -retraced -retract -retreat -retribution -return -returning -reveal -revealed -revealing -revelation -revenge -revengeful -revenue -reverence -reverend -reverent -reverential -reverie -reverse -reversed -reversion -revert -review -reviewed -revival -revive -revived -reviving -revolt -revolting -revolution -revolved -revolver -revolving -reward -rewarded -rheumatic -rhyme -rhythm -rib -ribbon -rice -rich -riches -richly -richness -rickety -rid -ridden -riddle -ride -rider -ridge -ridicule -ridiculous -riding -rifle -rift -rigging -right -righteous -righteousness -rightful -rightly -rights -rigid -rigidity -rigorous -rim -ring -ringing -riot -riotous -rip -ripe -ripened -ripple -rise -risen -rising -risk -rite -rival -river -rivers -riveted -road -roadway -roam -roar -roaring -roast -roasted -roasting -rob -robber -robbery -robbing -robe -robes -robin -robust -rock -rocket -rocking -rocks -rocky -rod -rode -rogue -rogues -roll -rolling -rolls -romance -romantic -roof -roofed -room -roomy -root -rooted -rope -rose -rosy -rot -rotted -rotten -rotting -rouge -rough -roughly -roughness -round -roundabout -rounded -roundly -rouse -rousing -rout -route -routed -routine -roving -row -rowing -royal -rub -rubber -rubbing -rubbish -ruby -ruddy -rude -rudely -rudeness -ruffian -ruffle -ruffled -rug -rugged -ruin -ruined -ruinous -rule -ruler -rules -ruling -rum -rumble -rummage -rummaged -rumour -run -rung -runners -running -rural -ruse -rush -rushing -rust -rustic -rustle -rusty -ruthless -ruthlessly -sable -sack -sacred -sacrifice -sacrificed -sacrificing -sad -saddle -saddles -sadly -sadness -safe -safeguard -safely -safety -sagacious -sagacity -sage -said -sail -sailing -sailor -saint -saintly -saints -saith -sake -salad -salary -sale -sallied -sallow -sally -salmon -saloon -salt -salts -salutary -salutation -salute -saluted -saluting -salvation -same -sample -sanction -sanctity -sanctuary -sand -sands -sandwich -sandy -sane -sang -sanguinary -sanguine -sanity -sank -sap -sar -sarcasm -sarcastic -sash -sat -satin -satire -satirical -satisfaction -satisfactorily -satisfactory -satisfied -satisfy -satisfying -saturated -sauce -saucepan -saucer -saucy -sausage -savage -savagely -save -saving -savings -savoury -saw -sawdust -say -saying -scaffold -scaffolding -scale -scaled -scales -scandal -scant -scantily -scanty -scar -scarce -scarcely -scarcity -scare -scarf -scarlet -scarred -scatter -scattered -scattering -scene -scenery -scent -scented -sceptical -scepticism -scheme -scheming -scholar -school -schoolboy -schooling -schoolmaster -schoolroom -schools -schooner -science -scientific -scissors -scold -scope -scorched -score -scorn -scornful -scornfully -scoundrel -scourge -scowl -scramble -scrambled -scrap -scrape -scraping -scratch -scratches -scrawl -scream -screaming -screen -screw -screwed -scrub -scrubbed -scrubbing -scruple -scrupulous -scrupulously -scrutinized -scrutinizing -scrutiny -scuffle -scullery -sculptor -scum -scuttle -se -sea -seal -sealed -sealing -seaman -search -searching -searchingly -seas -season -seasoned -seat -seated -seating -seaward -seaweed -secluded -seclusion -second -secondary -secondly -secrecy -secret -secretary -secretly -sect -section -secure -secured -securely -security -sedentary -seduced -seductive -sedulously -see -seed -seeing -seek -seeker -seeking -seem -seeming -seen -seize -seizing -seizure -seldom -select -selected -selection -self -selfish -selfishness -sell -selling -selves -semblance -semi -semicircle -send -sending -senior -sensation -sense -senseless -sensibility -sensible -sensibly -sensitive -sensual -sent -sentence -sentenced -sentiment -sentimental -sentinel -sentry -separate -separated -separately -separates -separating -separation -sepulchral -sepulchre -sequel -sequence -serene -serenely -serenity -sergeant -series -serious -seriously -seriousness -sermon -serpent -servant -serve -service -serviceable -services -servile -servility -serving -servitude -set -settee -setting -settle -settled -settlement -settling -seven -seventeen -seventeenth -seventh -seventy -sever -several -severe -severed -severely -severest -severity -sew -sewing -sewn -sex -sexton -shabby -shade -shaded -shades -shading -shadow -shadowed -shadowy -shady -shaft -shaggy -shake -shaken -shaking -shall -shallow -shalt -sham -shame -shameful -shameless -shan -shape -shaped -shapeless -shaping -share -shares -sharing -sharp -sharpened -sharper -sharply -sharpness -shave -shaven -shaving -shawl -she -sheaf -sheath -shed -shedding -sheep -sheepishly -sheer -sheet -shelf -shell -shelter -sheltered -shelves -shepherd -sheriff -sherry -shield -shift -shifting -shilling -shine -shines -shining -shiny -ship -shipping -shipwreck -shirt -shiver -shoal -shock -shocking -shod -shoe -shoes -shone -shook -shoot -shooting -shop -shore -shorn -short -shorten -shorter -shortly -shortness -shot -should -shoulder -shouldered -shout -shouted -shove -shovel -shoving -show -shower -showered -showers -showing -shown -showy -shrank -shrewd -shrewdly -shrewdness -shriek -shrill -shrine -shrink -shrinking -shroud -shrubbery -shrug -shrugging -shrunk -shudder -shuddering -shun -shut -shutter -shy -shyly -shyness -si -sick -sickening -sickly -sickness -side -sideboard -sided -sidelong -sideways -siege -sigh -sight -sighted -sign -signal -signature -significance -significant -signified -signify -silence -silenced -silent -silently -silhouette -silk -silken -silky -sill -silly -silver -silvery -similar -similarity -similarly -simile -simple -simpleton -simplicity -simply -simultaneous -simultaneously -sin -since -sincere -sincerely -sincerity -sinewy -sinful -sing -singer -singing -single -singly -singular -singularity -singularly -sinister -sink -sinking -sinner -sins -sip -sipping -sir -sire -sister -sisterly -sisters -sit -site -sitting -situated -situation -six -sixpence -sixteen -sixteenth -sixth -sixty -size -sized -skeleton -sketch -skiff -skilful -skilfully -skill -skilled -skimming -skin -skinned -skinny -skip -skipper -skipping -skirt -skirting -skull -sky -skylight -slab -slack -slain -slam -slamming -slander -slang -slap -slapping -slate -slatternly -slaughter -slave -slavery -slay -sledge -sleek -sleep -sleeper -sleepers -sleeping -sleepless -sleeplessness -sleeps -sleepy -sleet -sleeve -slender -slept -slice -slide -sliding -slight -slighter -slighting -slightingly -slightly -slim -slime -slimy -sling -slinking -slip -slipper -slippers -slippery -slit -slope -slopes -sloping -sloth -slouch -slough -slovenly -slow -slowly -slowness -sluggish -slumber -slung -slunk -sly -slyly -smack -small -smart -smartly -smash -smashed -smashing -smear -smell -smelling -smelt -smile -smiling -smitten -smoke -smoked -smoking -smoky -smooth -smoothing -smoothly -smoothness -smote -smother -smothered -snail -snake -snakes -snap -snapping -snare -snarl -snatch -sneak -sneaking -sneer -sneeze -sneezing -sniff -snore -snoring -snort -snow -snowy -snub -snuff -snug -snugly -so -soap -soar -soaring -sob -sobbing -sober -soberly -sobriety -sociable -social -society -socks -soda -sodden -sofa -soft -soften -softly -softness -soil -sojourn -solace -solar -sold -soldier -sole -solely -solemn -solemnity -solemnly -solicit -solicitor -solicitous -solicitude -solid -soliloquy -solitary -solitude -solution -solve -sombre -some -somebody -somehow -someone -something -sometime -sometimes -somewhat -somewhere -son -song -sonorous -sons -soon -sooner -soot -soothe -soothing -soothingly -sooty -sordid -sore -sorely -sorrow -sorrowfully -sorry -sort -sought -soul -sound -sounding -soundly -soup -sour -source -south -southern -southward -sovereign -sow -sowing -sown -space -spacious -spade -span -spare -sparing -spark -sparkle -sparkling -sparks -sparrow -spasm -spasmodic -spat -speak -speaker -speaking -spear -special -specialist -specially -species -specific -specimen -speck -speckled -spectacle -spectacles -spectator -spectral -spectre -speculate -speculating -speculation -sped -speech -speechless -speed -speedily -speedy -spell -spelling -spelt -spend -spending -spends -spent -sphere -spice -spider -spike -spilling -spilt -spin -spine -spinning -spire -spires -spirit -spirited -spirits -spiritual -spit -spite -spiteful -spitting -splash -spleen -splendid -splendidly -splendor -splendour -splinter -split -splitting -spoil -spoiling -spoils -spoilt -spoke -spoken -sponge -spontaneous -spontaneously -spoon -spoonful -sport -sporting -sports -spot -spotless -spotted -spout -sprang -spray -spread -spreading -spree -sprightly -spring -springing -springs -sprinkling -spruce -sprung -spun -spur -spurred -spy -spying -squalid -square -squarely -squat -squatted -squeeze -squeezing -squint -squire -squirrel -st -stab -stability -stable -stables -stack -staff -stage -stagger -stagnant -staid -stain -stair -staircase -stairs -stake -stakes -stale -stalk -stalked -stalking -stall -stalls -stalwart -stammer -stamp -stamping -stand -standard -standing -standstill -staple -star -starboard -stare -staring -stark -starlight -starred -starry -stars -start -starting -startle -starvation -starve -starving -state -stated -stateliness -stately -statement -states -statesman -stating -station -stationary -stations -statue -stature -status -staunch -stay -staying -stays -stead -steadfast -steadfastly -steadier -steadily -steadiness -steady -steak -steal -stealing -stealth -stealthily -stealthy -steam -steamer -steel -steep -steeple -steer -steering -stem -step -stepmother -stepping -sterling -stern -steward -stick -sticking -stiff -stiffly -stiffness -stifle -stifling -stile -still -stimulate -stimulated -stimulating -stimulus -sting -stinging -stingy -stipulate -stipulated -stir -stirring -stitch -stock -stocking -stocks -stole -stolen -stolid -stomach -stone -stones -stony -stood -stool -stoop -stop -stopped -stopping -stops -store -stores -storm -storms -stormy -story -stout -stoutly -stove -straight -straightened -straightforward -straightway -strain -straining -strait -strand -strange -strangely -strangeness -stranger -strangest -strangle -strap -stratagem -straw -stray -streak -stream -streaming -street -strength -strengthen -strenuous -strenuously -stress -stretch -strewn -stricken -strict -strictly -stride -strife -strike -striking -string -strings -strip -striped -strive -striven -strode -stroke -stroking -stroll -strong -strove -struck -structure -struggle -strung -stubble -stubborn -stuck -studded -student -studied -studies -studious -study -studying -stuff -stuffed -stuffing -stumble -stumbling -stump -stung -stunning -stupefied -stupendous -stupid -stupidity -stupidly -stupor -sturdy -style -sub -subdue -subdued -subduing -subject -subjection -sublime -sublimity -submerged -submission -submissive -submit -submitted -submitting -subordinate -subsequent -subsequently -subside -subsist -subsistence -substance -substantial -substitute -substituted -substituting -subterranean -subtle -subtlety -subtly -succeed -success -successful -successfully -succession -successive -successively -successor -such -suck -sucking -sudden -suddenly -suddenness -suffer -sufferer -suffering -suffice -sufficed -sufficiency -sufficient -sufficiently -suffocated -suffocating -suffused -sugar -suggest -suggestion -suggestive -suicide -suit -suitable -suitably -suite -suited -suitor -sulky -sullen -sullenly -sullenness -sulphur -sultry -sum -summary -summer -summit -summon -summons -sumptuous -sun -sunbeam -sunburnt -sundry -sung -sunk -sunken -sunlight -sunlit -sunny -sunrise -sunset -sunshine -sup -super -superannuated -superb -supercilious -superficial -superfluous -superhuman -superintend -superintendence -superintendent -superior -superiority -supernatural -superseded -superstition -superstitious -supper -supple -supplication -supplied -supply -supplying -support -supported -supporting -suppose -supposed -supposing -supposition -suppress -suppressed -suppressing -suppression -supremacy -supreme -supremely -sure -surely -surer -surest -surf -surface -surge -surgeon -surging -surly -surmise -surname -surpass -surpassing -surplus -surprise -surprised -surprising -surprisingly -surrender -surround -surrounding -surroundings -survey -surveyed -surveying -survival -survive -survived -surviving -susceptibility -susceptible -suspect -suspend -suspended -suspense -suspicion -suspicious -suspiciously -sustain -sustained -sustaining -sustenance -swagger -swallow -swam -swamp -swan -swarm -swarthy -sway -swear -swearing -sweat -sweated -sweating -sweep -sweeping -sweeps -sweet -sweetheart -sweetly -sweetness -swell -swelled -swelling -swept -swift -swifter -swiftly -swiftness -swim -swimming -swine -swing -swinging -switch -swollen -swoon -sword -swore -sworn -swung -syllable -symbol -symmetrically -symmetry -sympathetic -sympathetically -sympathise -sympathising -sympathize -sympathy -symptom -system -systematic -systems -table -tablecloth -tables -tablet -tacit -tacitly -taciturn -tack -tackle -tact -tail -tailed -tails -taint -take -taken -taking -tale -talent -tales -talisman -talk -talkative -talker -talking -tall -tallow -tame -tan -tangible -tangle -tangled -tantalizing -tap -tape -taper -tapestry -tapping -taps -tar -target -tart -task -taste -tasted -tasting -tat -tattered -tattoo -tattooed -taught -tavern -tawny -tax -taxes -te -tea -teach -teacher -teaching -team -teapot -tear -tearful -tearing -tears -tease -teasing -technical -tedious -teeth -telegram -telegraph -telescope -tell -teller -telling -temper -temperament -temperate -temperature -tempered -tempest -tempestuous -temple -temporarily -temporary -tempt -temptation -tempted -tempting -ten -tenacious -tenant -tend -tended -tendency -tender -tenderly -tenderness -tenement -tenfold -tenor -tense -tension -tent -tenth -term -terminate -terminated -terminating -termination -terms -terrace -terrestrial -terrible -terribly -terrier -terrific -terrified -terrify -terrifying -territory -terror -test -testament -tested -testified -testify -testimony -text -texture -th -than -thank -thankful -thankfully -thankfulness -thankless -thanks -that -the -theatre -theatrical -thee -theft -their -theirs -them -theme -themselves -then -thence -thenceforth -theological -theology -theoretical -theory -there -thereabouts -thereafter -thereby -therefore -therein -thereof -thereon -thereupon -these -they -thick -thicket -thickly -thickness -thief -thigh -thimble -thin -thine -thing -think -thinking -thinner -thinness -third -thirdly -thirst -thirsty -thirteen -thirteenth -thirty -this -thither -thorn -thorny -thorough -thoroughfare -thoroughly -those -thou -though -thought -thoughtful -thoughtless -thoughtlessness -thousand -thousands -thousandth -thrashing -thread -threadbare -threading -threat -threaten -threateningly -three -threshold -threw -thrice -thrift -thrill -thrilling -thrive -throat -throb -throbbing -throne -throng -through -throughout -throw -throwing -thrown -thrust -thrusting -thud -thumb -thump -thumping -thunder -thunderbolt -thundering -thunderstorm -thunderstruck -thus -thy -thyself -tick -ticket -ticking -tickle -ticklish -tidal -tide -tidied -tidings -tie -tied -tiger -tight -tightening -tightly -tigress -tiled -till -tilt -timber -time -timely -timid -timidity -timidly -timorous -tin -tinge -tingle -tinker -tinkling -tint -tinted -tiny -tip -tipped -tipsy -tiptoe -tiptoed -tire -tired -tiresome -tiring -tissue -title -to -toad -toast -tobacco -today -toe -together -toil -toilet -toilette -token -told -tolerable -tolerably -tolerant -tolerate -toleration -toll -tomb -tomorrow -ton -tone -tongs -tongue -tongues -tonight -too -took -tool -tooth -toothache -toothless -top -topic -topmost -tops -topsy -torch -tore -torment -tormented -tormenting -torn -torpid -torpor -torrent -tortoise -torture -tortured -torturing -toss -tossed -total -totally -tottering -touch -touched -touching -tough -tour -tout -tow -toward -towards -towel -tower -towered -towering -town -toy -trace -tracing -track -tracks -tract -tractable -trade -trader -trades -tradesman -trading -tradition -traditional -traffic -tragedy -tragic -trail -trailing -train -training -trait -traitor -tramp -trample -trance -tranquil -tranquillity -tranquilly -transact -transaction -transfer -transferred -transferring -transform -transformation -transformed -transient -transit -transition -transitory -translate -translated -translation -transmit -transmitted -transparency -transparent -transpired -transport -transportation -transported -trap -trappings -traps -trash -travel -travelled -traveller -travelling -traverse -traversed -traversing -tray -treacherous -treachery -tread -treading -treason -treasure -treasured -treat -treated -treatment -treaty -treble -tree -tremble -trembles -trembling -tremendous -tremendously -tremor -tremulous -tremulously -trepidation -trespass -tresses -trial -triangle -triangular -tribe -tribunal -tribute -trick -trickle -tricks -tried -trifle -trifling -trigger -trim -trimming -trio -trip -tripping -triumph -triumphant -triumphantly -trivial -trod -trodden -troop -troops -trophy -tropical -trot -trotted -trotting -trouble -troubled -troubles -troublesome -troubling -trough -trouser -trousers -truce -truck -true -truer -truest -truly -trumpet -trunk -trunks -trust -trusted -trustful -trusting -trustworthy -trusty -truth -truthful -try -trying -tub -tube -tubes -tuck -tuft -tug -tugging -tuition -tumble -tumbler -tumbling -tumult -tumultuous -tumultuously -tune -tunic -tunnel -turban -turbulent -turf -turkey -turmoil -turn -turned -turning -turvy -tut -tutor -twain -twelfth -twelve -twelvemonth -twentieth -twenty -twice -twig -twilight -twin -twine -twinkle -twinkling -twins -twist -twisted -twitch -two -twopence -tying -type -typical -tyrannical -tyranny -tyrant -ud -ugliness -ugly -ultimate -ultimately -umbrella -un -unable -unaccountable -unaccountably -unaccustomed -unacquainted -unaffected -unalterable -unamiable -unanimous -unanimously -unanswerable -unapproachable -unassuming -unattainable -unattended -unavailing -unavoidable -unaware -unawares -unbearable -unbecoming -unbending -unborn -unbounded -unbroken -uncanny -unceasing -unceremoniously -uncertain -uncertainty -unchangeable -unchanged -unchanging -uncivil -uncle -unclean -uncomfortable -uncomfortably -uncommon -uncommonly -unconcern -unconcerned -uncongenial -unconnected -unconquerable -unconscious -unconsciously -unconsciousness -uncontrollable -uncouth -uncovered -undaunted -undeceive -undecided -undefined -undeniable -under -underfoot -undergo -undergoing -undergone -underground -undergrowth -underneath -understand -understanding -understood -undertake -undertaker -undertaking -undertone -undertook -underwent -undesirable -undid -undiscovered -undisguised -undisturbed -undivided -undo -undoing -undone -undoubted -undoubtedly -undress -undressed -undue -unearthly -uneasily -uneasiness -uneasy -uneducated -unemployed -unendurable -unequal -unerring -uneven -unexpected -unexpectedly -unexplained -unexplored -unfailing -unfair -unfaithful -unfamiliar -unfathomable -unfavourable -unfeeling -unfinished -unfit -unfitted -unfold -unforeseen -unfortunate -unfortunately -unfriendly -unfurnished -ungainly -ungenerous -ungovernable -ungrateful -unguarded -unhappiness -unhappy -unhealthy -unheard -unheeded -unhesitatingly -unholy -uniform -uniformity -uniformly -unimpaired -unimportant -uninhabited -uninteresting -uninterrupted -uninvited -union -unique -unison -unite -united -uniting -unity -universal -universally -universe -university -unjust -unjustly -unkempt -unkind -unknown -unlawful -unless -unlike -unlikely -unlimited -unlooked -unluckily -unlucky -unmarried -unmercifully -unmistakable -unmistakably -unmixed -unmoved -unnatural -unnaturally -unnecessarily -unnecessary -unnoticed -unobserved -unobtrusive -unoccupied -unparalleled -unpardonable -unperceived -unpleasant -unpleasantness -unpolished -unprecedented -unprepared -unprofitable -unprotected -unqualified -unquestionable -unquestionably -unquiet -unreal -unreasonable -unreasonably -unreasoning -unrelenting -unreserved -unreservedly -unrestrained -unruly -unsafe -unsaid -unsatisfactory -unscrupulous -unseasonable -unseemly -unseen -unselfish -unsettled -unshaken -unsolved -unspeakable -unspeakably -unspoken -unsteady -unsubstantial -unsuccessful -unsuccessfully -unsuitable -unsuspected -unsuspicious -untasted -untaught -untenanted -unthought -untidy -untied -until -untimely -untiring -unto -untold -untouched -untoward -untrue -untying -unused -unusual -unusually -unutterable -unvarying -unwelcome -unwell -unwholesome -unwilling -unwillingly -unwillingness -unwise -unwittingly -unwonted -unworthiness -unworthy -unyielding -up -upheld -uphill -uphold -upon -upper -uppermost -upraised -upright -uproar -upset -upsetting -upside -upstairs -upward -upwards -urchin -urge -urgency -urgent -urging -urn -usage -use -used -useful -usefulness -useless -uselessness -usher -using -usual -usually -utility -utmost -utter -utterance -vacancy -vacant -vacantly -vacation -vagabond -vagaries -vagrant -vague -vaguely -vain -vainly -vale -valet -valiantly -valid -valley -valour -valuable -value -valued -valueless -values -vampire -van -vanish -vanishing -vanity -vapour -variable -variance -variation -variations -varied -variety -various -varnished -vary -varying -vase -vast -vastly -vastness -vault -veal -vegetable -vegetation -vehemence -vehement -vehemently -vehicle -veil -veiled -vein -veins -velvet -venerable -veneration -vengeance -venom -vent -venture -ventured -venturing -veranda -verb -verbal -verdant -verdict -verdure -verge -verified -verily -veritable -vermin -verse -version -very -vessel -vest -vestibule -vestige -vestry -veteran -vex -vexation -vexatious -vexed -vibrate -vibrated -vibrating -vibration -vice -vicinity -vicious -victim -victor -victorious -victory -victuals -view -viewing -vigil -vigilance -vigilant -vigor -vigorous -vigorously -vigour -vile -villa -village -villain -villainous -villainy -vindictive -vindictiveness -vine -vinegar -violate -violence -violent -violet -violin -virgin -virtue -virtues -virtuous -visage -visible -vision -visionary -visit -visitation -visiting -visitor -vista -vital -vitality -vitals -vivacious -vivacity -vivid -vividly -vocabulary -vocal -vocation -vogue -voice -voiced -void -volatile -volcanic -volcano -volition -volley -volume -voluntarily -voluntary -volunteer -voluptuous -vote -voted -vouchsafe -vouchsafed -vow -voyage -vulgar -vulgarity -vulnerable -vulture -wade -waded -wading -wag -wager -wages -wagging -waggon -wagon -wail -wailing -waist -waistcoat -wait -waiter -waiting -wake -wakeful -waken -waking -walk -walking -wall -walled -walnut -waltz -wan -wand -wander -wanderer -wandering -wane -waning -want -wanting -wanton -war -ward -wardrobe -ware -warehouse -warehouses -warfare -warily -warlike -warm -warmer -warming -warmly -warmth -warn -warning -warrant -warrior -wars -wary -was -wash -washing -waste -wasted -wasteful -wasting -watch -watcher -watchful -watchfulness -watchman -water -watered -watering -waterproof -waters -watery -wave -waved -waves -waving -wax -waxen -way -ways -wayside -wayward -weak -weaken -weaker -weakly -weakness -weal -wealth -wealthy -weapon -wear -wearer -wearied -wearily -weariness -wearing -wearisome -weary -wearying -weather -weave -web -wed -wedded -wedding -wedge -wedged -wee -weed -weeds -week -weekly -weep -weeping -weigh -weight -weighty -weird -welcome -welfare -well -wells -wench -went -wept -were -west -western -westward -wet -wetted -wetting -whale -wharf -what -whatever -whatsoever -wheat -wheel -wheeled -wheeling -wheels -when -whence -whenever -where -whereabouts -whereas -whereat -whereby -wherefore -wherein -whereof -whereupon -wherever -wherewith -whether -which -whichever -whiff -while -whiles -whilst -whim -whimsical -whine -whining -whip -whipping -whips -whirl -whirlpool -whirlwind -whiskers -whisper -whispered -whispering -whist -whistle -whistling -whit -white -whiteness -whites -whither -who -whoever -whole -wholesale -wholesome -wholly -whom -whomsoever -whoop -whose -whosoever -why -wick -wicked -wickedness -wicker -wicket -wide -widely -wider -widespread -widow -widower -width -wife -wig -wild -wilder -wilderness -wildly -wildness -wilful -wilfully -will -willed -willing -willingly -willingness -willow -wills -wilt -wily -win -wind -winded -winding -window -windows -windy -wine -wing -winged -wings -wink -winks -winner -winning -winter -wintry -wipe -wire -wiry -wisdom -wise -wiser -wisest -wish -wishing -wisp -wistful -wistfully -wit -witch -witches -with -withal -withdraw -withdrawal -withdrawing -withdrawn -withdrew -wither -withheld -withhold -within -without -withstand -withstood -witness -witnessed -wits -witted -witty -wives -woe -woeful -woke -wolf -wolves -woman -womanhood -womanly -womb -women -won -wonder -wonderful -wonderfully -wondering -wonderingly -wont -wonted -wood -wooded -wooden -woods -woody -wool -woollen -word -worded -words -wore -work -worked -worker -working -workman -workmanship -works -workshop -world -worldly -worm -worms -worn -worried -worry -worse -worship -worshipped -worst -worsted -worth -worthless -worthy -wot -would -wound -wounded -wounding -woven -wrap -wrapped -wrapper -wrapping -wrath -wreath -wreck -wrench -wrestling -wretch -wretched -wretchedly -wretchedness -wring -wringing -wrinkle -wrist -writ -write -writer -writhe -writhing -writing -writings -written -wrong -wrongly -wrote -wrought -wrung -yard -yarn -yawn -yawning -year -yearly -yearning -years -yell -yellow -yellowish -yes -yesterday -yet -yew -yield -yielding -yoke -yonder -yore -you -young -younger -youngster -your -yours -yourself -youth -youthful -zeal -zealous -zenith -zest -zigzag diff --git a/crates/proof/data/en-extra.txt b/crates/proof/data/en-extra.txt new file mode 100644 index 00000000..7d04908e --- /dev/null +++ b/crates/proof/data/en-extra.txt @@ -0,0 +1,241 @@ +# English spelling supplement: common words the public-domain Moby list (1990s) lacks. +# Written by WordCraft contributors (MIT OR Apache-2.0); see ATTRIBUTION.md. +# One lowercase base form per line, sorted. Plurals, -ed, -ing, -er, -ly… come from the +# inflection rules in crates/proof/src/lib.rs, so list "desktop", not "desktops". +airbag +airfare +artcraft +autocomplete +autocorrect +autofill +autoformat +autosave +backend +bitcoin +bitmap +blockchain +blog +blogger +bluetooth +captcha +caregiver +carpool +cellphone +chatbot +chatroom +checkbox +checklist +childcare +clamour +clickable +colourful +colourisation +colourise +colourless +configurable +copyedit +coronavirus +covid +crowdfunding +crowdsource +crypto +cryptocurrency +customizable +customization +cyber +cybersecurity +cyberspace +database +dataset +daycare +desktop +download +downloadable +downsize +dropdown +earbud +ebook +ecommerce +email +emoji +emoticon +endeavour +esports +facebook +favicon +fintech +firewall +flowchart +foodie +freeware +frontend +fundraiser +gameplay +gamification +geeky +geolocation +gigabit +gigabyte +github +glamour +globalization +google +groupthink +hackathon +hardcode +hashtag +healthcare +homepage +homeschool +honour +honourable +honourably +hotspot +hyperlink +hypertext +inbox +incentivize +infographic +instagram +internet +interoperability +intranet +ipad +iphone +javascript +kickstart +kilobyte +laptop +lifestyle +linkedin +linux +livestream +lockdown +login +logout +lowercase +makeover +malware +manoeuvrable +megabyte +megapixel +meme +metadata +microchip +microsoft +middleware +mindset +multicultural +multiplayer +multitask +nerdy +netbook +netflix +newsfeed +offboard +offline +onboard +online +onscreen +outsource +paediatric +paralegal +passcode +petabyte +phishing +photobomb +playdate +playlist +plugin +podcast +popup +prequel +printout +prioritise +prioritization +prioritize +privatise +ransomware +recyclable +rigour +ringtone +roadmap +rollout +runtime +scalability +screencast +screensaver +screenshot +scrollbar +selfie +signup +sitemap +skillset +smartphone +smartwatch +smiley +snowboard +spellcheck +spellchecker +spreadsheet +spyware +stakeholder +standup +startup +subfolder +sunscreen +superfood +superuser +synthesise +tagline +takeout +techie +telecommute +teleconference +telehealth +telemedicine +terabyte +textbox +timeline +timestamp +toolbar +toolkit +touchpad +touchscreen +trackball +trackpad +travelogue +upcycle +upload +uppercase +upsell +upskill +usability +username +videoconference +videogame +vlog +vlogger +voicemail +walkthrough +webcam +webcast +webinar +weblog +webmaster +webpage +website +whatsapp +whiteboard +wifi +wiki +wikipedia +wireframe +wordcraft +workaround +workflow +workforce +workplace +workspace +workstation +youtube diff --git a/crates/proof/data/en-words.dic b/crates/proof/data/en-words.dic new file mode 100644 index 0000000000000000000000000000000000000000..8fc609eb601476c3021446f48d8c836bd733bbac GIT binary patch literal 343992 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¼u4_nbkqbgV%w9Y4HJC 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�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 z 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 S-!^}{R2;aFOcf>{zWoOq0~(M3 literal 0 HcmV?d00001 diff --git a/crates/proof/examples/en_core.rs b/crates/proof/examples/en_core.rs deleted file mode 100644 index 2c1e7a3d..00000000 --- a/crates/proof/examples/en_core.rs +++ /dev/null @@ -1,70 +0,0 @@ -//! Regenerate `data/en-core.txt`, the English core word list (see the crate README). -//! -//! ```sh -//! cargo run -p craft-proof --example en_core -- /language-data/en-us/en-us.dic ... -//! ``` -//! -//! Every word in the list comes from the public-domain Moby Hyphenator II list (`en-us.dic`). -//! The books (public-domain Project Gutenberg plain-text files) only rank those words: a word is -//! counted where it is written in lower case (so names, which are capitalized, rank low), must -//! appear in at least [`MIN_BOOKS`] of the books, and the `` most frequent are written, -//! sorted. No other word list or dictionary is read. -//! -//! `data/en-core.txt` was made with `` 12000 (11,367 words pass [`MIN_BOOKS`]) from these -//! Project Gutenberg eBooks (`https://www.gutenberg.org/cache/epub//pg.txt`, fetched -//! 2026-11-01): 11 16 35 36 43 45 55 74 76 84 98 105 113 120 135 141 158 161 174 215 219 244 345 -//! 408 514 730 766 768 1023 1080 1184 1228 1260 1342 1400 1497 1661 1952 2542 2554 2600 2701 2814 -//! 2852 3600 3825 4300 5230 25344 64317. - -use std::collections::{HashMap, HashSet}; - -/// A word must occur, in lower case, in at least this many books. -const MIN_BOOKS: usize = 8; - -fn main() -> Result<(), String> { - let args: Vec = std::env::args().skip(1).collect(); - let [dic, count, out, books @ ..] = args.as_slice() else { - return Err("usage: en_core ...".into()); - }; - let count: usize = count.parse().map_err(|e| format!("count: {e}"))?; - let bytes = std::fs::read(dic).map_err(|e| format!("{dic}: {e}"))?; - let moby = craft_proof::dict::Dictionary::from_bytes(&bytes)?; - let moby: HashSet<&str> = moby.iter().map(|(w, _)| w).collect(); - let mut freq: HashMap = HashMap::new(); - for book in books { - let text = std::fs::read_to_string(book).map_err(|e| format!("{book}: {e}"))?; - // The Project Gutenberg header and licence are not the book. - let body = text.split_once("*** START OF").map_or(text.as_str(), |(_, b)| b); - let body = body.split_once("*** END OF").map_or(body, |(b, _)| b); - let mut seen: HashSet<&str> = HashSet::new(); - for w in body.split(|c: char| !(c.is_ascii_alphabetic() || c == '\'')).map(|w| w.trim_matches('\'')) { - if w.len() < 2 || !w.bytes().all(|b| b.is_ascii_lowercase() || b == b'\'') || !moby.contains(w) { - continue; - } - let e = freq.entry(w.to_string()).or_default(); - e.0 += 1; - if seen.insert(w) { - e.1 += 1; - } - } - } - let mut ranked: Vec<(String, u64)> = freq.into_iter().filter(|(_, (_, b))| *b >= MIN_BOOKS).map(|(w, (n, _))| (w, n)).collect(); - ranked.sort_by(|a, b| b.1.cmp(&a.1).then_with(|| a.0.cmp(&b.0))); - ranked.truncate(count); - let mut words: Vec = ranked.into_iter().map(|(w, _)| w).collect(); - words.sort(); - let mut o = String::from( - "# English core word list: the built-in fallback when neither the embedded Language data nor a\n\ - # system Hunspell English dictionary is available (see crates/proof/README.md).\n\ - # Public domain: every word is from the Moby Hyphenator II list by Grady Ward (Project\n\ - # Gutenberg eBook #3204), ranked by frequency in public-domain Project Gutenberg books.\n\ - # Generated by `cargo run -p craft-proof --example en_core`. Do not edit by hand.\n", - ); - for w in &words { - o.push_str(w); - o.push('\n'); - } - std::fs::write(out, o).map_err(|e| format!("{out}: {e}"))?; - eprintln!("{} words", words.len()); - Ok(()) -} diff --git a/crates/proof/examples/en_words.rs b/crates/proof/examples/en_words.rs new file mode 100644 index 00000000..f6933cb0 --- /dev/null +++ b/crates/proof/examples/en_words.rs @@ -0,0 +1,28 @@ +//! Regenerate `data/en-words.dic`, the English word list built into the crate (see the crate +//! README): every word of the public-domain Moby Hyphenator II list, without its break points. +//! +//! ```sh +//! cargo run -p craft-proof --example en_words -- /language-data/en-us/en-us.dic data/en-words.dic +//! ``` +//! +//! The input is craft-i18n's `en-us.dic`: the Moby Hyphenator II list by Grady Ward (Project +//! Gutenberg eBook #3204, `mhyph.txt`), already stripped of the Project Gutenberg header and +//! licence, with its break points. The output keeps the words only (in [`Dictionary`]'s format, +//! every break mask zero), so it is smaller and carries no hyphenation. No other word list or +//! dictionary is read. + +use craft_proof::dict::Dictionary; + +fn main() -> Result<(), String> { + let args: Vec = std::env::args().skip(1).collect(); + let [dic, out] = args.as_slice() else { + return Err("usage: en_words ".into()); + }; + let bytes = std::fs::read(dic).map_err(|e| format!("{dic}: {e}"))?; + let moby = Dictionary::from_bytes(&bytes)?; + let words = Dictionary::from_entries(moby.iter().map(|(w, _)| (w.to_string(), 0)).collect()); + let data = words.to_bytes(); + std::fs::write(out, &data).map_err(|e| format!("{out}: {e}"))?; + eprintln!("{} words, {} bytes", words.len(), data.len()); + Ok(()) +} diff --git a/crates/proof/src/affix.rs b/crates/proof/src/affix.rs index cb462121..701e168c 100644 --- a/crates/proof/src/affix.rs +++ b/crates/proof/src/affix.rs @@ -19,7 +19,9 @@ //! read as `fi`) and ignored characters (`IGNORE`), and the suggestion tables `TRY`, `KEY`, `MAP` //! and `REP`. //! Morphological data (`AM` aliases, the fields after a stem) is skipped. Rejected: compounding, -//! long or numeric flags, `NEEDAFFIX` and the other directives that change which words are correct. +//! long or numeric flags, `NEEDAFFIX` and the other directives that change which words are correct +//! (an English dictionary's compounding and `OCONV` are ignored instead: +//! [`AffixDict::from_hunspell_english`]). //! //! Lookups never panic: stems sit in one string, found through an open-addressing hash table, and //! a probe allocates only small scratch strings for the candidate roots it tries. @@ -339,6 +341,8 @@ struct Rules { substandard: Option, /// The `KEEPCASE` flag. keepcase: Option, + /// The `ONLYINCOMPOUND` flag, read for English only ([`AffixDict::from_hunspell_english`]). + only_in_compound: Option, iconv: Vec<(String, String)>, ignore: Vec, /// `AF` flag aliases: alias `n` (1-based) stands for `aliases[n - 1]`. @@ -422,8 +426,27 @@ fn zero_empty(s: &str) -> String { /// but it is not a flag of its own: it is dropped wherever flags are read. const EMOJI_SELECTOR: char = '\u{fe0f}'; -/// Read Hunspell `.aff` text (already decoded to UTF-8). -fn parse_aff(aff: &str) -> Result { +/// Directives an English dictionary may carry that don't change which English words are correct +/// here, ignored by [`AffixDict::from_hunspell_english`]: compounding (English dictionaries use +/// it only for ordinals such as `1st`, which have digits and are skipped by the spelling check) +/// and output conversion (`OCONV`: how suggestions are written, such as `'` as `’`). +const IGNORED_IN_ENGLISH: &[&str] = &[ + "COMPOUNDBEGIN", + "COMPOUNDEND", + "COMPOUNDFIRST", + "COMPOUNDFLAG", + "COMPOUNDLAST", + "COMPOUNDMIDDLE", + "COMPOUNDMIN", + "COMPOUNDPERMITFLAG", + "COMPOUNDRULE", + "OCONV", +]; + +/// Read Hunspell `.aff` text (already decoded to UTF-8). `english`: ignore the directives in +/// [`IGNORED_IN_ENGLISH`], and keep the `ONLYINCOMPOUND` flag so the stems that are only parts of +/// compounds can be left out. +fn parse_aff(aff: &str, english: bool) -> Result { let mut r = Rules::default(); let mut cross: HashMap<(bool, char), bool> = HashMap::new(); let mut map_header = false; @@ -518,6 +541,8 @@ fn parse_aff(aff: &str) -> Result { r.prefixes.push(rule); } } + "ONLYINCOMPOUND" if english => r.only_in_compound = Some(one_flag(at(1), dir, n)?), + d if english && IGNORED_IN_ENGLISH.contains(&d) => {} d if UNSUPPORTED.contains(&d) => return Err(format!("line {}: {d} is not supported", n + 1)), _ => {} } @@ -542,11 +567,23 @@ impl AffixDict { /// Build from Hunspell `.aff` and `.dic` text (decoded to UTF-8; the `.dic` count line and /// morphological fields are ignored). `comments` (provenance, licence) are kept with the data. pub fn from_hunspell(aff: &str, dic: &str, comments: &[&str]) -> Result { + AffixDict::from_hunspell_in(aff, dic, comments, false) + } + + /// [`AffixDict::from_hunspell`] for an English dictionary: compounding and output conversion + /// (`COMPOUNDMIN`, `COMPOUNDRULE`, `OCONV`…), which other languages need but English spelling + /// doesn't, are ignored rather than refused, and the stems marked `ONLYINCOMPOUND` (parts of + /// compounds only) are left out. + pub fn from_hunspell_english(aff: &str, dic: &str, comments: &[&str]) -> Result { + AffixDict::from_hunspell_in(aff, dic, comments, true) + } + + fn from_hunspell_in(aff: &str, dic: &str, comments: &[&str], english: bool) -> Result { // Some dictionaries open with a UTF-8 BOM; it must not glue itself to the first // directive or turn the `.dic` count line into a stem. let aff = aff.strip_prefix('\u{feff}').unwrap_or(aff); let dic = dic.strip_prefix('\u{feff}').unwrap_or(dic); - let rules = parse_aff(aff)?; + let rules = parse_aff(aff, english)?; let mut stems: Vec<(String, String)> = Vec::new(); for (n, line) in dic.lines().enumerate() { // The entry may hold spaces (`ad hoc/B\tpo:adv`); it ends where Hunspell ends it. @@ -582,6 +619,9 @@ impl AffixDict { continue; } let flags = rules.flags(&flags).to_string(); + if rules.only_in_compound.is_some_and(|f| flags.contains(f)) { + continue; + } stems.push((word, flags)); } AffixDict::build(rules, stems, comments.iter().map(ToString::to_string).collect()) @@ -1756,6 +1796,29 @@ pub(crate) mod tests { } } + /// craft-libs#482 review: an English dictionary with compounding (for ordinals) and output + /// conversion, as the usual en_US and en_GB ones have, loads for English; its `ONLYINCOMPOUND` + /// stems are left out. Other languages still refuse those directives. (A synthetic `.aff` + /// written for this test.) + #[test] + fn english_dictionaries_ignore_compounding_and_output_conversion() { + let aff = "SET UTF-8\nTRY esianrtolcdugmphbyfvkwz'\nICONV 1\nICONV ’ '\nOCONV 1\nOCONV ' ’\nNOSUGGEST !\n\ + COMPOUNDMIN 1\nONLYINCOMPOUND c\nCOMPOUNDRULE 2\nCOMPOUNDRULE n*1t\nCOMPOUNDRULE n*mp\nCOMPOUNDFLAG Z\n\ + WORDCHARS 0123456789\nSFX S Y 1\nSFX S 0 s [^sxzhy]\nSFX D Y 1\nSFX D 0 ed [^ey]\n"; + let dic = "5\nhouse/S\nwalk/SD\n0th/pc\n1st/c\nthe\n"; + assert!(AffixDict::from_hunspell(aff, dic, &[]).is_err(), "refused for other languages"); + let d = AffixDict::from_hunspell_english(aff, dic, &[]).unwrap(); + for w in ["house", "houses", "walked", "walks", "the"] { + assert!(d.check(w), "{w}"); + } + assert!(!d.check("0th") && !d.check("1st"), "parts of compounds only"); + assert!(!d.check("housed") && !d.check("hous")); + // The directives that change which words are right are still refused. + for dir in ["NEEDAFFIX", "CIRCUMFIX", "PSEUDOROOT", "FULLSTRIP"] { + assert!(AffixDict::from_hunspell_english(&format!("{dir} X\n"), dic, &[]).is_err(), "{dir}"); + } + } + #[test] fn unsupported_and_broken_input_is_an_error() { assert!(AffixDict::from_hunspell("FLAG long\n", DIC, &[]).is_err()); diff --git a/crates/proof/src/english.rs b/crates/proof/src/english.rs index 698f85c3..c2c4b0eb 100644 --- a/crates/proof/src/english.rs +++ b/crates/proof/src/english.rs @@ -5,27 +5,43 @@ //! 2. **System Hunspell**: an English Hunspell `.aff`/`.dic` pair found by [`crate::hunspell`] //! (the dictionaries folder first, then the system locations; none on the web). The run's //! English is tried first (`en_US`, `en_GB`, `en_CA`…), then the other Englishes: a full -//! dictionary in the other spelling marks fewer right words than the core list. -//! 3. **Core list**: [`CORE_LIST`], about 11,000 common words compiled into the crate (with the -//! usual inflections). A word it doesn't know is marked only when it is a near miss of a -//! common word (`teh`, `recieve`, `definately`); any other word it doesn't know (a rare word, a -//! name, a term) is taken as correct, as it may well be right. +//! dictionary in the other spelling marks fewer right words than none. So British and Canadian +//! English use an `en_US` dictionary when no regional one is installed (and American English +//! an `en_GB` one). A file that can't be read is skipped for the next name or folder, and one +//! file is read once for every English that uses it. Directives that only matter for other +//! languages (compounding, output conversion) are ignored ([`crate::hunspell::load_english`]). +//! 3. **Built-in word list**: [`WORDS`], the whole public-domain Moby word list compiled into +//! the crate (without its break points), with WordCraft's own supplement of modern words +//! ([`EXTRA`]) and the usual inflections. A word it doesn't know is misspelled, as with the +//! embedded list. //! //! A Hunspell dictionary that is there but can't be read (unsupported encoding, too large, a -//! parse error, no words) is skipped for the core list, and its reason is reported by +//! parse error, no words) is skipped, and its reason is reported by //! [`crate::dictionary_load_error`]. Non-English text is never checked against any of these. -use std::path::PathBuf; -use std::sync::{Arc, OnceLock, RwLock}; +use std::path::{Path, PathBuf}; +use std::sync::{Arc, OnceLock, PoisonError, RwLock}; use crate::affix::AffixDict; +use crate::dict::Dictionary; use crate::{Options, ProofLang}; -/// The English core word list (`data/en-core.txt`): the most common words of the public-domain -/// Moby Hyphenator II list by Grady Ward, ranked by their frequency in public-domain Project -/// Gutenberg books (generated by `examples/en_core.rs`). One lowercase word per line, `#` -/// comments. -const CORE_LIST: &str = include_str!("../data/en-core.txt"); +/// The English word list built into the crate (`data/en-words.dic`, [`Dictionary`]'s format with +/// no break points): every word of the public-domain Moby Hyphenator II list by Grady Ward +/// (generated by `examples/en_words.rs` from craft-i18n's `en-us.dic`). +const WORDS: &[u8] = include_bytes!("../data/en-words.dic"); + +/// WordCraft's supplement of common modern words the Moby list lacks (`data/en-extra.txt`, a copy +/// of craft-i18n's `language-data/en-us/en-extra.txt`, MIT OR Apache-2.0): one lowercase base +/// form per line, `#` comments. Used when the Language data doesn't embed its own copy. +pub(crate) const EXTRA: &str = include_str!("../data/en-extra.txt"); + +/// Longest word (in characters) suggestions are looked for: longer ones get none, which keeps +/// the edits tried per word bounded. +const MAX_SUGGEST_CHARS: usize = 32; + +/// Most Hunspell `.aff`/`.dic` pairs tried for one English before giving up on Hunspell. +const MAX_CANDIDATES: usize = 8; /// Where English spelling comes from now ([`crate::english_source`]). #[derive(Clone, Debug, PartialEq, Eq)] @@ -34,19 +50,25 @@ pub enum EnglishSource { Embedded, /// An English Hunspell dictionary from the dictionaries folder or the system: its `.dic` file. Hunspell(PathBuf), - /// The core word list built into the crate: only near misses of common words are marked. + /// The Moby word list built into the crate: a word it doesn't know is misspelled. CoreList, } -/// The words of [`CORE_LIST`]. -fn core() -> &'static std::collections::HashSet<&'static str> { - static C: OnceLock> = OnceLock::new(); - C.get_or_init(|| CORE_LIST.lines().map(str::trim).filter(|l| !l.is_empty() && !l.starts_with('#')).collect()) +/// The words of [`WORDS`] (decoded on first use; empty if they fail to decode, which a test rules +/// out). +fn words() -> &'static Dictionary { + static W: OnceLock = OnceLock::new(); + W.get_or_init(|| { + Dictionary::from_bytes(WORDS).unwrap_or_else(|e| { + log::error!("built-in English word list: {e}"); + Dictionary::default() + }) + }) } -/// Is `w` (lower case) a word of the core list? -pub(crate) fn core_contains(w: &str) -> bool { - core().contains(w) +/// Is `w` (lower case) a word of the built-in list? +pub(crate) fn word_list_contains(w: &str) -> bool { + words().get(w).is_some() } /// Hunspell file names to look for, the run's English first. @@ -58,7 +80,7 @@ fn names(lang: ProofLang) -> &'static [&'static str] { } } -/// The slot of each English in [`HUNSPELL`]. +/// The slot of each English in [`State::slots`]. fn slot(lang: ProofLang) -> usize { match lang { ProofLang::EnGb => 1, @@ -70,8 +92,23 @@ fn slot(lang: ProofLang) -> usize { /// A loaded Hunspell dictionary and its `.dic` file; `None` when none could be loaded. type Loaded = Option<(Arc, PathBuf)>; -/// Per English (see [`slot`]): `None` until first use, then what was found. -static HUNSPELL: RwLock<[Option; 3]> = RwLock::new([None, None, None]); +/// The English Hunspell dictionaries, under one lock. +struct State { + /// Per English (see [`slot`]): `None` until first use, then what was found. + slots: [Option; 3], + /// Every `.dic` file read, so Englishes that use the same file share one copy. + files: Vec<(PathBuf, Arc)>, + /// Counts reloads, so a load that started before one is not kept. + reloads: u64, +} + +impl State { + const fn new() -> Self { + State { slots: [None, None, None], files: Vec::new(), reloads: 0 } + } +} + +static HUNSPELL: RwLock = RwLock::new(State::new()); /// Why the embedded word list failed to decode, if it did. static EMBEDDED_ERROR: OnceLock = OnceLock::new(); @@ -79,51 +116,117 @@ static EMBEDDED_ERROR: OnceLock = OnceLock::new(); /// Remember that the embedded word list is there but failed to decode (English then uses the /// next source). pub(crate) fn note_embedded_error(e: String) { - log::error!("embedded English word list: {e}; English spelling falls back to Hunspell or the core word list"); + log::error!("embedded English word list: {e}; English spelling falls back to Hunspell or the built-in word list"); let _ = EMBEDDED_ERROR.set(e); } /// The English Hunspell dictionary for `lang` (read on first use). fn hunspell(lang: ProofLang) -> Loaded { let i = slot(lang); - if let Some(Some(found)) = HUNSPELL.read().unwrap_or_else(std::sync::PoisonError::into_inner).get(i) { - return found.clone(); + let reloads = { + let s = HUNSPELL.read().unwrap_or_else(PoisonError::into_inner); + if let Some(Some(found)) = s.slots.get(i) { + return found.clone(); + } + s.reloads + }; + keep(&HUNSPELL, i, reloads, load(lang)) +} + +/// Keep in `state` what the load of slot `i`, started after `reloads` reloads, found. If the +/// folder was reloaded since, the load may have read the old folder: it serves this one check and +/// the next one loads again. +fn keep(state: &RwLock, i: usize, reloads: u64, loaded: Loaded) -> Loaded { + let mut s = state.write().unwrap_or_else(PoisonError::into_inner); + if s.reloads != reloads { + return match s.slots.get(i) { + Some(Some(found)) => found.clone(), + _ => loaded, + }; } - let loaded = load(lang); - let mut slots = HUNSPELL.write().unwrap_or_else(std::sync::PoisonError::into_inner); + let loaded = loaded.map(|(d, dic)| { + // Another English may have read the same file meanwhile: share its copy. + let d = match s.files.iter().find(|(p, _)| *p == dic) { + Some((_, shared)) => shared.clone(), + None => { + s.files.push((dic.clone(), d.clone())); + d + } + }; + (d, dic) + }); // Another thread may have filled it meanwhile: that one wins. - match slots.get_mut(i) { - Some(s) => s.get_or_insert(loaded).clone(), + match s.slots.get_mut(i) { + Some(slot) => slot.get_or_insert(loaded).clone(), None => loaded, } } +/// The dictionary of the `.dic` file `dic` in `state`, if an English already read it. +fn already_read(state: &RwLock, dic: &Path) -> Option> { + state.read().unwrap_or_else(PoisonError::into_inner).files.iter().find(|(p, _)| p == dic).map(|(_, d)| d.clone()) +} + +/// Forget what `state` holds, so the next check looks again. +fn forget(state: &RwLock) { + let mut s = state.write().unwrap_or_else(PoisonError::into_inner); + s.slots = [None, None, None]; + s.files.clear(); + s.reloads = s.reloads.wrapping_add(1); +} + /// The key load errors of `lang` are kept under ([`crate::hunspell::load_error`]). fn key(lang: ProofLang) -> &'static str { names(lang).first().copied().unwrap_or("en_US") } +/// Read the first English Hunspell pair for `lang` that loads, trying each name in each folder +/// ([`crate::hunspell::candidates`]). The first failure before it (the file `lang` would rather +/// use) is reported for `lang`. fn load(lang: ProofLang) -> Loaded { let key = key(lang); - let Some((aff, dic)) = crate::hunspell::find(names(lang)) else { + let candidates = crate::hunspell::candidates(names(lang)); + if candidates.is_empty() { crate::hunspell::clear_load_error(key); - log::info!("English spelling: no Hunspell English dictionary installed; using the core word list"); + log::info!("English spelling: no Hunspell English dictionary installed; using the built-in word list"); return None; - }; - let loaded = crate::hunspell::load(&aff, &dic).and_then(|d| if d.is_empty() { Err(format!("{}: no words", dic.display())) } else { Ok(d) }); - match crate::hunspell::note_load(key, &dic, loaded) { - Ok(d) => Some((Arc::new(d), dic)), - Err(e) => { - log::warn!("English spelling: {e}; using the core word list"); - None + } + let mut first_error: Option<(PathBuf, String)> = None; + let mut found = None; + for (aff, dic) in candidates.into_iter().take(MAX_CANDIDATES) { + let loaded = match already_read(&HUNSPELL, &dic) { + Some(d) => Ok(d), + None => crate::hunspell::load_english(&aff, &dic) + .and_then(|d| if d.is_empty() { Err(format!("{}: no words", dic.display())) } else { Ok(d) }) + .map(Arc::new), + }; + match loaded { + Ok(d) => { + found = Some((d, dic)); + break; + } + Err(e) => { + log::warn!("English spelling: {e}; trying the next dictionary"); + first_error.get_or_insert((dic, e)); + } } } + match first_error { + Some((dic, e)) => { + let _ = crate::hunspell::note_load::<()>(key, &dic, Err(e)); + } + None => crate::hunspell::clear_load_error(key), + } + if found.is_none() { + log::warn!("English spelling: no English Hunspell dictionary could be read; using the built-in word list"); + } + found } /// Forget the loaded dictionaries, so the next check looks for them again (the dictionaries /// folder changed). pub(crate) fn reload() { - *HUNSPELL.write().unwrap_or_else(std::sync::PoisonError::into_inner) = [None, None, None]; + forget(&HUNSPELL); } /// Where the spelling of `lang` (an English) comes from now. Reads the Hunspell dictionary once @@ -149,7 +252,7 @@ pub(crate) fn load_error(lang: ProofLang) -> Option { } /// Is `word` spelled right in `lang` (an English) when no word list is embedded: against the -/// Hunspell dictionary, or else the core list. +/// Hunspell dictionary, or else the built-in word list. pub(crate) fn is_correct(word: &str, lang: ProofLang, opts: &Options) -> bool { let w = word.trim_matches(|c: char| !c.is_alphanumeric() && c != '\'' && c != '’').trim_matches(['\'', '’']); if crate::accepted_by_options(w, opts) || !w.chars().any(|c| c.is_ascii_alphabetic()) { @@ -158,7 +261,7 @@ pub(crate) fn is_correct(word: &str, lang: ProofLang, opts: &Options) -> bool { let w = w.replace('’', "'"); match hunspell(lang) { Some((d, _)) => hunspell_correct(&d, &w), - None => core_correct(&w), + None => list_correct(&w), } } @@ -168,67 +271,75 @@ fn hunspell_correct(d: &AffixDict, w: &str) -> bool { known(w) || (w.contains('-') && w.split('-').filter(|p| !p.is_empty()).all(known)) } -/// Against the core list: known words and their inflections are right, and so is any other word -/// that isn't a near miss of a common one ([`near_miss`]). -fn core_correct(w: &str) -> bool { - let capitalized = w.chars().next().is_some_and(char::is_uppercase); - let lower = w.to_lowercase(); - let ok = |p: &str| crate::known_in_core_list(p) || !near_miss(p, capitalized); - if lower.contains('-') { crate::known_in_core_list(&lower) || lower.split('-').filter(|p| !p.is_empty()).all(ok) } else { ok(&lower) } -} - -/// Is `lower` (a word the core list doesn't know) an obvious misspelling of a common word? Two -/// neighbouring letters swapped (`teh`, `Hte`, `recieved`) always is. Otherwise, for lower-case -/// words of four letters or more, one letter added, missing or changed (`definately`, -/// `ocurred`). Shorter words and capitalized ones (names) are left alone: too many right ones are -/// one letter from a common word. -fn near_miss(lower: &str, capitalized: bool) -> bool { - let target: Vec = lower.chars().collect(); - let n = target.len(); - if !(3..=40).contains(&n) { - return false; - } - if core().iter().any(|c| is_swap(&target, c)) { +/// Against the built-in word list: its words and their inflections, or each part of a +/// hyphenated word. Anything else is misspelled. (Should the list fail to decode, nothing is +/// marked rather than everything.) +fn list_correct(w: &str) -> bool { + if words().is_empty() { return true; } - if capitalized || n < 4 { - return false; - } - core().iter().any(|c| { - let m = c.chars().count(); - m + 1 >= n && m <= n + 1 && crate::damerau(&target, c) <= 1 - }) -} - -/// Is `b` `a` with two neighbouring letters swapped? -fn is_swap(a: &[char], b: &str) -> bool { - if b.len() < a.len() || b.chars().count() != a.len() { - return false; - } - let diff: Vec<(usize, char)> = b.chars().enumerate().filter(|&(i, c)| a.get(i) != Some(&c)).collect(); - match diff.as_slice() { - [(i, x), (j, y)] => *j == i + 1 && a.get(*i) == Some(y) && a.get(*j) == Some(x), - _ => false, - } + let lower = w.to_lowercase(); + crate::known_in_word_list(&lower) || (lower.contains('-') && lower.split('-').filter(|p| !p.is_empty()).all(crate::known_in_word_list)) } /// Spelling suggestions in `lang` (an English) when no word list is embedded: from the Hunspell -/// dictionary, or else the core list. +/// dictionary, or else the built-in word list. pub(crate) fn suggest(word: &str, max: usize, lang: ProofLang) -> Vec { match hunspell(lang) { Some((d, _)) => crate::cs::suggest::suggest_in(&d, word, max), - None => core_suggest(word, max), + None => list_suggest(word, max), } } -/// Suggestions from the core list: by edit distance ([`crate::suggest_from`]), two swapped -/// letters first (`teh` → `the` before `tea`). -fn core_suggest(word: &str, max: usize) -> Vec { - let target: Vec = word.to_lowercase().chars().collect(); - let mut out = crate::suggest_from(word, max.saturating_add(4), core().iter().copied()); - out.sort_by_key(|s| !is_swap(&target, &s.to_lowercase())); - out.truncate(max); - out +/// Letters an edit may add or put in a word's place. +const ALPHABET: &str = "abcdefghijklmnopqrstuvwxyz'"; + +/// Suggestions from the built-in word list: the words one edit away (two neighbouring letters +/// swapped, one letter missing, added or changed), looked up in the list rather than compared +/// with every word, so the cost is bounded by the word's length (at most +/// [`MAX_SUGGEST_CHARS`]). Swaps first (`hte` → `the` and `het` before `hate`), then words with the same +/// first letter, then the nearest in length. +fn list_suggest(word: &str, max: usize) -> Vec { + let lower = word.to_lowercase().replace('’', "'"); + let target: Vec = lower.chars().collect(); + let n = target.len(); + if max == 0 || n == 0 || n > MAX_SUGGEST_CHARS { + return Vec::new(); + } + let mut found: Vec<(bool, bool, usize, String)> = Vec::new(); + let mut tried = std::collections::HashSet::new(); + let mut consider = |c: Vec, swap: bool| { + let s: String = c.iter().collect(); + if s != lower && tried.insert(s.clone()) && crate::known_in_word_list(&s) { + found.push((!swap, c.first() != target.first(), c.len().abs_diff(n), s)); + } + }; + for i in 1..n { + let mut c = target.clone(); + c.swap(i - 1, i); + consider(c, true); + } + for i in 0..n { + let mut c = target.clone(); + c.remove(i); + consider(c, false); + } + for i in 0..=n { + for a in ALPHABET.chars() { + if i < n { + let mut c = target.clone(); + if let Some(l) = c.get_mut(i) { + *l = a; + } + consider(c, false); + } + let mut c = target.clone(); + c.insert(i, a); + consider(c, false); + } + } + found.sort(); + found.into_iter().take(max).map(|(_, _, _, w)| crate::match_case(word, w)).collect() } #[cfg(test)] @@ -236,24 +347,20 @@ mod tests { use super::*; #[test] - fn core_list_is_small_sorted_lowercase_and_has_the_common_words() { - assert!(CORE_LIST.len() < 100 * 1024, "{} bytes", CORE_LIST.len()); - let words: Vec<&str> = CORE_LIST.lines().filter(|l| !l.starts_with('#')).collect(); - assert!(words.len() > 5_000, "{}", words.len()); - assert!(words.windows(2).all(|w| w[0] < w[1]), "sorted, no repeats"); - assert!(words.iter().all(|w| !w.is_empty() && w.chars().all(|c| c.is_ascii_lowercase() || c == '\''))); - for w in ["the", "house", "because", "received", "definitely", "separate", "occurred", "beautiful", "people", "water"] { - assert!(core_contains(w), "{w}"); - } + fn built_in_list_is_the_whole_moby_list() { + let d = words(); + assert!(d.len() > 150_000, "{}", d.len()); + assert!(d.iter().all(|(w, m)| m == 0 && !w.is_empty() && w.chars().all(|c| !c.is_uppercase()))); + assert!(WORDS.len() < 400 * 1024, "{} bytes", WORDS.len()); + let extra: Vec<&str> = EXTRA.lines().filter(|l| !l.is_empty() && !l.starts_with('#')).collect(); + assert!(extra.len() > 100 && extra.windows(2).all(|p| p[0] < p[1]), "the supplement is sorted"); } - /// The core list marks obvious misspellings and leaves right words alone, inflected ones and - /// words it doesn't know included. + /// The built-in list knows right words, the rare and the modern ones included, and marks + /// every word it doesn't know (craft-libs#482 review: the old core list let any unknown word + /// through unless it was a near miss of a common one, and marked right words that were). #[test] - fn core_list_flags_near_misses_only() { - for w in ["teh", "Teh", "hte", "recieved", "definately", "seperate", "ocurred", "becuase", "peopel", "beautifull", "watre"] { - assert!(!core_correct(w), "{w} is marked"); - } + fn built_in_list_marks_unknown_words_only() { for w in [ "the", "The", @@ -264,31 +371,70 @@ mod tests { "kindness", "Received", "well-known", - // Not in the list, but not a near miss of a common word either: left alone. "photosynthesis", - "zxqv", - "Nguyen", - "Jarndyce", - "cat", + "fiber", + "theater", + "organize", + "budget", + "phone", + "people's", + // WordCraft's supplement. + "login", + "blog", + "email", + "emails", ] { - assert!(core_correct(w), "{w} is not marked"); + assert!(list_correct(w), "{w} is not marked"); } - assert!(!core_correct("well-knwon"), "each part of a compound is checked"); + for w in ["recieved", "definately", "seperate", "ocurred", "becuase", "peopel", "beautifull", "zxqv", "Jarndycey"] { + assert!(!list_correct(w), "{w} is marked"); + } + assert!(!list_correct("well-knwon"), "each part of a compound is checked"); } #[test] - fn swaps_are_two_neighbouring_letters() { - let a: Vec = "teh".chars().collect(); - assert!(is_swap(&a, "the")); - assert!(!is_swap(&a, "teh") && !is_swap(&a, "ten") && !is_swap(&a, "thee") && !is_swap(&a, "het")); - assert!(!is_swap(&"é".chars().collect::>(), "ab")); + fn built_in_list_suggests_one_edit_away() { + assert_eq!(list_suggest("becuase", 3).first().map(String::as_str), Some("because")); + assert_eq!(list_suggest("Becuase", 3).first().map(String::as_str), Some("Because")); + assert!(list_suggest("hte", 3).contains(&"the".to_string()), "{:?}", list_suggest("hte", 3)); + assert!(list_suggest("definately", 5).contains(&"definitely".to_string())); + assert!(list_suggest("recieve", 5).contains(&"receive".to_string())); + assert!(list_suggest("", 5).is_empty() && list_suggest("becuase", 0).is_empty()); + assert!(list_suggest(&"a".repeat(MAX_SUGGEST_CHARS + 1), 5).is_empty()); } + /// Suggestions look words up rather than scanning the list: the longest word is still quick. #[test] - fn core_list_suggests_the_common_word() { - assert_eq!(core_suggest("teh", 3).first().map(String::as_str), Some("the")); - assert_eq!(core_suggest("Teh", 3).first().map(String::as_str), Some("The")); - assert!(core_suggest("definately", 5).contains(&"definitely".to_string())); - assert!(core_suggest("", 5).is_empty() && core_suggest("teh", 0).is_empty()); + fn built_in_list_suggestions_are_bounded() { + let _ = words(); + let word: String = "qwertyuiopasdfghjklzxcvbnm".chars().cycle().take(MAX_SUGGEST_CHARS).collect(); + let start = std::time::Instant::now(); + for _ in 0..10 { + let _ = list_suggest(&word, 5); + } + assert!(start.elapsed() < std::time::Duration::from_secs(5), "{:?}", start.elapsed()); + } + + /// craft-libs#482 review: a load that started before a reload (the dictionaries folder + /// changed) serves its own check but isn't kept, so the next check reads the new folder; a + /// load after it is kept, and shared with the Englishes that read the same file. + #[test] + fn a_load_from_before_a_reload_is_not_kept() { + let state = RwLock::new(State::new()); + let dict = || Arc::new(AffixDict::from_hunspell("", "1\nzzyzx\n", &[]).unwrap()); + let file = PathBuf::from("/old/folder/en_US.dic"); + let before = state.read().unwrap().reloads; + forget(&state); // The folder changes while the load runs. + let got = keep(&state, slot(ProofLang::En), before, Some((dict(), file.clone()))); + assert_eq!(got.map(|(_, p)| p), Some(file.clone()), "the stale load still answers its own check"); + assert!(state.read().unwrap().slots.iter().all(Option::is_none), "but it isn't kept"); + assert!(already_read(&state, &file).is_none()); + let now = state.read().unwrap().reloads; + let a = keep(&state, slot(ProofLang::En), now, Some((dict(), file.clone()))).unwrap(); + let b = keep(&state, slot(ProofLang::EnGb), now, Some((dict(), file.clone()))).unwrap(); + assert!(Arc::ptr_eq(&a.0, &b.0), "one copy of a file for every English that reads it"); + assert!(already_read(&state, &file).is_some()); + forget(&state); + assert!(already_read(&state, &file).is_none() && state.read().unwrap().slots.iter().all(Option::is_none)); } } diff --git a/crates/proof/src/hunspell.rs b/crates/proof/src/hunspell.rs index b19bdbd8..da2acb3e 100644 --- a/crates/proof/src/hunspell.rs +++ b/crates/proof/src/hunspell.rs @@ -145,6 +145,24 @@ pub fn find(names: &[&str]) -> Option<(PathBuf, PathBuf)> { search_dirs(lo.as_deref()).into_iter().find_map(|dir| find_in(&dir, names)) } +/// Every `.aff`/`.dic` pair for `names`, in the order [`find`] prefers them: folder +/// by folder ([`search_dirs`]), each folder's in the order of `names`. A caller that can't read +/// one tries the next. +pub fn candidates(names: &[&str]) -> Vec<(PathBuf, PathBuf)> { + let lo = names.first().copied().map(lo_ext_dirs); + let mut out: Vec<(PathBuf, PathBuf)> = Vec::new(); + for dir in search_dirs(lo.as_deref()) { + for n in names { + let aff = dir.join(format!("{n}.aff")); + let dic = dir.join(format!("{n}.dic")); + if aff.is_file() && dic.is_file() && !out.iter().any(|(_, d)| *d == dic) { + out.push((aff, dic)); + } + } + } + out +} + /// The first `.aff`/`.dic` pair for any of `names` in `dir`. pub fn find_in(dir: &Path, names: &[&str]) -> Option<(PathBuf, PathBuf)> { names.iter().find_map(|n| { @@ -183,6 +201,15 @@ pub fn load(aff: &Path, dic: &Path) -> Result { AffixDict::from_hunspell(&aff_text, &dic_text, &[source.as_str()]) } +/// [`load`] for an English dictionary: directives that only matter for other languages +/// (compounding, output conversion) are ignored rather than refused +/// ([`AffixDict::from_hunspell_english`]). +pub fn load_english(aff: &Path, dic: &Path) -> Result { + let (aff_text, dic_text) = decode(&read_capped(aff)?, &read_capped(dic)?)?; + let source = format!("Hunspell dictionary {}", dic.display()); + AffixDict::from_hunspell_english(&aff_text, &dic_text, &[source.as_str()]) +} + /// ISO 8859-1: every byte is the code point of the same value (the original VERO pt_BR uses it). fn decode_latin1(bytes: &[u8]) -> String { bytes.iter().map(|&b| char::from(b)).collect() diff --git a/crates/proof/src/lib.rs b/crates/proof/src/lib.rs index bb9866d6..85835797 100644 --- a/crates/proof/src/lib.rs +++ b/crates/proof/src/lib.rs @@ -51,8 +51,8 @@ //! **Language data** (the Moby word list, the pattern files, our word supplements) is embedded at //! build time from craft-i18n's `language-data/` (`CRAFT_I18N_DIR`, see `build.rs`). English //! spelling never goes unchecked: without the embedded word list it uses an English Hunspell -//! dictionary installed on the system, and without one the core word list built into the crate -//! (see [`english_source`]). Hyphenation that needs the data is off without it; grammar and the +//! dictionary installed on the system, and without one the whole Moby word list built into the +//! crate (see [`english_source`]). Hyphenation that needs the data is off without it; grammar and the //! rule-based hyphenation (Bulgarian, Turkish, Russian) are code and still work. #![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)] @@ -326,8 +326,9 @@ pub fn dictionary_load_error(lang: ProofLang) -> Option { /// Where the spelling of an English `lang` comes from now (`None` for other languages): the word /// list embedded at build time, else an English Hunspell dictionary from the dictionaries folder -/// or the system (the run's English first), else the core word list built into the crate, which -/// marks only near misses of common words. Reads the Hunspell dictionary once when there is no +/// or the system (the run's English first), else the Moby word list built into the crate. +/// British and Canadian English use an `en_US` Hunspell dictionary when no regional one is +/// installed. Reads the Hunspell dictionary once when there is no /// embedded word list (it is cached afterwards). pub fn english_source(lang: ProofLang) -> Option { lang.is_english().then(|| english::source(lang)) @@ -464,9 +465,11 @@ const COMMON: &str = "a an the and or but if of to in on at by for with from as /// lowercase base form per line, `#` comments. Inflections come from [`known_core`]. use data::EXTRA_EN; +/// The supplement's words: the Language data's copy, else the crate's own ([`english::EXTRA`]). fn extra_words() -> &'static HashSet<&'static str> { static E: OnceLock> = OnceLock::new(); - E.get_or_init(|| EXTRA_EN.lines().map(str::trim).filter(|l| !l.is_empty() && !l.starts_with('#')).collect()) + let extra = if EXTRA_EN.is_empty() { english::EXTRA } else { EXTRA_EN }; + E.get_or_init(|| extra.lines().map(str::trim).filter(|l| !l.is_empty() && !l.starts_with('#')).collect()) } /// A base form in the dictionary or the supplement. @@ -479,9 +482,9 @@ fn known_core(w: &str) -> bool { known_with(w, &|s| base_known(d, s)) } -/// [`known_core`] against the core word list built into the crate (no embedded word list). -pub(crate) fn known_in_core_list(w: &str) -> bool { - known_with(w, &|s| english::core_contains(s) || extra_words().contains(s)) +/// [`known_core`] against the word list built into the crate (no embedded word list). +pub(crate) fn known_in_word_list(w: &str) -> bool { + known_with(w, &|s| english::word_list_contains(s) || extra_words().contains(s)) } /// Is `w` (lower case) a word, by `base_known` (a base form in the word list), the common words, @@ -608,7 +611,7 @@ pub(crate) fn accepted_by_options(word: &str, opts: &Options) -> bool { } /// Is the English word list embedded? Without it English is checked against an installed -/// Hunspell dictionary or the core word list ([`english`]). +/// Hunspell dictionary or the word list built into the crate ([`english`]). pub(crate) fn english_data() -> bool { !dict::Dictionary::en_us().is_empty() } @@ -1196,7 +1199,7 @@ mod tests { } /// Remove the English files of `dir` and set it again: English goes back to what it was - /// (the core list, or a dictionary installed on the system), for the tests that follow. + /// (the built-in list, or a dictionary installed on the system), for the tests that follow. fn drop_english_files(dir: &std::path::Path, english: &[(&str, &[u8], &[u8])]) { for (name, _, _) in english { let _ = std::fs::remove_file(dir.join(format!("{name}.aff"))); @@ -1206,18 +1209,18 @@ mod tests { } /// R6.4, English never goes unchecked: with no embedded word list, an English Hunspell - /// dictionary (here in the dictionaries folder) is used before the core word list built into - /// the crate; with one, the embedded list stays in use whatever is installed. + /// dictionary (here in the dictionaries folder) is used before the word list built into the + /// crate; with one, the embedded list stays in use whatever is installed. #[test] - fn english_hunspell_dictionary_is_used_before_the_core_list() { + fn english_hunspell_dictionary_is_used_before_the_built_in_list() { let _guard = DICTIONARY_TESTS.lock().unwrap_or_else(std::sync::PoisonError::into_inner); let dir = std::env::temp_dir().join(format!("wc-proof-en-hunspell-{}", std::process::id())); - // A tiny en_US. `teh` is a word in it, so a right `teh` is this dictionary answering (the - // core list marks it); `hous` and `because` aren't. + // A tiny en_US. `hous` and `because` aren't words in it, so a marked `because` is this + // dictionary answering (the built-in list knows it). let english: &[(&str, &[u8], &[u8])] = &[("en_US", b"SET UTF-8\nTRY esiarntolcdugmphbyfvkwz\nSFX S Y 1\nSFX S 0 s .\n", b"3\nteh\nthe\nhouse/S\n")]; folder_with_english(&dir, english); - if cfg!(craft_proof_data) { + if english_data() { assert_eq!(english_source(ProofLang::En), Some(EnglishSource::Embedded)); // (The Moby list has `teh`.) assert!(!is_correct_in("becuase", ProofLang::En) && is_correct_in("because", ProofLang::En)); @@ -1229,12 +1232,12 @@ mod tests { assert!(is_correct_in(w, ProofLang::En), "{w}"); } for w in ["hous", "because", "housez"] { - assert!(!is_correct_in(w, ProofLang::En), "{w}: the dictionary's words, not the core list's"); + assert!(!is_correct_in(w, ProofLang::En), "{w}: the dictionary's words, not the built-in list's"); } assert!(!is_correct("hous") && is_correct("teh"), "the older English-only functions too"); assert_eq!(check_spelling_in("teh hous", ProofLang::En).len(), 1); assert!(suggest_in("hous", 3, ProofLang::En).contains(&"house".to_string()), "{:?}", suggest_in("hous", 3, ProofLang::En)); - // No en_GB or en_CA file: the en_US one beats the core list. + // No en_GB or en_CA file: they use the en_US one (one copy, shared). assert_eq!(english_source(ProofLang::EnGb), Some(EnglishSource::Hunspell(dic.clone()))); assert_eq!(english_source(ProofLang::EnCa), Some(EnglishSource::Hunspell(dic))); } @@ -1243,14 +1246,15 @@ mod tests { assert!(check_text("hous teh", &[(0..8, ProofLang::De)]).is_empty()); assert_eq!(english_source(ProofLang::Pl), None); drop_english_files(&dir, english); - if !cfg!(craft_proof_data) { + if !english_data() { assert_ne!(english_source(ProofLang::En), Some(EnglishSource::Hunspell(dir.join("en_US.dic")))); } } /// R6.4: an English Hunspell dictionary that is there but can't be read (an encoding we don't /// read, bytes that aren't UTF-8, no words) is an error reported for its English, never a - /// panic, and that English falls back to the core list, which still marks `becuase`. + /// panic, and that English falls back to the next dictionary or the built-in word list, which + /// still marks `becuase`. #[test] fn unreadable_english_dictionary_is_reported_and_skipped() { let _guard = DICTIONARY_TESTS.lock().unwrap_or_else(std::sync::PoisonError::into_inner); @@ -1259,11 +1263,13 @@ mod tests { &[("en_US", b"SET UTF-8\n", b"0\n"), ("en_GB", b"SET SHIFT_JIS\n", b"1\ncolour\n"), ("en_CA", b"SET UTF-8\n", b"1\n\xff\xfe\n")]; folder_with_english(&dir, english); for (lang, reason) in [(ProofLang::En, "no words"), (ProofLang::EnGb, "unsupported encoding"), (ProofLang::EnCa, "not UTF-8")] { - if cfg!(craft_proof_data) { + if english_data() { assert_eq!(english_source(lang), Some(EnglishSource::Embedded)); assert_eq!(dictionary_load_error(lang), None, "{lang:?}: never read"); } else { - assert_eq!(english_source(lang), Some(EnglishSource::CoreList), "{lang:?}"); + // The built-in list, or a dictionary installed on the system (tried next). + let source = english_source(lang); + assert!(!matches!(&source, Some(EnglishSource::Hunspell(p)) if p.starts_with(&dir)), "{lang:?}: {source:?}"); let error = dictionary_load_error(lang).unwrap_or_default(); assert!(error.contains(reason), "{lang:?}: {error}"); } @@ -1274,6 +1280,36 @@ mod tests { assert_eq!(dictionary_load_error(ProofLang::EnGb), None, "a new folder forgets the old errors"); } + /// craft-libs#482 review: an English dictionary that can't be read is skipped for the next + /// name or folder, not for the built-in list; and a dictionary with compounding and output + /// conversion (as the usual en_US and en_GB ones have) is read, not refused. + #[test] + fn english_tries_the_next_dictionary_and_reads_real_world_directives() { + let _guard = DICTIONARY_TESTS.lock().unwrap_or_else(std::sync::PoisonError::into_inner); + let dir = std::env::temp_dir().join(format!("wc-proof-en-next-{}", std::process::id())); + let english: &[(&str, &[u8], &[u8])] = &[ + ("en_GB", b"SET SHIFT_JIS\n", b"1\ncolour\n"), + ( + "en_US", + b"SET UTF-8\nICONV 1\nICONV \xe2\x80\x99 '\nOCONV 1\nOCONV ' \xe2\x80\x99\nCOMPOUNDMIN 1\nONLYINCOMPOUND c\n\ + COMPOUNDRULE 1\nCOMPOUNDRULE n*1t\nSFX S Y 1\nSFX S 0 s .\n", + b"4\nhouse/S\nthe\nqwzzy\n1st/c\n", + ), + ]; + folder_with_english(&dir, english); + if !english_data() { + let us = dir.join("en_US.dic"); + for lang in [ProofLang::En, ProofLang::EnGb, ProofLang::EnCa] { + assert_eq!(english_source(lang), Some(EnglishSource::Hunspell(us.clone())), "{lang:?}"); + assert!(is_correct_in("qwzzy", lang) && is_correct_in("houses", lang) && !is_correct_in("because", lang), "{lang:?}"); + } + let error = dictionary_load_error(ProofLang::EnGb).unwrap_or_default(); + assert!(error.contains("unsupported encoding"), "the en_GB file it would rather use is reported: {error}"); + assert_eq!(dictionary_load_error(ProofLang::En), None); + } + drop_english_files(&dir, english); + } + /// #1063: the dictionaries folder is searched before the system locations; the dictionaries /// in it are reported and used, and cached checks are dropped. The folder holds the same test /// dictionaries the other tests install, so tests running meanwhile see the same words; it @@ -1718,8 +1754,8 @@ mod tests { assert!(words.iter().all(|w| w.chars().all(|c| c.is_lowercase() || c == '\'' || c == '-')), "not lowercase"); } - /// Without the Language data too: the installed English dictionary or the core list marks - /// both near misses (R6.4). + /// Without the Language data too: the installed English dictionary or the built-in word list + /// marks both misspellings (R6.4). #[test] fn spelling_issues_in_text() { let _guard = DICTIONARY_TESTS.lock().unwrap_or_else(std::sync::PoisonError::into_inner); @@ -1758,12 +1794,13 @@ mod tests { assert!(["xyzq", "blorp", "qwirpy", "zxq", "frobq", "zibb", "snorf", "wugwug"].iter().all(|w| bad.contains(w)), "{bad:?}"); } - #[cfg_attr(not(craft_proof_data), ignore = "needs the Language data (CRAFT_I18N_DIR)")] #[test] fn spelling_scales_over_one_long_token() { // #1335: thousands of punctuation-separated words inside a single // whitespace-free token: one classification for the token, one issue per - // misspelled word, through every public spelling entry point. + // misspelled word, through every public spelling entry point. Without the Language data + // too (craft-libs#482 review: the old core list took 14 s here). + let started = std::time::Instant::now(); let word = |i: usize| { let mut w = String::from("zxq"); let mut n = i; @@ -1782,6 +1819,8 @@ mod tests { let opts = Options { ignore_internet: false, ..Options::default() }; assert_eq!(check_spelling_with(&t, &opts).len(), 2000); assert_eq!(check_text(&t, &[]).into_iter().filter(|i| i.kind == IssueKind::Spelling).count(), 2000); + // Debug builds on a loaded CI machine: a bound against blowups, not a benchmark. + assert!(started.elapsed() < std::time::Duration::from_secs(10), "{:?}", started.elapsed()); } #[test] diff --git a/crates/proof/src/no_data.rs b/crates/proof/src/no_data.rs index 017e0ba0..218f5d2c 100644 --- a/crates/proof/src/no_data.rs +++ b/crates/proof/src/no_data.rs @@ -1,6 +1,6 @@ //! A build with no Language data embedded (no `CRAFT_I18N_DIR`): every public entry point still -//! works and never panics. English spelling still marks obvious misspellings, against an English -//! Hunspell dictionary installed on the system or else the core word list built into the crate; +//! works and never panics. English spelling still marks misspellings, against an English +//! Hunspell dictionary installed on the system or else the Moby word list built into the crate; //! the dialect variants and hyphenation that need the data are off, and grammar (code, not data) //! still works. @@ -53,23 +53,25 @@ fn nothing_is_embedded() { } /// R6.4, English never goes unchecked: without the embedded word list, English is checked against -/// an installed English Hunspell dictionary or, without one, the core word list. Either way an -/// obvious misspelling is marked and common words are right. (Before, everything was right.) +/// an installed English Hunspell dictionary or, without one, the Moby word list built into the +/// crate. Either way a misspelling is marked and common words are right. (Before, everything was right.) #[test] fn english_spelling_still_marks_misspellings() { let _guard = crate::DICTIONARY_TESTS.lock().unwrap_or_else(std::sync::PoisonError::into_inner); for l in [ProofLang::En, ProofLang::EnGb, ProofLang::EnCa] { assert!(matches!(crate::english_source(l), Some(EnglishSource::Hunspell(_) | EnglishSource::CoreList)), "{l:?}"); - assert!(!crate::is_correct_in("teh", l), "{l:?}"); - assert!(crate::suggest_in("teh", 5, l).contains(&"the".to_string()), "{l:?}"); + assert!(!crate::is_correct_in("becuase", l), "{l:?}"); + assert!(crate::suggest_in("becuase", 5, l).contains(&"because".to_string()), "{l:?}"); for w in ["the", "The", "house", "houses", "because", "running", "people", "beautiful", "don't"] { assert!(crate::is_correct_in(w, l), "{w} {l:?}"); } - assert_eq!(crate::check_spelling_in("Teh house of the people", l).len(), 1, "{l:?}"); + assert_eq!(crate::check_spelling_in("Becuase the house of the people", l).len(), 1, "{l:?}"); } - assert!(!crate::is_correct("teh") && !crate::is_correct_with("teh", &Options::default()) && !crate::is_correct_for("teh", Some("en-GB"))); - assert!(crate::suggest("teh", 5).contains(&"the".to_string())); - assert_eq!(crate::check_spelling("Teh house").len(), 1); + assert!( + !crate::is_correct("becuase") && !crate::is_correct_with("becuase", &Options::default()) && !crate::is_correct_for("becuase", Some("en-GB")) + ); + assert!(crate::suggest("becuase", 5).contains(&"because".to_string())); + assert_eq!(crate::check_spelling("Becuase house").len(), 1); // The dialect variants are Language data: none without it. for w in ["colour", "color"] { assert_eq!(en_variants::preferred(w, ProofLang::En), None); diff --git a/crates/proof/src/vi.rs b/crates/proof/src/vi.rs index 66a4af76..cef4deb3 100644 --- a/crates/proof/src/vi.rs +++ b/crates/proof/src/vi.rs @@ -83,7 +83,7 @@ mod checker_tests { assert!(check_text_with(text, &[], &Options::default(), true, false).is_empty()); } - /// Without the Language data too: the installed English dictionary or the core list marks + /// Without the Language data too: the installed English dictionary or the built-in word list marks /// `yesterdy` (R6.4). #[test] fn english_keeps_its_marks_and_skips_vietnamese_names() {