Skip to content

Commit e6c595c

Browse files
authored
Merge pull request #252 from epage/dict
fix(dict): Handle cases from Linux
2 parents 444d2cc + 639e65b commit e6c595c

File tree

7 files changed

+33748
-33671
lines changed

7 files changed

+33748
-33671
lines changed

Cargo.lock

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/typos-dict/assets/words.csv

+2-3
Original file line numberDiff line numberDiff line change
@@ -13021,7 +13021,6 @@ handelbars,handlebars
1302113021
handicaped,handicapped
1302213022
handwritng,handwriting
1302313023
harasments,harassments
13024-
hardlinked,hardline
1302513024
harmoniacs,harmonic
1302613025
harmonisch,harmonic
1302713026
harrasment,harassment
@@ -23557,7 +23556,7 @@ referens,references
2355723556
referere,referee
2355823557
referign,refering
2355923558
refering,referring
23560-
refernce,references
23559+
refernce,reference
2356123560
reffered,referred
2356223561
refilles,refills
2356323562
refillls,refills
@@ -27976,7 +27975,7 @@ tast,taste
2797627975
tath,that
2797727976
tehy,they
2797827977
tghe,the
27979-
ther,there
27978+
ther,there,their,the
2798027979
thge,the
2798127980
thna,than
2798227981
thne,then

crates/typos-dict/codegen/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ codecov = { repository = "crate-ci/typos" }
1818
phf = { version = "0.8", features = ["unicase"] }
1919
phf_codegen = "0.8"
2020
csv = "1.1"
21+
itertools = "0.10"
2122
unicase = "2.5"
2223
codegenrs = "1.0"
2324
structopt = "0.3"

crates/typos-dict/codegen/src/main.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,26 @@ fn generate<W: std::io::Write>(file: &mut W) {
1818

1919
writeln!(
2020
file,
21-
"pub static WORD_DICTIONARY: phf::Map<unicase::UniCase<&'static str>, &'static str> = "
21+
"pub static WORD_DICTIONARY: phf::Map<unicase::UniCase<&'static str>, &'static [&'static str]> = "
2222
)
2323
.unwrap();
2424
let mut builder = phf_codegen::Map::new();
2525
let records: Vec<_> = csv::ReaderBuilder::new()
2626
.has_headers(false)
27+
.flexible(true)
2728
.from_reader(DICT)
2829
.records()
2930
.map(|r| r.unwrap())
3031
.collect();
3132
for record in &records {
32-
smallest = std::cmp::min(smallest, record[0].len());
33-
largest = std::cmp::max(largest, record[0].len());
34-
let value = format!(r#""{}""#, &record[1]);
33+
let mut record_fields = record.iter();
34+
let key = record_fields.next().unwrap();
35+
smallest = std::cmp::min(smallest, key.len());
36+
largest = std::cmp::max(largest, key.len());
37+
let value = format!(
38+
"&[{}]",
39+
itertools::join(record_fields.map(|field| format!(r#""{}""#, field)), ", ")
40+
);
3541
builder.entry(unicase::UniCase::new(&record[0]), &value);
3642
}
3743
let codegenned = builder.build();

0 commit comments

Comments
 (0)