summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-23 15:47:34 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-23 15:47:34 +0200
commitb49edc11a1872fa99befa9a4a8ea6c8537868038 (patch)
treea2ab0cd4f0d8616267de35c6c0a1e1d80ec1b5d1
parent61c04493b00f85d0b97436260a9ef9ab82143b78 (diff)
downloadvim-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.vim5
-rw-r--r--src/userfunc.c5
-rw-r--r--src/version.c2
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,