summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_edit.vim
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2021-10-16 15:41:29 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-16 15:41:29 +0100
commit160e994d768d03a3c826b58115cde94df8fce607 (patch)
tree38f6ec253633b656db1be92790c26fc71eb72eee /src/testdir/test_edit.vim
parent2286304cdbba53ceb52b3ba2ba4a521b0a2f8d0f (diff)
patch 8.2.3520: cannot define a function for thesaurus completionv8.2.3520
Problem: Cannot define a function for thesaurus completion. Solution: Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987, closes 8950)
Diffstat (limited to 'src/testdir/test_edit.vim')
-rw-r--r--src/testdir/test_edit.vim42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 6561edc5cd..2cce85ca39 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -890,6 +890,48 @@ func Test_edit_CTRL_T()
bw!
endfunc
+" Test 'thesaurusfunc'
+func MyThesaurus(findstart, base)
+ let mythesaurus = [
+ \ #{word: "happy",
+ \ synonyms: "cheerful,blissful,flying high,looking good,peppy"},
+ \ #{word: "kind",
+ \ synonyms: "amiable,bleeding-heart,heart in right place"}]
+ if a:findstart
+ " locate the start of the word
+ let line = getline('.')
+ let start = col('.') - 1
+ while start > 0 && line[start - 1] =~ '\a'
+ let start -= 1
+ endwhile
+ return start
+ else
+ " find strings matching with "a:base"
+ let res = []
+ for w in mythesaurus
+ if w.word =~ '^' . a:base
+ call add(res, w.word)
+ call extend(res, split(w.synonyms, ","))
+ endif
+ endfor
+ return res
+ endif
+endfunc
+
+func Test_thesaurus_func()
+ new
+ set thesaurus=
+ set thesaurusfunc=MyThesaurus
+ call setline(1, "an ki")
+ call cursor(1, 1)
+ call feedkeys("A\<c-x>\<c-t>\<c-n>\<cr>\<esc>", 'tnix')
+ call assert_equal(['an amiable', ''], getline(1, '$'))
+ set thesaurusfunc=NonExistingFunc
+ call assert_fails("normal $a\<C-X>\<C-T>", 'E117:')
+ set thesaurusfunc&
+ %bw!
+endfunc
+
func Test_edit_CTRL_U()
" Test 'completefunc'
new