diff options
author | Florian Walch <florian@fwalch.com> | 2014-12-23 11:28:33 +0100 |
---|---|---|
committer | Florian Walch <florian@fwalch.com> | 2014-12-23 16:14:46 +0100 |
commit | d5bdc709d06d6d3452dbb7709351a22e6c12597e (patch) | |
tree | cebc24b465534490dbbed7a0976286613defac9c | |
parent | c3de63bfbc168cd8ccc53dbb3e587043c11f7276 (diff) | |
download | rneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.tar.gz rneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.tar.bz2 rneovim-d5bdc709d06d6d3452dbb7709351a22e6c12597e.zip |
vim-patch:7.4.447
Problem: Spell files from Hunspell may generate a lot of errors.
Solution: Add the IGNOREEXTRA flag.
https://code.google.com/p/vim/source/detail?r=v7-4-447
-rw-r--r-- | runtime/doc/spell.txt | 11 | ||||
-rw-r--r-- | src/nvim/spell.c | 10 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 20 insertions, 3 deletions
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt index da447e3b78..2ae0d27690 100644 --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1053,6 +1053,9 @@ this text to start with a "#" so that mistakes don't go unnoticed. Example: SFX F 0 in [^i]n # Spion > Spionin ~ SFX F 0 nen in # Bauerin > Bauerinnen ~ +However, to avoid lots of errors in affix files written for Myspell, you can +add the IGNOREEXTRA flag. + Apparently Myspell allows an affix name to appear more than once. Since this might also be a mistake, Vim checks for an extra "S". The affix files for Myspell that use this feature apparently have this flag. Example: @@ -1106,6 +1109,14 @@ Specifically, the affix flags can be used for: - CIRCUMFIX, as explained just below. +IGNOREEXTRA *spell-IGNOREEXTRA* + +Normally Vim gives an error for an extra field that does not start with '#'. +This avoids errors going unnoticed. However, some files created for Myspell +or Hunspell may contain many entries with an extra field. Use the IGNOREEXTRA +flag to avoid lots of errors. + + CIRCUMFIX *spell-CIRCUMFIX* The CIRCUMFIX flag means a prefix and suffix must be added at the same time. diff --git a/src/nvim/spell.c b/src/nvim/spell.c index 83dcddecd6..4759b4efa6 100644 --- a/src/nvim/spell.c +++ b/src/nvim/spell.c @@ -806,6 +806,7 @@ typedef struct afffile_S { unsigned af_nosuggest; // NOSUGGEST ID int af_pfxpostpone; // postpone prefixes without chop string and // without flags + bool af_ignoreextra; // IGNOREEXTRA present hashtab_T af_pref; // hashtable for prefixes, affheader_T hashtab_T af_suff; // hashtable for suffixes, affheader_T hashtab_T af_comp; // hashtable for compound flags, compitem_T @@ -4629,6 +4630,8 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname) spin->si_nosugfile = true; } else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) { aff->af_pfxpostpone = true; + } else if (is_aff_rule(items, itemcnt, "IGNOREEXTRA", 1)) { + aff->af_ignoreextra = true; } else if ((STRCMP(items[0], "PFX") == 0 || STRCMP(items[0], "SFX") == 0) && aff_todo == 0 @@ -4692,8 +4695,11 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname) cur_aff->ah_follows = false; // Myspell allows extra text after the item, but that might - // mean mistakes go unnoticed. Require a comment-starter. - if (itemcnt > lasti && *items[lasti] != '#') + // mean mistakes go unnoticed. Require a comment-starter, + // unless IGNOREEXTRA is used. Hunspell uses a "-" item. + if (itemcnt > lasti + && !aff->af_ignoreextra + && *items[lasti] != '#') smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]); if (STRCMP(items[2], "Y") != 0 && STRCMP(items[2], "N") != 0) diff --git a/src/nvim/version.c b/src/nvim/version.c index cd11dfe1d0..eb07eb6d12 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -290,7 +290,7 @@ static int included_patches[] = { //450, //449, //448 NA - //447, + 447, //446, //445, 444, |