summaryrefslogtreecommitdiff
path: root/src/sign.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-07-20 16:51:19 +0200
committerBram Moolenaar <Bram@vim.org>2019-07-20 16:51:19 +0200
commitcb5ff34c1b8a89fcdb86653ab18d0aa53f665642 (patch)
treeba5f73ac45c6598f28588ddc714887c0703fa0f9 /src/sign.c
parentf914a33c9c8ec5c30da684a4a16edad3e0224f0a (diff)
downloadvim-git-cb5ff34c1b8a89fcdb86653ab18d0aa53f665642.tar.gz
patch 8.1.1718: popup menu highlighting does not look goodv8.1.1718
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.
Diffstat (limited to 'src/sign.c')
-rw-r--r--src/sign.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/sign.c b/src/sign.c
index bf238d907..2cec269f9 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -1025,10 +1025,19 @@ sign_define_by_name(
}
/*
+ * 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 @@ sign_undefine_by_name(char_u *name)
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 @@ may_force_numberwidth_recompute(buf_T *buf, int unplace)
/*
* 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 @@ ex_sign(exarg_T *eap)
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 @@ sign_undefine_multiple(list_T *l, list_T *retlist)
{
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 @@ f_sign_undefine(typval_T *argvars, typval_T *rettv)
if (name == NULL)
return;
- if (sign_undefine_by_name(name) == OK)
+ if (sign_undefine_by_name(name, TRUE) == OK)
rettv->vval.v_number = 0;
}
}