diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-07-23 15:47:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-07-23 15:47:34 +0200 |
commit | b49edc11a1872fa99befa9a4a8ea6c8537868038 (patch) | |
tree | a2ab0cd4f0d8616267de35c6c0a1e1d80ec1b5d1 | |
parent | 61c04493b00f85d0b97436260a9ef9ab82143b78 (diff) | |
download | vim-git-b49edc11a1872fa99befa9a4a8ea6c8537868038.tar.gz |
patch 7.4.2096v7.4.2096
Problem: Lambda functions show up with completion.
Solution: Don't show lambda functions. (Ken Takata)
-rw-r--r-- | src/testdir/test_cmdline.vim | 5 | ||||
-rw-r--r-- | src/userfunc.c | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index 054d39b0f..0ddbcec26 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -69,6 +69,11 @@ func Test_getcompletion() let l = getcompletion('tag', 'function') call assert_true(index(l, 'taglist(') >= 0) + let Flambda = {-> 'hello'} + let l = getcompletion('', 'function') + let l = filter(l, {i, v -> v =~ 'lambda'}) + call assert_equal(0, len(l)) + let l = getcompletion('run', 'file') call assert_true(index(l, 'runtest.vim') >= 0) diff --git a/src/userfunc.c b/src/userfunc.c index af1863f32..32bcceece 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -2554,8 +2554,9 @@ get_user_func_name(expand_T *xp, int idx) ++hi; fp = HI2UF(hi); - if (fp->uf_flags & FC_DICT) - return (char_u *)""; /* don't show dict functions */ + if ((fp->uf_flags & FC_DICT) + || STRNCMP(fp->uf_name, "<lambda>", 8) == 0) + return (char_u *)""; /* don't show dict and lambda functions */ if (STRLEN(fp->uf_name) + 4 >= IOSIZE) return fp->uf_name; /* prevents overflow */ diff --git a/src/version.c b/src/version.c index 757590cb5..f47766b76 100644 --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2096, +/**/ 2095, /**/ 2094, |