diff options
author | Kota Kato <github@kat0h.com> | 2023-01-18 15:27:38 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-18 15:27:38 +0000 |
commit | 90c2353365c5da40dec01b09e1f482983cf7f55d (patch) | |
tree | a47d5f873b94349f6a11669d744957847be8dfd6 /src | |
parent | 486fc25a295464d107264b63997bdbe3745e3c71 (diff) | |
download | vim-git-90c2353365c5da40dec01b09e1f482983cf7f55d.tar.gz |
patch 9.0.1218: completion includes functions that don't workv9.0.1218
Problem: Completion includes functions that don't work.
Solution: Skip functions that are not implemented. (Kota Kato,
closes #11845)
Diffstat (limited to 'src')
-rw-r--r-- | src/evalfunc.c | 4 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 923a75024..5b25e97cb 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -2872,6 +2872,10 @@ get_function_name(expand_T *xp, int idx) } if (++intidx < (int)ARRAY_LENGTH(global_functions)) { + // Skip if the function doesn't have an implementation (feature not + // implemented). + if (global_functions[intidx].f_func == NULL) + return (char_u *)""; STRCPY(IObuff, global_functions[intidx].f_name); STRCAT(IObuff, "("); if (global_functions[intidx].f_max_argc == 0) diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index a83230620..9eca9186f 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -489,6 +489,12 @@ func Test_getcompletion() let l = getcompletion('paint', 'function') call assert_equal([], l) + if !has('ruby') + " global_functions[] has an entry but it doesn't have an implemention + let l = getcompletion('ruby', 'function') + call assert_equal([], l) + endif + let Flambda = {-> 'hello'} let l = getcompletion('', 'function') let l = filter(l, {i, v -> v =~ 'lambda'}) diff --git a/src/version.c b/src/version.c index 4c7d8962c..1cac4b572 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1218, +/**/ 1217, /**/ 1216, |