mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 20:08:17 +00:00
refactor(highlight): get rid of syn_unadd_group()
This is a sham. if the user does hi ExistingGroup guifg=AliceBlue invalidkey=foobar the "guifg" part will still be executed. No need to micro-manage the same case where ANewGroup is added instead.
This commit is contained in:
@@ -1249,10 +1249,6 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is an error, and it's a new entry, remove it from the table.
|
|
||||||
if (error && idx == highlight_ga.ga_len) {
|
|
||||||
syn_unadd_group();
|
|
||||||
} else {
|
|
||||||
if (!error && is_normal_group) {
|
if (!error && is_normal_group) {
|
||||||
// Need to update all groups, because they might be using "bg" and/or
|
// Need to update all groups, because they might be using "bg" and/or
|
||||||
// "fg", which have been changed now.
|
// "fg", which have been changed now.
|
||||||
@@ -1275,7 +1271,6 @@ void do_highlight(const char *line, const bool forceit, const bool init)
|
|||||||
HL_TABLE()[idx].sg_script_ctx = current_sctx;
|
HL_TABLE()[idx].sg_script_ctx = current_sctx;
|
||||||
HL_TABLE()[idx].sg_script_ctx.sc_lnum += sourcing_lnum;
|
HL_TABLE()[idx].sg_script_ctx.sc_lnum += sourcing_lnum;
|
||||||
nlua_set_sctx(&HL_TABLE()[idx].sg_script_ctx);
|
nlua_set_sctx(&HL_TABLE()[idx].sg_script_ctx);
|
||||||
}
|
|
||||||
|
|
||||||
// Only call highlight_changed() once, after a sequence of highlight
|
// Only call highlight_changed() once, after a sequence of highlight
|
||||||
// commands, and only if an attribute actually changed
|
// commands, and only if an attribute actually changed
|
||||||
@@ -1739,7 +1734,7 @@ int syn_check_group(const char *name, size_t len)
|
|||||||
///
|
///
|
||||||
/// @param name must be an allocated string, it will be consumed.
|
/// @param name must be an allocated string, it will be consumed.
|
||||||
/// @return 0 for failure, else the allocated group id
|
/// @return 0 for failure, else the allocated group id
|
||||||
/// @see syn_check_group syn_unadd_group
|
/// @see syn_check_group
|
||||||
static int syn_add_group(char_u *name)
|
static int syn_add_group(char_u *name)
|
||||||
{
|
{
|
||||||
char_u *p;
|
char_u *p;
|
||||||
@@ -1792,17 +1787,6 @@ static int syn_add_group(char_u *name)
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// When, just after calling syn_add_group(), an error is discovered, this
|
|
||||||
/// function deletes the new name.
|
|
||||||
static void syn_unadd_group(void)
|
|
||||||
{
|
|
||||||
highlight_ga.ga_len--;
|
|
||||||
HlGroup *item = &HL_TABLE()[highlight_ga.ga_len];
|
|
||||||
map_del(cstr_t, int)(&highlight_unames, item->sg_name_u);
|
|
||||||
xfree(item->sg_name);
|
|
||||||
xfree(item->sg_name_u);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Translate a group ID to highlight attributes.
|
/// Translate a group ID to highlight attributes.
|
||||||
/// @see syn_attr2entry
|
/// @see syn_attr2entry
|
||||||
int syn_id2attr(int hl_id)
|
int syn_id2attr(int hl_id)
|
||||||
|
Reference in New Issue
Block a user