patch 8.1.1718: popup menu highlighting does not look good
Problem: Popup menu highlighting does not look good.
Solution: Highlight the whole window line. Fix that sign line HL is not
displayed in a window with a background color.
diff --git a/src/sign.c b/src/sign.c
index bf238d9..2cec269 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1025,10 +1025,19 @@
}
/*
+ * Return TRUE if sign "name" exists.
+ */
+ int
+sign_exists_by_name(char_u *name)
+{
+ return sign_find(name, NULL) != NULL;
+}
+
+/*
* Free the sign specified by 'name'.
*/
int
-sign_undefine_by_name(char_u *name)
+sign_undefine_by_name(char_u *name, int give_error)
{
sign_T *sp_prev;
sign_T *sp;
@@ -1036,7 +1045,8 @@
sp = sign_find(name, &sp_prev);
if (sp == NULL)
{
- semsg(_("E155: Unknown sign: %s"), name);
+ if (give_error)
+ semsg(_("E155: Unknown sign: %s"), name);
return FAIL;
}
sign_undefine(sp, sp_prev);
@@ -1076,7 +1086,7 @@
/*
* Place a sign at the specified file location or update a sign.
*/
- static int
+ int
sign_place(
int *sign_id,
char_u *sign_group,
@@ -1591,7 +1601,7 @@
sign_list_by_name(name);
else
// ":sign undefine {name}"
- sign_undefine_by_name(name);
+ sign_undefine_by_name(name, TRUE);
vim_free(name);
return;
@@ -2512,7 +2522,7 @@
{
retval = -1;
name = tv_get_string_chk(&li->li_tv);
- if (name != NULL && (sign_undefine_by_name(name) == OK))
+ if (name != NULL && (sign_undefine_by_name(name, TRUE) == OK))
retval = 0;
list_append_number(retlist, retval);
}
@@ -2551,7 +2561,7 @@
if (name == NULL)
return;
- if (sign_undefine_by_name(name) == OK)
+ if (sign_undefine_by_name(name, TRUE) == OK)
rettv->vval.v_number = 0;
}
}