mirror of
https://github.com/neovim/neovim
synced 2025-07-18 02:01:46 +00:00
feat(match): allow hl group to be defined after :match command
This commit is contained in:
@ -159,6 +159,7 @@ Commands:
|
|||||||
|:drop| is always available
|
|:drop| is always available
|
||||||
|:Man| is available by default, with many improvements such as completion
|
|:Man| is available by default, with many improvements such as completion
|
||||||
|:sign-define| accepts a `numhl` argument, to highlight the line number
|
|:sign-define| accepts a `numhl` argument, to highlight the line number
|
||||||
|
|:match| can be invoked before highlight group is defined
|
||||||
|
|
||||||
Events:
|
Events:
|
||||||
|Signal|
|
|Signal|
|
||||||
@ -176,6 +177,7 @@ Functions:
|
|||||||
|msgpackdump()|, |msgpackparse()| provide msgpack de/serialization
|
|msgpackdump()|, |msgpackparse()| provide msgpack de/serialization
|
||||||
|stdpath()|
|
|stdpath()|
|
||||||
|system()|, |systemlist()| can run {cmd} directly (without 'shell')
|
|system()|, |systemlist()| can run {cmd} directly (without 'shell')
|
||||||
|
|matchadd()| can be called before highlight group is defined
|
||||||
|
|
||||||
Highlight groups:
|
Highlight groups:
|
||||||
|highlight-blend| controls blend level for a highlight group
|
|highlight-blend| controls blend level for a highlight group
|
||||||
|
@ -157,7 +157,10 @@ func Test_match_error()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_matchadd_error()
|
func Test_matchadd_error()
|
||||||
call assert_fails("call matchadd('GroupDoesNotExist', 'X')", 'E28:')
|
call clearmatches()
|
||||||
|
" Nvim: not an error anymore:
|
||||||
|
call matchadd('GroupDoesNotExist', 'X')
|
||||||
|
call assert_equal([{'group': 'GroupDoesNotExist', 'pattern': 'X', 'priority': 10, 'id': 13}], getmatches())
|
||||||
call assert_fails("call matchadd('Search', '\\(')", 'E475:')
|
call assert_fails("call matchadd('Search', '\\(')", 'E475:')
|
||||||
call assert_fails("call matchadd('Search', 'XXX', 1, 123, 1)", 'E715:')
|
call assert_fails("call matchadd('Search', 'XXX', 1, 123, 1)", 'E715:')
|
||||||
call assert_fails("call matchadd('Error', 'XXX', 1, 3)", 'E798:')
|
call assert_fails("call matchadd('Error', 'XXX', 1, 3)", 'E798:')
|
||||||
|
@ -6534,8 +6534,7 @@ int match_add(win_T *wp, const char *const grp, const char *const pat,
|
|||||||
cur = cur->next;
|
cur = cur->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((hlg_id = syn_name2id((const char_u *)grp)) == 0) {
|
if ((hlg_id = syn_check_group((const char_u *)grp, strlen(grp))) == 0) {
|
||||||
EMSG2(_(e_nogroup), grp);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (pat != NULL && (regprog = vim_regcomp((char_u *)pat, RE_MAGIC)) == NULL) {
|
if (pat != NULL && (regprog = vim_regcomp((char_u *)pat, RE_MAGIC)) == NULL) {
|
||||||
|
@ -6,7 +6,6 @@ local clear = helpers.clear
|
|||||||
local funcs = helpers.funcs
|
local funcs = helpers.funcs
|
||||||
local command = helpers.command
|
local command = helpers.command
|
||||||
local exc_exec = helpers.exc_exec
|
local exc_exec = helpers.exc_exec
|
||||||
local pcall_err = helpers.pcall_err
|
|
||||||
|
|
||||||
before_each(clear)
|
before_each(clear)
|
||||||
|
|
||||||
@ -40,13 +39,13 @@ describe('setmatches()', function()
|
|||||||
}}, funcs.getmatches())
|
}}, funcs.getmatches())
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('fails with -1 if highlight group is not defined', function()
|
it('does not fail if highlight group is not defined', function()
|
||||||
eq('Vim:E28: No such highlight group name: 1',
|
eq(0, funcs.setmatches{{group=1, pattern=2, id=3, priority=4}})
|
||||||
pcall_err(funcs.setmatches, {{group=1, pattern=2, id=3, priority=4}}))
|
eq({{group='1', pattern='2', id=3, priority=4}},
|
||||||
eq({}, funcs.getmatches())
|
funcs.getmatches())
|
||||||
eq('Vim:E28: No such highlight group name: 1',
|
eq(0, funcs.setmatches{{group=1, pos1={2}, pos2={6}, id=3, priority=4, conceal=5}})
|
||||||
pcall_err(funcs.setmatches, {{group=1, pos1={2}, pos2={6}, id=3, priority=4, conceal=5}}))
|
eq({{group='1', pos1={2}, pos2={6}, id=3, priority=4, conceal='5'}},
|
||||||
eq({}, funcs.getmatches())
|
funcs.getmatches())
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user