diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2015-08-26 10:33:46 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2015-08-26 10:33:46 +0200 |
commit | 2e874d5120e7b7521fe72d5bc80e5afed26c1862 (patch) | |
tree | abd341bc507268574b97340b95eade3f3fab0c63 | |
parent | b4d29fe06738b1b7b27b163c237dfa6cd0a0c183 (diff) | |
parent | 2b6d1546ecfb24a6cf7ef970bcea3b9a288ad5a5 (diff) | |
download | rneovim-2e874d5120e7b7521fe72d5bc80e5afed26c1862.tar.gz rneovim-2e874d5120e7b7521fe72d5bc80e5afed26c1862.tar.bz2 rneovim-2e874d5120e7b7521fe72d5bc80e5afed26c1862.zip |
Merge branch 'test59rb'
-rw-r--r-- | src/nvim/testdir/Makefile | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test58.in | 639 | ||||
-rw-r--r-- | src/nvim/testdir/test58.ok | 283 | ||||
-rw-r--r-- | src/nvim/testdir/test59.in | 626 | ||||
-rw-r--r-- | src/nvim/testdir/test59.ok | 270 | ||||
-rw-r--r-- | test/functional/helpers.lua | 5 | ||||
-rw-r--r-- | test/functional/legacy/059_utf8_spell_checking_spec.lua | 943 |
7 files changed, 948 insertions, 1819 deletions
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 6af8893800..8c3e99c624 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -18,7 +18,6 @@ SCRIPTS := test_eval.out \ test42.out test45.out \ test47.out test48.out test49.out \ test52.out test53.out test55.out \ - test58.out test59.out \ test64.out \ test68.out test69.out \ test73.out \ diff --git a/src/nvim/testdir/test58.in b/src/nvim/testdir/test58.in deleted file mode 100644 index cef1cfa1ba..0000000000 --- a/src/nvim/testdir/test58.in +++ /dev/null @@ -1,639 +0,0 @@ -Tests for spell checking. vim: set ft=vim : - -STARTTEST -:so small.vim -:" -:" Don't want to depend on the locale from the environment -:set enc=latin1 -:e! -:" -:" Check using z= in new buffer (crash fixed by patch 7.4a.028). -:set maxmem=512 spell -iasdz=:" -:" -:" Function to test .aff/.dic with list of good and bad words. -:func TestOne(aff, dic) - set spellfile= - $put ='' - $put ='test '. a:aff . '-' . a:dic - " Generate a .spl file from a .dic and .aff file. - exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' - exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' - mkspell! Xtest Xtest - " use that spell file - set spl=Xtest.latin1.spl spell - " list all valid words - spelldump - %yank - quit - $put - $put ='-------' - " find all bad words and suggestions for them - exe '1;/^' . a:aff . 'good:' - normal 0f:]s - let prevbad = '' - while 1 - let [bad, a] = spellbadword() - if bad == '' || bad == prevbad || bad == 'badend' - break - endif - let prevbad = bad - let lst = spellsuggest(bad, 3) - normal mm - $put =bad - $put =string(lst) - normal `m]s - endwhile -endfunc -:" -:call TestOne('1', '1') -:$put =soundfold('goobledygoook') -:$put =soundfold('koprnven') -:$put =soundfold('oeverloos gezwets edale') -:" -:" -:" and now with SAL instead of SOFO items; test automatic reloading -gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff -:mkspell! Xtest Xtest -:$put =soundfold('goobledygoook') -:$put =soundfold('koprnven') -:$put =soundfold('oeverloos gezwets edale') -:" -:" also use an addition file -gg:/^addstart/+1,/^addend/-1w! Xtest.latin1.add -:mkspell! Xtest.latin1.add.spl Xtest.latin1.add -:set spellfile=Xtest.latin1.add -/^test2: -]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_us.latin1.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_gb.latin1.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_nz.latin1.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_ca.latin1.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:unlet str a -:" -:" Postponed prefixes -:call TestOne('2', '1') -:" -:" Compound words -:call TestOne('3', '3') -:call TestOne('4', '4') -:call TestOne('5', '5') -:call TestOne('6', '6') -:call TestOne('7', '7') -:" -:" NOSLITSUGS -:call TestOne('8', '8') -:" -:" clean up for valgrind -:delfunc TestOne -:set spl= enc=latin1 -:" -gg:/^test output:/,$wq! test.out -ENDTEST - -1affstart -SET ISO8859-1 -TRY esianrtolcdugmphbyfvkwjkqxz-'ESIANRTOLCDUGMPHBYFVKWJKQXZ - -FOL -LOW -UPP - -SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep? - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out . - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s -1affend - -1good: wrong OK puts. Test the end -bad: inputs comment ok Ok. test dl end the -badend - -1dicstart -123456 -test/NO -# comment -wrong -Comment -OK -uk -put/ISO -the end -deol -dr -1dicend - -affstart_sal -SET ISO8859-1 -TRY esianrtolcdugmphbyfvkwjkqxz-'ESIANRTOLCDUGMPHBYFVKWJKQXZ - -FOL -LOW -UPP - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out . - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s - -SAL AH(AEIOUY)-^ *H -SAL AR(AEIOUY)-^ *R -SAL A(HR)^ * -SAL A^ * -SAL AH(AEIOUY)- H -SAL AR(AEIOUY)- R -SAL A(HR) _ -SAL ^ * -SAL ^ * -SAL BB- _ -SAL B B -SAL CQ- _ -SAL CIA X -SAL CH X -SAL C(EIY)- S -SAL CK K -SAL COUGH^ KF -SAL CC< C -SAL C K -SAL DG(EIY) K -SAL DD- _ -SAL D T -SAL < E -SAL EH(AEIOUY)-^ *H -SAL ER(AEIOUY)-^ *R -SAL E(HR)^ * -SAL ENOUGH^$ *NF -SAL E^ * -SAL EH(AEIOUY)- H -SAL ER(AEIOUY)- R -SAL E(HR) _ -SAL FF- _ -SAL F F -SAL GN^ N -SAL GN$ N -SAL GNS$ NS -SAL GNED$ N -SAL GH(AEIOUY)- K -SAL GH _ -SAL GG9 K -SAL G K -SAL H H -SAL IH(AEIOUY)-^ *H -SAL IR(AEIOUY)-^ *R -SAL I(HR)^ * -SAL I^ * -SAL ING6 N -SAL IH(AEIOUY)- H -SAL IR(AEIOUY)- R -SAL I(HR) _ -SAL J K -SAL KN^ N -SAL KK- _ -SAL K K -SAL LAUGH^ LF -SAL LL- _ -SAL L L -SAL MB$ M -SAL MM M -SAL M M -SAL NN- _ -SAL N N -SAL OH(AEIOUY)-^ *H -SAL OR(AEIOUY)-^ *R -SAL O(HR)^ * -SAL O^ * -SAL OH(AEIOUY)- H -SAL OR(AEIOUY)- R -SAL O(HR) _ -SAL PH F -SAL PN^ N -SAL PP- _ -SAL P P -SAL Q K -SAL RH^ R -SAL ROUGH^ RF -SAL RR- _ -SAL R R -SAL SCH(EOU)- SK -SAL SC(IEY)- S -SAL SH X -SAL SI(AO)- X -SAL SS- _ -SAL S S -SAL TI(AO)- X -SAL TH @ -SAL TCH-- _ -SAL TOUGH^ TF -SAL TT- _ -SAL T T -SAL UH(AEIOUY)-^ *H -SAL UR(AEIOUY)-^ *R -SAL U(HR)^ * -SAL U^ * -SAL UH(AEIOUY)- H -SAL UR(AEIOUY)- R -SAL U(HR) _ -SAL V^ W -SAL V F -SAL WR^ R -SAL WH^ W -SAL W(AEIOU)- W -SAL X^ S -SAL X KS -SAL Y(AEIOU)- Y -SAL ZZ- _ -SAL Z S -affend_sal - -2affstart -SET ISO8859-1 - -FOL -LOW -UPP - -PFXPOSTPONE - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out [a-z] - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s -2affend - -2good: puts -bad: inputs comment ok Ok end the. test dl -badend - -addstart -/regions=usgbnz -elequint/2 -elekwint/3 -addend - -test2: -elequint test elekwint test elekwent asdf - -Test rules for compounding. - -3affstart -SET ISO8859-1 - -COMPOUNDMIN 3 -COMPOUNDRULE m* -NEEDCOMPOUND x -3affend - -3dicstart -1234 -foo/m -bar/mx -m/m -la/mx -3dicend - -3good: foo m foobar foofoobar barfoo barbarfoo -bad: bar la foom barm mfoo mbar mm lala mla lam foola labar -badend - - -Tests for compounding. - -4affstart -SET ISO8859-1 - -FOL -LOW -UPP - -COMPOUNDRULE m+ -COMPOUNDRULE sm*e -COMPOUNDRULE sm+ -COMPOUNDMIN 3 -COMPOUNDWORDMAX 3 -COMPOUNDFORBIDFLAG t - -COMPOUNDSYLMAX 5 -SYLLABLE aeiouy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s - -NEEDAFFIX x - -PFXPOSTPONE - -MIDWORD '- - -SFX q N 1 -SFX q 0 -ok . - -SFX a Y 2 -SFX a 0 s . -SFX a 0 ize/t . - -PFX p N 1 -PFX p 0 pre . - -PFX P N 1 -PFX P 0 nou . -4affend - -4dicstart -1234 -word/mP -util/am -pro/xq -tomato/m -bork/mp -start/s -end/e -4dicend - -4good: word util bork prebork start end wordutil wordutils pro-ok - bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork - tomato tomatotomato startend startword startwordword startwordend - startwordwordend startwordwordwordend prebork preborkbork - preborkborkbork - nouword -bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato - endstart endend startstart wordend wordstart - preborkprebork preborkpreborkbork - startwordwordwordwordend borkpreborkpreborkbork - utilsbork startnouword -badend - -Test affix flags with two characters - -5affstart -SET ISO8859-1 - -FLAG long - -NEEDAFFIX !! - -COMPOUNDRULE ssmm*ee - -NEEDCOMPOUND xx -COMPOUNDPERMITFLAG pp - -SFX 13 Y 1 -SFX 13 0 bork . - -SFX a1 Y 1 -SFX a1 0 a1 . - -SFX a Y 1 -SFX a 0 a . - -PFX zz Y 1 -PFX zz 0 pre/pp . - -PFX yy Y 1 -PFX yy 0 nou . -5affend - -5dicstart -1234 -foo/a1a!! -bar/zz13ee -start/ss -end/eeyy -middle/mmxx -5dicend - -5good: fooa1 fooa bar prebar barbork prebarbork startprebar - start end startend startmiddleend nouend -bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart - startprobar startnouend -badend - -6affstart -SET ISO8859-1 - -FLAG caplong - -NEEDAFFIX A! - -COMPOUNDRULE sMm*Ee - -NEEDCOMPOUND Xx - -COMPOUNDPERMITFLAG p - -SFX N3 Y 1 -SFX N3 0 bork . - -SFX A1 Y 1 -SFX A1 0 a1 . - -SFX A Y 1 -SFX A 0 a . - -PFX Zz Y 1 -PFX Zz 0 pre/p . -6affend - -6dicstart -1234 -mee/A1AA! -bar/ZzN3Ee -lead/s -end/Ee -middle/MmXx -6dicend - -6good: meea1 meea bar prebar barbork prebarbork leadprebar - lead end leadend leadmiddleend -bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead - leadprobar -badend - -7affstart -SET ISO8859-1 - -FLAG num - -NEEDAFFIX 9999 - -COMPOUNDRULE 2,77*123 - -NEEDCOMPOUND 1 -COMPOUNDPERMITFLAG 432 - -SFX 61003 Y 1 -SFX 61003 0 meat . - -SFX 391 Y 1 -SFX 391 0 a1 . - -SFX 111 Y 1 -SFX 111 0 a . - -PFX 17 Y 1 -PFX 17 0 pre/432 . -7affend - -7dicstart -1234 -mee/391,111,9999 -bar/17,61003,123 -lead/2 -tail/123 -middle/77,1 -7dicend - -7good: meea1 meea bar prebar barmeat prebarmeat leadprebar - lead tail leadtail leadmiddletail -bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead - leadprobar -badend - -Test NOSLITSUGS - -8affstart -SET ISO8859-1 - -NOSPLITSUGS -8affend - -8dicstart -1234 -foo -bar -faabar -8dicend - -8good: foo bar faabar -bad: foobar barfoo -badend - - -test output: diff --git a/src/nvim/testdir/test58.ok b/src/nvim/testdir/test58.ok deleted file mode 100644 index ce05c73322..0000000000 --- a/src/nvim/testdir/test58.ok +++ /dev/null @@ -1,283 +0,0 @@ -test output: - -test 1-1 -# file: Xtest.latin1.spl -Comment -deol -dr -input -OK -output -outputs -outtest -put -puts -test -testen -testn -the end -uk -wrong -------- -bad -['put', 'uk', 'OK'] -inputs -['input', 'puts', 'outputs'] -comment -['Comment', 'outtest', 'the end'] -ok -['OK', 'uk', 'put'] -Ok -['OK', 'Uk', 'Put'] -test -['Test', 'testn', 'testen'] -dl -['deol', 'dr', 'test'] -end -['put', 'uk', 'test'] -the -['put', 'uk', 'test'] -gebletegek -kepereneven -everles gesvets etele -kbltykk -kprnfn -*fls kswts tl -elekwent -elequint -elekwint -elekwint -elekwent -elequint -elekwent -elequint -elekwint - -test 2-1 -# file: Xtest.latin1.spl -Comment -deol -dr -OK -put -input -output -puts -outputs -test -outtest -testen -testn -the end -uk -wrong -------- -bad -['put', 'uk', 'OK'] -inputs -['input', 'puts', 'outputs'] -comment -['Comment'] -ok -['OK', 'uk', 'put'] -Ok -['OK', 'Uk', 'Put'] -end -['put', 'uk', 'deol'] -the -['put', 'uk', 'test'] -test -['Test', 'testn', 'testen'] -dl -['deol', 'dr', 'test'] - -test 3-3 -# file: Xtest.latin1.spl -foo -m -------- -bad -['foo', 'm'] -bar -['barfoo', 'foobar', 'foo'] -la -['m', 'foo'] -foom -['foo m', 'foo', 'foofoo'] -barm -['barfoo', 'm', 'barbar'] -mfoo -['m foo', 'foo', 'foofoo'] -mbar -['foobar', 'barbar', 'm'] -mm -['m m', 'm'] -lala -[] -mla -['m', 'm m'] -lam -['m', 'm m'] -foola -['foo', 'foobar', 'foofoo'] -labar -['barbar', 'foobar'] - -test 4-4 -# file: Xtest.latin1.spl -bork -prebork -end -pro-ok -start -tomato -util -utilize -utils -word -nouword -------- -bad -['end', 'bork', 'word'] -wordutilize -['word utilize', 'wordutils', 'wordutil'] -pro -['bork', 'word', 'end'] -borkborkborkborkborkbork -['bork borkborkborkborkbork', 'borkbork borkborkborkbork', 'borkborkbork borkborkbork'] -tomatotomatotomato -['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato'] -endstart -['end start', 'start'] -endend -['end end', 'end'] -startstart -['start start'] -wordend -['word end', 'word', 'wordword'] -wordstart -['word start', 'bork start'] -preborkprebork -['prebork prebork', 'preborkbork', 'preborkborkbork'] -preborkpreborkbork -['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork'] -startwordwordwordwordend -['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end'] -borkpreborkpreborkbork -['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork'] -utilsbork -['utilbork', 'utils bork', 'util bork'] -startnouword -['start nouword', 'startword', 'startborkword'] - -test 5-5 -# file: Xtest.latin1.spl -bar -barbork -end -fooa1 -fooa -nouend -prebar -prebarbork -start -------- -bad -['bar', 'end', 'fooa1'] -foo -['fooa1', 'fooa', 'bar'] -fooa2 -['fooa1', 'fooa', 'bar'] -prabar -['prebar', 'bar', 'bar bar'] -probarbirk -['prebarbork'] -middle -[] -startmiddle -['startmiddleend', 'startmiddlebar'] -middleend -[] -endstart -['end start', 'start'] -startprobar -['startprebar', 'start prebar', 'startbar'] -startnouend -['start nouend', 'startend'] - -test 6-6 -# file: Xtest.latin1.spl -bar -barbork -end -lead -meea1 -meea -prebar -prebarbork -------- -bad -['bar', 'end', 'lead'] -mee -['meea1', 'meea', 'bar'] -meea2 -['meea1', 'meea', 'lead'] -prabar -['prebar', 'bar', 'leadbar'] -probarbirk -['prebarbork'] -middle -[] -leadmiddle -['leadmiddleend', 'leadmiddlebar'] -middleend -[] -endlead -['end lead', 'lead', 'end end'] -leadprobar -['leadprebar', 'lead prebar', 'leadbar'] - -test 7-7 -# file: Xtest.latin1.spl -bar -barmeat -lead -meea1 -meea -prebar -prebarmeat -tail -------- -bad -['bar', 'lead', 'tail'] -mee -['meea1', 'meea', 'bar'] -meea2 -['meea1', 'meea', 'lead'] -prabar -['prebar', 'bar', 'leadbar'] -probarmaat -['prebarmeat'] -middle -[] -leadmiddle -['leadmiddlebar'] -middletail -[] -taillead -['tail lead', 'tail'] -leadprobar -['leadprebar', 'lead prebar', 'leadbar'] - -test 8-8 -# file: Xtest.latin1.spl -bar -faabar -foo -------- -bad -['bar', 'foo'] -foobar -['faabar', 'foo bar', 'bar'] -barfoo -['bar foo', 'bar', 'foo'] diff --git a/src/nvim/testdir/test59.in b/src/nvim/testdir/test59.in deleted file mode 100644 index dcdb62b283..0000000000 --- a/src/nvim/testdir/test59.in +++ /dev/null @@ -1,626 +0,0 @@ -Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : - -STARTTEST -:so small.vim -:so mbyte.vim -:" -:" Don't want to depend on the locale from the environment. The .aff and .dic -:" text is in latin1, the test text is utf-8. -:set enc=latin1 -:e! -:set enc=utf-8 -:set fenc= -:" -:" Function to test .aff/.dic with list of good and bad words. -:func TestOne(aff, dic) - set spellfile= - $put ='' - $put ='test '. a:aff . '-' . a:dic - " Generate a .spl file from a .dic and .aff file. - exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' - exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' - mkspell! Xtest Xtest - " use that spell file - set spl=Xtest.utf-8.spl spell - " list all valid words - spelldump - %yank - quit - $put - $put ='-------' - " find all bad words and suggestions for them - exe '1;/^' . a:aff . 'good:' - normal 0f:]s - let prevbad = '' - while 1 - let [bad, a] = spellbadword() - if bad == '' || bad == prevbad || bad == 'badend' - break - endif - let prevbad = bad - let lst = spellsuggest(bad, 3) - normal mm - $put =bad - $put =string(lst) - normal `m]s - endwhile -endfunc -:" -:call TestOne('1', '1') -:$put =soundfold('goobledygoook') -:$put =soundfold('kóopërÿnôven') -:$put =soundfold('oeverloos gezwets edale') -:" -:" -:" and now with SAL instead of SOFO items; test automatic reloading -gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff -:mkspell! Xtest Xtest -:$put =soundfold('goobledygoook') -:$put =soundfold('kóopërÿnôven') -:$put =soundfold('oeverloos gezwets edale') -:" -:" also use an addition file -gg:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add -:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add -:set spellfile=Xtest.utf-8.add -/^test2: -]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_us.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_gb.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_nz.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_ca.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:unlet str a -:" -:" Postponed prefixes -:call TestOne('2', '1') -:" -:" Compound words -:call TestOne('3', '3') -:call TestOne('4', '4') -:call TestOne('5', '5') -:call TestOne('6', '6') -:call TestOne('7', '7') -:" -:" clean up for valgrind -:delfunc TestOne -:set spl= enc=latin1 -:" -gg:/^test output:/,$wq! test.out -ENDTEST - -1affstart -SET ISO8859-1 -TRY esianrtolcdugmphbyfvkwjkqxz-'ESIANRTOLCDUGMPHBYFVKWJKQXZ - -FOL -LOW -UPP - -SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ -SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep? - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -#NOSPLITSUGS - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out . - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s -1affend - -affstart_sal -SET ISO8859-1 -TRY esianrtolcdugmphbyfvkwjkqxz-'ESIANRTOLCDUGMPHBYFVKWJKQXZ - -FOL -LOW -UPP - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -#NOSPLITSUGS - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out . - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s - -SAL AH(AEIOUY)-^ *H -SAL AR(AEIOUY)-^ *R -SAL A(HR)^ * -SAL A^ * -SAL AH(AEIOUY)- H -SAL AR(AEIOUY)- R -SAL A(HR) _ -SAL ^ * -SAL ^ * -SAL BB- _ -SAL B B -SAL CQ- _ -SAL CIA X -SAL CH X -SAL C(EIY)- S -SAL CK K -SAL COUGH^ KF -SAL CC< C -SAL C K -SAL DG(EIY) K -SAL DD- _ -SAL D T -SAL < E -SAL EH(AEIOUY)-^ *H -SAL ER(AEIOUY)-^ *R -SAL E(HR)^ * -SAL ENOUGH^$ *NF -SAL E^ * -SAL EH(AEIOUY)- H -SAL ER(AEIOUY)- R -SAL E(HR) _ -SAL FF- _ -SAL F F -SAL GN^ N -SAL GN$ N -SAL GNS$ NS -SAL GNED$ N -SAL GH(AEIOUY)- K -SAL GH _ -SAL GG9 K -SAL G K -SAL H H -SAL IH(AEIOUY)-^ *H -SAL IR(AEIOUY)-^ *R -SAL I(HR)^ * -SAL I^ * -SAL ING6 N -SAL IH(AEIOUY)- H -SAL IR(AEIOUY)- R -SAL I(HR) _ -SAL J K -SAL KN^ N -SAL KK- _ -SAL K K -SAL LAUGH^ LF -SAL LL- _ -SAL L L -SAL MB$ M -SAL MM M -SAL M M -SAL NN- _ -SAL N N -SAL OH(AEIOUY)-^ *H -SAL OR(AEIOUY)-^ *R -SAL O(HR)^ * -SAL O^ * -SAL OH(AEIOUY)- H -SAL OR(AEIOUY)- R -SAL O(HR) _ -SAL PH F -SAL PN^ N -SAL PP- _ -SAL P P -SAL Q K -SAL RH^ R -SAL ROUGH^ RF -SAL RR- _ -SAL R R -SAL SCH(EOU)- SK -SAL SC(IEY)- S -SAL SH X -SAL SI(AO)- X -SAL SS- _ -SAL S S -SAL TI(AO)- X -SAL TH @ -SAL TCH-- _ -SAL TOUGH^ TF -SAL TT- _ -SAL T T -SAL UH(AEIOUY)-^ *H -SAL UR(AEIOUY)-^ *R -SAL U(HR)^ * -SAL U^ * -SAL UH(AEIOUY)- H -SAL UR(AEIOUY)- R -SAL U(HR) _ -SAL V^ W -SAL V F -SAL WR^ R -SAL WH^ W -SAL W(AEIOU)- W -SAL X^ S -SAL X KS -SAL Y(AEIOU)- Y -SAL ZZ- _ -SAL Z S -affend_sal - -2affstart -SET ISO8859-1 - -FOL -LOW -UPP - -PFXPOSTPONE - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -#NOSPLITSUGS - -PFX I N 1 -PFX I 0 in . - -PFX O Y 1 -PFX O 0 out [a-z] - -SFX S Y 2 -SFX S 0 s [^s] -SFX S 0 es s - -SFX N N 3 -SFX N 0 en [^n] -SFX N 0 nen n -SFX N 0 n . - -REP 3 -REP g ch -REP ch g -REP svp s.v.p. - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s -2affend - -1dicstart -123456 -test/NO -# comment -wrong -Comment -OK -uk -put/ISO -the end -deol -dr -1dicend - -addstart -/regions=usgbnz -elequint/2 -elekwint/3 -addend - -1good: wrong OK puts. Test the end -bad: inputs comment ok Ok. test déôl end the -badend - -2good: puts -bad: inputs comment ok Ok end the. test déôl -badend - -Test rules for compounding. - -3affstart -SET ISO8859-1 - -COMPOUNDMIN 3 -COMPOUNDRULE m* -NEEDCOMPOUND x -3affend - -3dicstart -1234 -foo/m -bar/mx -m/m -la/mx -3dicend - -3good: foo mï foobar foofoobar barfoo barbarfoo -bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar -badend - - -Tests for compounding. - -4affstart -SET ISO8859-1 - -FOL -LOW -UPP - -COMPOUNDRULE m+ -COMPOUNDRULE sm*e -COMPOUNDRULE sm+ -COMPOUNDMIN 3 -COMPOUNDWORDMAX 3 -COMPOUNDFORBIDFLAG t - -COMPOUNDSYLMAX 5 -SYLLABLE aeiouy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui - -MAP 9 -MAP a -MAP e -MAP i -MAP o -MAP u -MAP n -MAP c -MAP y -MAP s - -NEEDAFFIX x - -PFXPOSTPONE - -MIDWORD '- - -SFX q N 1 -SFX q 0 -ok . - -SFX a Y 2 -SFX a 0 s . -SFX a 0 ize/t . - -PFX p N 1 -PFX p 0 pre . - -PFX P N 1 -PFX P 0 nou . -4affend - -4dicstart -1234 -word/mP -util/am -pro/xq -tomato/m -bork/mp -start/s -end/e -4dicend - -4good: word util bork prebork start end wordutil wordutils pro-ok - bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork - tomato tomatotomato startend startword startwordword startwordend - startwordwordend startwordwordwordend prebork preborkbork - preborkborkbork - nouword -bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato - endstart endend startstart wordend wordstart - preborkprebork preborkpreborkbork - startwordwordwordwordend borkpreborkpreborkbork - utilsbork startnouword -badend - -test2: -elequint test elekwint test elekwent asdf - -Test affix flags with two characters - -5affstart -SET ISO8859-1 - -FLAG long - -NEEDAFFIX !! - -COMPOUNDRULE ssmm*ee - -NEEDCOMPOUND xx -COMPOUNDPERMITFLAG pp - -SFX 13 Y 1 -SFX 13 0 bork . - -SFX a1 Y 1 -SFX a1 0 a1 . - -SFX a Y 1 -SFX a 0 a . - -PFX zz Y 1 -PFX zz 0 pre/pp . - -PFX yy Y 1 -PFX yy 0 nou . -5affend - -5dicstart -1234 -foo/a1a!! -bar/zz13ee -start/ss -end/eeyy -middle/mmxx -5dicend - -5good: fooa1 fooaé bar prebar barbork prebarbork startprebar - start end startend startmiddleend nouend -bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart - startprobar startnouend -badend - -6affstart -SET ISO8859-1 - -FLAG caplong - -NEEDAFFIX A! - -COMPOUNDRULE sMm*Ee - -NEEDCOMPOUND Xx - -COMPOUNDPERMITFLAG p - -SFX N3 Y 1 -SFX N3 0 bork . - -SFX A1 Y 1 -SFX A1 0 a1 . - -SFX A Y 1 -SFX A 0 a . - -PFX Zz Y 1 -PFX Zz 0 pre/p . -6affend - -6dicstart -1234 -mee/A1AA! -bar/ZzN3Ee -lead/s -end/Ee -middle/MmXx -6dicend - -6good: meea1 meeaé bar prebar barbork prebarbork leadprebar - lead end leadend leadmiddleend -bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead - leadprobar -badend - -7affstart -SET ISO8859-1 - -FOL -LOW -UPP - -FLAG num - -NEEDAFFIX 9999 - -COMPOUNDRULE 2,77*123 - -NEEDCOMPOUND 1 -COMPOUNDPERMITFLAG 432 - -SFX 61003 Y 1 -SFX 61003 0 meat . - -SFX 391 Y 1 -SFX 391 0 a1 . - -SFX 111 Y 1 -SFX 111 0 a . - -PFX 17 Y 1 -PFX 17 0 pre/432 . -7affend - -7dicstart -1234 -mee/391,111,9999 -bar/17,61003,123 -lead/2 -tail/123 -middle/77,1 -7dicend - -7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebar - lead tail leadtail leadmiddletail -bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead - leadprobar -badend - -test output: diff --git a/src/nvim/testdir/test59.ok b/src/nvim/testdir/test59.ok deleted file mode 100644 index 931cdd9654..0000000000 --- a/src/nvim/testdir/test59.ok +++ /dev/null @@ -1,270 +0,0 @@ -test output: - -test 1-1 -# file: Xtest.utf-8.spl -Comment -deol -déôr -input -OK -output -outputs -outtest -put -puts -test -testen -testn -the end -uk -wrong -------- -bad -['put', 'uk', 'OK'] -inputs -['input', 'puts', 'outputs'] -comment -['Comment', 'outtest', 'the end'] -ok -['OK', 'uk', 'put'] -Ok -['OK', 'Uk', 'Put'] -test -['Test', 'testn', 'testen'] -déôl -['deol', 'déôr', 'test'] -end -['put', 'uk', 'test'] -the -['put', 'uk', 'test'] -gebletegek -kepereneven -everles gesvets etele -kbltykk -kprnfn -*fls kswts tl -elekwent -elequint -elekwint -elekwint -elekwent -elequint -elekwent -elequint -elekwint - -test 2-1 -# file: Xtest.utf-8.spl -Comment -deol -déôr -OK -put -input -output -puts -outputs -test -outtest -testen -testn -the end -uk -wrong -------- -bad -['put', 'uk', 'OK'] -inputs -['input', 'puts', 'outputs'] -comment -['Comment'] -ok -['OK', 'uk', 'put'] -Ok -['OK', 'Uk', 'Put'] -end -['put', 'uk', 'deol'] -the -['put', 'uk', 'test'] -test -['Test', 'testn', 'testen'] -déôl -['deol', 'déôr', 'test'] - -test 3-3 -# file: Xtest.utf-8.spl -foo -mï -------- -bad -['foo', 'mï'] -bar -['barfoo', 'foobar', 'foo'] -la -['mï', 'foo'] -foomï -['foo mï', 'foo', 'foofoo'] -barmï -['barfoo', 'mï', 'barbar'] -mïfoo -['mï foo', 'foo', 'foofoo'] -mïbar -['foobar', 'barbar', 'mï'] -mïmï -['mï mï', 'mï'] -lala -[] -mïla -['mï', 'mï mï'] -lamï -['mï', 'mï mï'] -foola -['foo', 'foobar', 'foofoo'] -labar -['barbar', 'foobar'] - -test 4-4 -# file: Xtest.utf-8.spl -bork -prebork -end -pro-ok -start -tomato -util -utilize -utils -word -nouword -------- -bad -['end', 'bork', 'word'] -wordutilize -['word utilize', 'wordutils', 'wordutil'] -pro -['bork', 'word', 'end'] -borkborkborkborkborkbork -['bork borkborkborkborkbork', 'borkbork borkborkborkbork', 'borkborkbork borkborkbork'] -tomatotomatotomato -['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato'] -endstart -['end start', 'start'] -endend -['end end', 'end'] -startstart -['start start'] -wordend -['word end', 'word', 'wordword'] -wordstart -['word start', 'bork start'] -preborkprebork -['prebork prebork', 'preborkbork', 'preborkborkbork'] -preborkpreborkbork -['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork'] -startwordwordwordwordend -['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end'] -borkpreborkpreborkbork -['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork'] -utilsbork -['utilbork', 'utils bork', 'util bork'] -startnouword -['start nouword', 'startword', 'startborkword'] - -test 5-5 -# file: Xtest.utf-8.spl -bar -barbork -end -fooa1 -fooaé -nouend -prebar -prebarbork -start -------- -bad -['bar', 'end', 'fooa1'] -foo -['fooa1', 'fooaé', 'bar'] -fooa2 -['fooa1', 'fooaé', 'bar'] -prabar -['prebar', 'bar', 'bar bar'] -probarbirk -['prebarbork'] -middle -[] -startmiddle -['startmiddleend', 'startmiddlebar'] -middleend -[] -endstart -['end start', 'start'] -startprobar -['startprebar', 'start prebar', 'startbar'] -startnouend -['start nouend', 'startend'] - -test 6-6 -# file: Xtest.utf-8.spl -bar -barbork -end -lead -meea1 -meeaé -prebar -prebarbork -------- -bad -['bar', 'end', 'lead'] -mee -['meea1', 'meeaé', 'bar'] -meea2 -['meea1', 'meeaé', 'lead'] -prabar -['prebar', 'bar', 'leadbar'] -probarbirk -['prebarbork'] -middle -[] -leadmiddle -['leadmiddleend', 'leadmiddlebar'] -middleend -[] -endlead -['end lead', 'lead', 'end end'] -leadprobar -['leadprebar', 'lead prebar', 'leadbar'] - -test 7-7 -# file: Xtest.utf-8.spl -bar -barmeat -lead -meea1 -meeaé -prebar -prebarmeat -tail -------- -bad -['bar', 'lead', 'tail'] -mee -['meea1', 'meeaé', 'bar'] -meea2 -['meea1', 'meeaé', 'lead'] -prabar -['prebar', 'bar', 'leadbar'] -probarmaat -['prebarmeat'] -middle -[] -leadmiddle -['leadmiddlebar'] -middletail -[] -taillead -['tail lead', 'tail'] -leadprobar -['leadprebar', 'lead prebar', 'leadbar'] diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 799b57494b..f228f6290c 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -129,6 +129,10 @@ local function nvim_eval(expr) return request('vim_eval', expr) end +local function nvim_call(name, ...) + return request('vim_call_function', name, {...}) +end + local function nvim_feed(input) while #input > 0 do local written = request('vim_input', input) @@ -321,6 +325,7 @@ return { feed = feed, execute = execute, eval = nvim_eval, + call = nvim_call, command = nvim_command, request = request, next_message = next_message, diff --git a/test/functional/legacy/059_utf8_spell_checking_spec.lua b/test/functional/legacy/059_utf8_spell_checking_spec.lua new file mode 100644 index 0000000000..5794e875a0 --- /dev/null +++ b/test/functional/legacy/059_utf8_spell_checking_spec.lua @@ -0,0 +1,943 @@ +-- Tests for spell checking with 'encoding' set to "utf-8". + +local helpers = require('test.functional.helpers') +local feed, insert, source = helpers.feed, helpers.insert, helpers.source +local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect +local write_file, call = helpers.write_file, helpers.call + +local function write_latin1(name, text) + text = call('iconv', text, 'utf-8', 'latin-1') + write_file(name, text) +end + +describe("spell checking with 'encoding' set to utf-8", function() + setup(function() + clear() + execute("syntax off") + write_latin1('Xtest1.aff',[[ + SET ISO8859-1 + TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ + + FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ + SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep? + + MIDWORD '- + + KEP = + RAR ? + BAD ! + + #NOSPLITSUGS + + PFX I N 1 + PFX I 0 in . + + PFX O Y 1 + PFX O 0 out . + + SFX S Y 2 + SFX S 0 s [^s] + SFX S 0 es s + + SFX N N 3 + SFX N 0 en [^n] + SFX N 0 nen n + SFX N 0 n . + + REP 3 + REP g ch + REP ch g + REP svp s.v.p. + + MAP 9 + MAP aàáâãäå + MAP eèéêë + MAP iìíîï + MAP oòóôõö + MAP uùúûü + MAP nñ + MAP cç + MAP yÿý + MAP sß + ]]) + write_latin1('Xtest1.dic', [[ + 123456 + test/NO + # comment + wrong + Comment + OK + uk + put/ISO + the end + deol + déôr + ]]) + write_latin1('Xtest2.aff', [[ + SET ISO8859-1 + + FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + PFXPOSTPONE + + MIDWORD '- + + KEP = + RAR ? + BAD ! + + #NOSPLITSUGS + + PFX I N 1 + PFX I 0 in . + + PFX O Y 1 + PFX O 0 out [a-z] + + SFX S Y 2 + SFX S 0 s [^s] + SFX S 0 es s + + SFX N N 3 + SFX N 0 en [^n] + SFX N 0 nen n + SFX N 0 n . + + REP 3 + REP g ch + REP ch g + REP svp s.v.p. + + MAP 9 + MAP aàáâãäå + MAP eèéêë + MAP iìíîï + MAP oòóôõö + MAP uùúûü + MAP nñ + MAP cç + MAP yÿý + MAP sß + ]]) + write_latin1('Xtest3.aff', [[ + SET ISO8859-1 + + COMPOUNDMIN 3 + COMPOUNDRULE m* + NEEDCOMPOUND x + ]]) + write_latin1('Xtest3.dic', [[ + 1234 + foo/m + bar/mx + mï/m + la/mx + ]]) + write_latin1('Xtest4.aff', [[ + SET ISO8859-1 + + FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + COMPOUNDRULE m+ + COMPOUNDRULE sm*e + COMPOUNDRULE sm+ + COMPOUNDMIN 3 + COMPOUNDWORDMAX 3 + COMPOUNDFORBIDFLAG t + + COMPOUNDSYLMAX 5 + SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui + + MAP 9 + MAP aàáâãäå + MAP eèéêë + MAP iìíîï + MAP oòóôõö + MAP uùúûü + MAP nñ + MAP cç + MAP yÿý + MAP sß + + NEEDAFFIX x + + PFXPOSTPONE + + MIDWORD '- + + SFX q N 1 + SFX q 0 -ok . + + SFX a Y 2 + SFX a 0 s . + SFX a 0 ize/t . + + PFX p N 1 + PFX p 0 pre . + + PFX P N 1 + PFX P 0 nou . + ]]) + write_latin1('Xtest4.dic', [[ + 1234 + word/mP + util/am + pro/xq + tomato/m + bork/mp + start/s + end/e + ]]) + write_latin1('Xtest5.aff', [[ + SET ISO8859-1 + + FLAG long + + NEEDAFFIX !! + + COMPOUNDRULE ssmm*ee + + NEEDCOMPOUND xx + COMPOUNDPERMITFLAG pp + + SFX 13 Y 1 + SFX 13 0 bork . + + SFX a1 Y 1 + SFX a1 0 a1 . + + SFX aé Y 1 + SFX aé 0 aé . + + PFX zz Y 1 + PFX zz 0 pre/pp . + + PFX yy Y 1 + PFX yy 0 nou . + ]]) + write_latin1('Xtest5.dic', [[ + 1234 + foo/a1aé!! + bar/zz13ee + start/ss + end/eeyy + middle/mmxx + ]]) + write_latin1('Xtest6.aff', [[ + SET ISO8859-1 + + FLAG caplong + + NEEDAFFIX A! + + COMPOUNDRULE sMm*Ee + + NEEDCOMPOUND Xx + + COMPOUNDPERMITFLAG p + + SFX N3 Y 1 + SFX N3 0 bork . + + SFX A1 Y 1 + SFX A1 0 a1 . + + SFX Aé Y 1 + SFX Aé 0 aé . + + PFX Zz Y 1 + PFX Zz 0 pre/p . + ]]) + write_latin1('Xtest6.dic', [[ + 1234 + mee/A1AéA! + bar/ZzN3Ee + lead/s + end/Ee + middle/MmXx + ]]) + write_latin1('Xtest7.aff', [[ + SET ISO8859-1 + + FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + FLAG num + + NEEDAFFIX 9999 + + COMPOUNDRULE 2,77*123 + + NEEDCOMPOUND 1 + COMPOUNDPERMITFLAG 432 + + SFX 61003 Y 1 + SFX 61003 0 meat . + + SFX 391 Y 1 + SFX 391 0 a1 . + + SFX 111 Y 1 + SFX 111 0 aé . + + PFX 17 Y 1 + PFX 17 0 pre/432 . + ]]) + write_latin1('Xtest7.dic', [[ + 1234 + mee/391,111,9999 + bar/17,61003,123 + lead/2 + tail/123 + middle/77,1 + ]]) + write_latin1('Xtest-sal.aff', [[ + SET ISO8859-1 + TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ + + FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ + UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ + + MIDWORD '- + + KEP = + RAR ? + BAD ! + + #NOSPLITSUGS + + PFX I N 1 + PFX I 0 in . + + PFX O Y 1 + PFX O 0 out . + + SFX S Y 2 + SFX S 0 s [^s] + SFX S 0 es s + + SFX N N 3 + SFX N 0 en [^n] + SFX N 0 nen n + SFX N 0 n . + + REP 3 + REP g ch + REP ch g + REP svp s.v.p. + + MAP 9 + MAP aàáâãäå + MAP eèéêë + MAP iìíîï + MAP oòóôõö + MAP uùúûü + MAP nñ + MAP cç + MAP yÿý + MAP sß + + SAL AH(AEIOUY)-^ *H + SAL AR(AEIOUY)-^ *R + SAL A(HR)^ * + SAL A^ * + SAL AH(AEIOUY)- H + SAL AR(AEIOUY)- R + SAL A(HR) _ + SAL À^ * + SAL Å^ * + SAL BB- _ + SAL B B + SAL CQ- _ + SAL CIA X + SAL CH X + SAL C(EIY)- S + SAL CK K + SAL COUGH^ KF + SAL CC< C + SAL C K + SAL DG(EIY) K + SAL DD- _ + SAL D T + SAL É< E + SAL EH(AEIOUY)-^ *H + SAL ER(AEIOUY)-^ *R + SAL E(HR)^ * + SAL ENOUGH^$ *NF + SAL E^ * + SAL EH(AEIOUY)- H + SAL ER(AEIOUY)- R + SAL E(HR) _ + SAL FF- _ + SAL F F + SAL GN^ N + SAL GN$ N + SAL GNS$ NS + SAL GNED$ N + SAL GH(AEIOUY)- K + SAL GH _ + SAL GG9 K + SAL G K + SAL H H + SAL IH(AEIOUY)-^ *H + SAL IR(AEIOUY)-^ *R + SAL I(HR)^ * + SAL I^ * + SAL ING6 N + SAL IH(AEIOUY)- H + SAL IR(AEIOUY)- R + SAL I(HR) _ + SAL J K + SAL KN^ N + SAL KK- _ + SAL K K + SAL LAUGH^ LF + SAL LL- _ + SAL L L + SAL MB$ M + SAL MM M + SAL M M + SAL NN- _ + SAL N N + SAL OH(AEIOUY)-^ *H + SAL OR(AEIOUY)-^ *R + SAL O(HR)^ * + SAL O^ * + SAL OH(AEIOUY)- H + SAL OR(AEIOUY)- R + SAL O(HR) _ + SAL PH F + SAL PN^ N + SAL PP- _ + SAL P P + SAL Q K + SAL RH^ R + SAL ROUGH^ RF + SAL RR- _ + SAL R R + SAL SCH(EOU)- SK + SAL SC(IEY)- S + SAL SH X + SAL SI(AO)- X + SAL SS- _ + SAL S S + SAL TI(AO)- X + SAL TH @ + SAL TCH-- _ + SAL TOUGH^ TF + SAL TT- _ + SAL T T + SAL UH(AEIOUY)-^ *H + SAL UR(AEIOUY)-^ *R + SAL U(HR)^ * + SAL U^ * + SAL UH(AEIOUY)- H + SAL UR(AEIOUY)- R + SAL U(HR) _ + SAL V^ W + SAL V F + SAL WR^ R + SAL WH^ W + SAL W(AEIOU)- W + SAL X^ S + SAL X KS + SAL Y(AEIOU)- Y + SAL ZZ- _ + SAL Z S + ]]) + write_file('Xtest.utf-8.add', [[ + /regions=usgbnz + elequint/2 + elekwint/3 + ]]) + end) + + teardown(function() + os.remove('Xtest-sal.aff') + os.remove('Xtest.aff') + os.remove('Xtest.dic') + os.remove('Xtest.utf-8.add') + os.remove('Xtest.utf-8.add.spl') + os.remove('Xtest.utf-8.spl') + os.remove('Xtest.utf-8.sug') + os.remove('Xtest1.aff') + os.remove('Xtest1.dic') + os.remove('Xtest2.aff') + os.remove('Xtest3.aff') + os.remove('Xtest3.dic') + os.remove('Xtest4.aff') + os.remove('Xtest4.dic') + os.remove('Xtest5.aff') + os.remove('Xtest5.dic') + os.remove('Xtest6.aff') + os.remove('Xtest6.dic') + os.remove('Xtest7.aff') + os.remove('Xtest7.dic') + end) + + -- Function to test .aff/.dic with list of good and bad words. This was a + -- Vim function in the original legacy test. + local function test_one(aff, dic) + -- Generate a .spl file from a .dic and .aff file. + os.execute('cp -f Xtest'..aff..'.aff Xtest.aff') + os.execute('cp -f Xtest'..dic..'.dic Xtest.dic') + source([[ + set spellfile= + function! SpellDumpNoShow() + " spelling scores depend on what happens to be drawn on screen + spelldump + %yank + quit + endfunction + $put ='' + $put ='test ]]..aff..'-'..dic..[[' + mkspell! Xtest Xtest + " Use that spell file. + set spl=Xtest.utf-8.spl spell + " List all valid words. + call SpellDumpNoShow() + $put + $put ='-------' + " Find all bad words and suggestions for them. + 1;/^]]..aff..[[good: + normal 0f:]s + let prevbad = '' + while 1 + let [bad, a] = spellbadword() + if bad == '' || bad == prevbad || bad == 'badend' + break + endif + let prevbad = bad + let lst = spellsuggest(bad, 3) + normal mm + $put =bad + $put =string(lst) + normal `m]s + endwhile + ]]) + end + + it('part 1-1', function() + insert([[ + 1good: wrong OK puts. Test the end + bad: inputs comment ok Ok. test déôl end the + badend + + test2: + elequint test elekwint test elekwent asdf + ]]) + test_one(1, 1) + execute([[$put =soundfold('goobledygoook')]]) + execute([[$put =soundfold('kóopërÿnôven')]]) + execute([[$put =soundfold('oeverloos gezwets edale')]]) + -- And now with SAL instead of SOFO items; test automatic reloading. + os.execute('cp -f Xtest-sal.aff Xtest.aff') + execute('mkspell! Xtest Xtest') + execute([[$put =soundfold('goobledygoook')]]) + execute([[$put =soundfold('kóopërÿnôven')]]) + execute([[$put =soundfold('oeverloos gezwets edale')]]) + -- Also use an addition file. + execute('mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add') + execute('set spellfile=Xtest.utf-8.add') + execute('/^test2:') + feed(']s') + execute('let [str, a] = spellbadword()') + execute('$put =str') + execute('set spl=Xtest_us.utf-8.spl') + execute('/^test2:') + feed(']smm') + execute('let [str, a] = spellbadword()') + execute('$put =str') + feed('`m]s') + execute('let [str, a] = spellbadword()') + execute('$put =str') + execute('set spl=Xtest_gb.utf-8.spl') + execute('/^test2:') + feed(']smm') + execute('let [str, a] = spellbadword()') + execute('$put =str') + feed('`m]s') + execute('let [str, a] = spellbadword()') + execute('$put =str') + execute('set spl=Xtest_nz.utf-8.spl') + execute('/^test2:') + feed(']smm') + execute('let [str, a] = spellbadword()') + execute('$put =str') + feed('`m]s') + execute('let [str, a] = spellbadword()') + execute('$put =str') + execute('set spl=Xtest_ca.utf-8.spl') + execute('/^test2:') + feed(']smm') + execute('let [str, a] = spellbadword()') + execute('$put =str') + feed('`m]s') + execute('let [str, a] = spellbadword()') + execute('$put =str') + execute('1,/^test 1-1/-1d') + expect([[ + test 1-1 + # file: Xtest.utf-8.spl + Comment + deol + déôr + input + OK + output + outputs + outtest + put + puts + test + testen + testn + the end + uk + wrong + ------- + bad + ['put', 'uk', 'OK'] + inputs + ['input', 'puts', 'outputs'] + comment + ['Comment', 'outtest', 'the end'] + ok + ['OK', 'uk', 'put'] + Ok + ['OK', 'Uk', 'Put'] + test + ['Test', 'testn', 'testen'] + déôl + ['deol', 'déôr', 'test'] + end + ['put', 'uk', 'test'] + the + ['put', 'uk', 'test'] + gebletegek + kepereneven + everles gesvets etele + kbltykk + kprnfn + *fls kswts tl + elekwent + elequint + elekwint + elekwint + elekwent + elequint + elekwent + elequint + elekwint]]) + end) + + it('part 2-1', function() + insert([[ + 2good: puts + bad: inputs comment ok Ok end the. test déôl + badend + ]]) + -- Postponed prefixes. + test_one(2, 1) + execute('1,/^test 2-1/-1d') + expect([=[ + test 2-1 + # file: Xtest.utf-8.spl + Comment + deol + déôr + OK + put + input + output + puts + outputs + test + outtest + testen + testn + the end + uk + wrong + ------- + bad + ['put', 'uk', 'OK'] + inputs + ['input', 'puts', 'outputs'] + comment + ['Comment'] + ok + ['OK', 'uk', 'put'] + Ok + ['OK', 'Uk', 'Put'] + end + ['put', 'uk', 'deol'] + the + ['put', 'uk', 'test'] + test + ['Test', 'testn', 'testen'] + déôl + ['deol', 'déôr', 'test']]=]) + end) + + it('part 3-3', function() + insert([[ + Test rules for compounding. + + 3good: foo mï foobar foofoobar barfoo barbarfoo + bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar + badend + ]]) + test_one(3, 3) + execute('1,/^test 3-3/-1d') + expect([=[ + test 3-3 + # file: Xtest.utf-8.spl + foo + mï + ------- + bad + ['foo', 'mï'] + bar + ['barfoo', 'foobar', 'foo'] + la + ['mï', 'foo'] + foomï + ['foo mï', 'foo', 'foofoo'] + barmï + ['barfoo', 'mï', 'barbar'] + mïfoo + ['mï foo', 'foo', 'foofoo'] + mïbar + ['foobar', 'barbar', 'mï'] + mïmï + ['mï mï', 'mï'] + lala + [] + mïla + ['mï', 'mï mï'] + lamï + ['mï', 'mï mï'] + foola + ['foo', 'foobar', 'foofoo'] + labar + ['barbar', 'foobar']]=]) + end) + + it('part 4-4', function() + insert([[ + Tests for compounding. + + 4good: word util bork prebork start end wordutil wordutils pro-ok + bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork + tomato tomatotomato startend startword startwordword startwordend + startwordwordend startwordwordwordend prebork preborkbork + preborkborkbork + nouword + bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato + endstart endend startstart wordend wordstart + preborkprebork preborkpreborkbork + startwordwordwordwordend borkpreborkpreborkbork + utilsbork startnouword + badend + ]]) + test_one(4, 4) + execute('1,/^test 4-4/-1d') + expect([=[ + test 4-4 + # file: Xtest.utf-8.spl + bork + prebork + end + pro-ok + start + tomato + util + utilize + utils + word + nouword + ------- + bad + ['end', 'bork', 'word'] + wordutilize + ['word utilize', 'wordutils', 'wordutil'] + pro + ['bork', 'word', 'end'] + borkborkborkborkborkbork + ['bork borkborkborkborkbork', 'borkbork borkborkborkbork', 'borkborkbork borkborkbork'] + tomatotomatotomato + ['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato'] + endstart + ['end start', 'start'] + endend + ['end end', 'end'] + startstart + ['start start'] + wordend + ['word end', 'word', 'wordword'] + wordstart + ['word start', 'bork start'] + preborkprebork + ['prebork prebork', 'preborkbork', 'preborkborkbork'] + preborkpreborkbork + ['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork'] + startwordwordwordwordend + ['startwordwordwordword end', 'startwordwordwordword', 'start wordwordwordword end'] + borkpreborkpreborkbork + ['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork bork'] + utilsbork + ['utilbork', 'utils bork', 'util bork'] + startnouword + ['start nouword', 'startword', 'startborkword']]=]) + end) + + it('part 5-5', function() + insert([[ + Test affix flags with two characters + + 5good: fooa1 fooaé bar prebar barbork prebarbork startprebar + start end startend startmiddleend nouend + bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart + startprobar startnouend + badend + ]]) + test_one(5, 5) + execute('1,/^test 5-5/-1d') + expect([=[ + test 5-5 + # file: Xtest.utf-8.spl + bar + barbork + end + fooa1 + fooaé + nouend + prebar + prebarbork + start + ------- + bad + ['bar', 'end', 'fooa1'] + foo + ['fooa1', 'fooaé', 'bar'] + fooa2 + ['fooa1', 'fooaé', 'bar'] + prabar + ['prebar', 'bar', 'bar bar'] + probarbirk + ['prebarbork'] + middle + [] + startmiddle + ['startmiddleend', 'startmiddlebar'] + middleend + [] + endstart + ['end start', 'start'] + startprobar + ['startprebar', 'start prebar', 'startbar'] + startnouend + ['start nouend', 'startend']]=]) + end) + + it('part 6-6', function() + insert([[ + 6good: meea1 meeaé bar prebar barbork prebarbork leadprebar + lead end leadend leadmiddleend + bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead + leadprobar + badend + ]]) + test_one(6, 6) + execute('1,/^test 6-6/-1d') + expect([=[ + test 6-6 + # file: Xtest.utf-8.spl + bar + barbork + end + lead + meea1 + meeaé + prebar + prebarbork + ------- + bad + ['bar', 'end', 'lead'] + mee + ['meea1', 'meeaé', 'bar'] + meea2 + ['meea1', 'meeaé', 'lead'] + prabar + ['prebar', 'bar', 'leadbar'] + probarbirk + ['prebarbork'] + middle + [] + leadmiddle + ['leadmiddleend', 'leadmiddlebar'] + middleend + [] + endlead + ['end lead', 'lead', 'end end'] + leadprobar + ['leadprebar', 'lead prebar', 'leadbar']]=]) + end) + + it('part 7-7', function() + insert([[ + 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebar + lead tail leadtail leadmiddletail + bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead + leadprobar + badend + ]]) + -- Compound words. + test_one(7, 7) + -- Assert buffer contents. + execute('1,/^test 7-7/-1d') + expect([=[ + test 7-7 + # file: Xtest.utf-8.spl + bar + barmeat + lead + meea1 + meeaé + prebar + prebarmeat + tail + ------- + bad + ['bar', 'lead', 'tail'] + mee + ['meea1', 'meeaé', 'bar'] + meea2 + ['meea1', 'meeaé', 'lead'] + prabar + ['prebar', 'bar', 'leadbar'] + probarmaat + ['prebarmeat'] + middle + [] + leadmiddle + ['leadmiddlebar'] + middletail + [] + taillead + ['tail lead', 'tail'] + leadprobar + ['leadprebar', 'lead prebar', 'leadbar']]=]) + end) +end) |