From 0a2f309845d113a381b68d69b98210d804ccc661 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 1 Oct 2025 09:34:22 -0500 Subject: [PATCH] fix(dict): Remove blank corrections Fixes #1388 --- crates/typos-dict/assets/words.csv | 12 ++++++------ .../benches/benches/aho_corasick_codegen.rs | 12 ++++++------ crates/typos-dict/src/word_codegen.rs | 18 ++++++------------ crates/typos-dict/tests/verify.rs | 3 +++ 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/crates/typos-dict/assets/words.csv b/crates/typos-dict/assets/words.csv index b1451936..00bc70c7 100644 --- a/crates/typos-dict/assets/words.csv +++ b/crates/typos-dict/assets/words.csv @@ -32064,7 +32064,7 @@ enforer,enforcer enforers,enforcers enfores,enforces enforing,enforcing -enformation,information,deformation,reformation, +enformation,information,deformation,reformation enfornce,enforce enfornced,enforced enforncement,enforcement @@ -34563,10 +34563,10 @@ exictement,excitement exictes,excites exicting,exciting,existing,exiting,evicting,exacting exicutable,executable -exicute,,execute +exicute,execute exicuteable,executable -exicutes,,executes -exicuting,,executing +exicutes,executes +exicuting,executing exilerate,exhilarate exilerated,exhilarated exilerates,exhilarates @@ -35624,8 +35624,8 @@ explotiation,exploitation explotiative,exploitative explotied,exploited exploting,exploiting,exploring -explotion,explosion,exploration,exploitation, -explotions,explosions,explorations,exploitation, +explotion,explosion,exploration,exploitation +explotions,explosions,explorations,exploitation explusions,explosions expnese,expense expoch,epoch diff --git a/crates/typos-dict/benches/benches/aho_corasick_codegen.rs b/crates/typos-dict/benches/benches/aho_corasick_codegen.rs index f19f5018..0ddea7a5 100644 --- a/crates/typos-dict/benches/benches/aho_corasick_codegen.rs +++ b/crates/typos-dict/benches/benches/aho_corasick_codegen.rs @@ -122648,7 +122648,7 @@ impl Word { &["enforcers"], &["enforces"], &["enforcing"], - &["information", "deformation", "reformation", ""], + &["information", "deformation", "reformation"], &["enforce"], &["enforced"], &["enforcement"], @@ -125153,10 +125153,10 @@ impl Word { &["excites"], &["exciting", "existing", "exiting", "evicting", "exacting"], &["executable"], - &["", "execute"], + &["execute"], &["executable"], - &["", "executes"], - &["", "executing"], + &["executes"], + &["executing"], &["exhilarate"], &["exhilarated"], &["exhilarates"], @@ -126214,8 +126214,8 @@ impl Word { &["exploitative"], &["exploited"], &["exploiting", "exploring"], - &["explosion", "exploration", "exploitation", ""], - &["explosions", "explorations", "exploitation", ""], + &["explosion", "exploration", "exploitation"], + &["explosions", "explorations", "exploitation"], &["explosions"], &["expense"], &["epoch"], diff --git a/crates/typos-dict/src/word_codegen.rs b/crates/typos-dict/src/word_codegen.rs index 4d96161a..7d761106 100644 --- a/crates/typos-dict/src/word_codegen.rs +++ b/crates/typos-dict/src/word_codegen.rs @@ -101625,10 +101625,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg dictgen::InsensitiveStr::Ascii("calulus"), &["calculus", "callus"], ), - ( - dictgen::InsensitiveStr::Ascii("exicutes"), - &["", "executes"], - ), + (dictgen::InsensitiveStr::Ascii("exicutes"), &["executes"]), (dictgen::InsensitiveStr::Ascii("collions"), &["collisions"]), ( dictgen::InsensitiveStr::Ascii("custumisations"), @@ -104165,7 +104162,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg dictgen::InsensitiveStr::Ascii("transulcent"), &["translucent"], ), - (dictgen::InsensitiveStr::Ascii("exicute"), &["", "execute"]), + (dictgen::InsensitiveStr::Ascii("exicute"), &["execute"]), (dictgen::InsensitiveStr::Ascii("deamons"), &["daemons"]), (dictgen::InsensitiveStr::Ascii("nautres"), &["natures"]), (dictgen::InsensitiveStr::Ascii("trinkes"), &["trinkets"]), @@ -107006,10 +107003,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg (dictgen::InsensitiveStr::Ascii("ggod"), &["good"]), (dictgen::InsensitiveStr::Ascii("modukles"), &["modules"]), (dictgen::InsensitiveStr::Ascii("skept"), &["skipped"]), - ( - dictgen::InsensitiveStr::Ascii("exicuting"), - &["", "executing"], - ), + (dictgen::InsensitiveStr::Ascii("exicuting"), &["executing"]), (dictgen::InsensitiveStr::Ascii("masakist"), &["masochist"]), (dictgen::InsensitiveStr::Ascii("guaruanty"), &["guaranty"]), (dictgen::InsensitiveStr::Ascii("restirer"), &["restorer"]), @@ -121275,7 +121269,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg ), ( dictgen::InsensitiveStr::Ascii("explotions"), - &["explosions", "explorations", "exploitation", ""], + &["explosions", "explorations", "exploitation"], ), (dictgen::InsensitiveStr::Ascii("tawianese"), &["taiwanese"]), (dictgen::InsensitiveStr::Ascii("reserach"), &["research"]), @@ -123796,7 +123790,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg ), ( dictgen::InsensitiveStr::Ascii("enformation"), - &["information", "deformation", "reformation", ""], + &["information", "deformation", "reformation"], ), ( dictgen::InsensitiveStr::Ascii("dismatching"), @@ -173945,7 +173939,7 @@ pub static WORD: dictgen::Map, &[&str]> = dictg ), ( dictgen::InsensitiveStr::Ascii("explotion"), - &["explosion", "exploration", "exploitation", ""], + &["explosion", "exploration", "exploitation"], ), ( dictgen::InsensitiveStr::Ascii("opreational"), diff --git a/crates/typos-dict/tests/verify.rs b/crates/typos-dict/tests/verify.rs index 7c2d1f75..25f8ec3d 100644 --- a/crates/typos-dict/tests/verify.rs +++ b/crates/typos-dict/tests/verify.rs @@ -108,6 +108,9 @@ fn process>( .map(|(typo, corrections)| { let mut new_corrections = IndexSet::new(); for correction in corrections { + if correction.is_empty() { + continue; + } let correction = word_variants .get(correction.as_str()) .and_then(|words| find_best_match(&typo, correction.as_str(), words))