From 5ec0a6d13f3f1d50b424f46e2e1bbc2813b5086d Mon Sep 17 00:00:00 2001 From: KunMing Xie Date: Fri, 9 Mar 2018 02:49:21 +0800 Subject: vim-patch:8.0.0513: fix getting name of cleared highlight group (#8103) Problem: Getting name of cleared highlight group is wrong. (Matt Wozniski) Solution: Only skip over cleared names for completion. (closes vim/vim#1592) Also fix that a cleared group causes duplicate completions. https://github.com/vim/vim/commit/c96272e30e2b81e5e0c8418f09d9db4e2fcd5d73 --- src/nvim/testdir/test_cmdline.vim | 8 ++++++++ src/nvim/testdir/test_syntax.vim | 3 +++ 2 files changed, 11 insertions(+) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 94330fe67b..673246e1fb 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -70,6 +70,14 @@ func Test_highlight_completion() call assert_equal('"hi default', getreg(':')) call feedkeys(":hi c\\\"\", 'xt') call assert_equal('"hi clear', getreg(':')) + + " A cleared group does not show up in completions. + hi Anders ctermfg=green + call assert_equal(['Aardig', 'Anders'], getcompletion('A', 'highlight')) + hi clear Aardig + call assert_equal(['Anders'], getcompletion('A', 'highlight')) + hi clear Anders + call assert_equal([], getcompletion('A', 'highlight')) endfunc func Test_expr_completion() diff --git a/src/nvim/testdir/test_syntax.vim b/src/nvim/testdir/test_syntax.vim index b662279c6d..8465fe7d45 100644 --- a/src/nvim/testdir/test_syntax.vim +++ b/src/nvim/testdir/test_syntax.vim @@ -322,13 +322,16 @@ func Test_syn_clear() syntax keyword Bar tar call assert_match('Foo', execute('syntax')) call assert_match('Bar', execute('syntax')) + call assert_equal('Foo', synIDattr(hlID("Foo"), "name")) syn clear Foo call assert_notmatch('Foo', execute('syntax')) call assert_match('Bar', execute('syntax')) + call assert_equal('Foo', synIDattr(hlID("Foo"), "name")) syn clear Foo Bar call assert_notmatch('Foo', execute('syntax')) call assert_notmatch('Bar', execute('syntax')) hi clear Foo + call assert_equal('Foo', synIDattr(hlID("Foo"), "name")) hi clear Bar endfunc -- cgit