diff --git a/crates/proof/src/lib.rs b/crates/proof/src/lib.rs index 9d345ab6b..ea42c3337 100644 --- a/crates/proof/src/lib.rs +++ b/crates/proof/src/lib.rs @@ -315,7 +315,7 @@ fn known_core(w: &str) -> bool { return true; } // Inflections. - let stems: [(&str, &[&str]); 12] = [ + let stems: [(&str, &[&str]); 13] = [ ("'s", &[""]), ("s", &[""]), ("es", &["", "e"]), @@ -325,6 +325,8 @@ fn known_core(w: &str) -> bool { ("ing", &["", "e"]), ("ly", &["", "le"]), ("ily", &["y"]), + // specifically → specific (#1694): only -ic adjectives, so "desktopally" stays wrong. + ("ically", &["ic"]), ("er", &["", "e"]), ("est", &["", "e"]), ("ness", &[""]), @@ -924,6 +926,27 @@ mod tests { assert!(suggest("Wrold", 3).contains(&"World".to_string())); } + /// #1694: `-ically` adverbs come from their `-ic` adjective (specific → specifically). + #[test] + fn ically_adverbs_are_known() { + for w in ["specifically", "scientifically", "automatically", "dramatically", "Specifically"] { + assert!(is_correct(w), "{w}"); + } + for w in ["specificaly", "specifcally", "zzzically"] { + assert!(!is_correct(w), "{w}"); + } + } + + /// #1694 review: only `-ic` adjectives take `-ally`; other known words (dictionary or + /// supplement) don't. + #[test] + fn non_ic_words_do_not_take_ally() { + for (base, wrong) in [("desktop", "desktopally"), ("house", "houseally"), ("final", "finalally"), ("green", "greenally")] { + assert!(is_correct(base), "{base}"); + assert!(!is_correct(wrong), "{wrong}"); + } + } + /// #520: common modern words (and their inflections) are known; misspellings still flagged. #[test] fn common_modern_words() { diff --git a/docs/localization-parity.md b/docs/localization-parity.md index 7e635759a..ac269368f 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -229,6 +229,7 @@ WordCraft keeps 2,54 cm). | 2026-10-13 | minor | Croatian interface catalog (2,507 entries, built-in style names shown translated), `hr-*` system locales, saved preference and font coverage checks; the template name "Letter" has its own `template` context so the paper size keeps its name; no Croatian proofing | | 2026-10-11 | minor | Hungarian interface catalog (2,419 entries, built-in style names shown translated; covers everything the interface audit finds), locale selection, saved preference and font coverage checks | | 2026-10-11 | minor | Turkish interface catalog (1,307 entries), locale selection, saved preference, Turkish casing in command search and font coverage checks; catalog sizes re-counted | +| 2026-10-17 | trivial | English spelling (#1694): `-ically` adverbs come from their `-ic` adjective ("specifically", "scientifically"), so they're no longer flagged; other words don't take `-ally` ("desktopally" is still flagged) | | 2026-10-11 | trivial | English spelling (#520): our supplement `assets/spelling/en-extra.txt` adds ~220 common modern words the Moby list lacks ("desktop", "download", "email"…) | | 2026-10-10 | minor | Estonian interface catalog, locale selection, saved preference and font coverage checks; count labels put the noun first so they read right at 1 | | 2026-10-10 | minor | Serbian (Cyrillic and Latin) interface merged (#250) |