aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/funcs.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-06-30 16:57:44 +0800
committerGitHub <noreply@github.com>2022-06-30 16:57:44 +0800
commit995e4879153d0f4ea72dff446c175754a1873425 (patch)
treec53b77a422ab65860ccb15c9020a89f89b68c37d /src/nvim/eval/funcs.c
parent6f6286e4f90da25a7d1b6bcc96b79b0ccbaf5c26 (diff)
downloadrneovim-995e4879153d0f4ea72dff446c175754a1873425.tar.gz
rneovim-995e4879153d0f4ea72dff446c175754a1873425.tar.bz2
rneovim-995e4879153d0f4ea72dff446c175754a1873425.zip
refactor(highlight)!: rename attributes to match Vim (#19159)
Ref: https://github.com/vim/vim/commit/84f546363068e4ddfe14a8a2a2322bb8d3a25417 Rename: - `underlineline` to `underdouble` - `underdot` to `underdotted` - `underdash` to `underdashed` `underdouble` also now takes higher precedence than `undercurl`.
Diffstat (limited to 'src/nvim/eval/funcs.c')
-rw-r--r--src/nvim/eval/funcs.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
index 665b70021b..a0881a85d2 100644
--- a/src/nvim/eval/funcs.c
+++ b/src/nvim/eval/funcs.c
@@ -10303,22 +10303,30 @@ static void f_synIDattr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
p = highlight_has_attr(id, HL_STANDOUT, modec);
}
break;
- case 'u': {
- const size_t len = STRLEN(what);
- if (len <= 5 || (TOLOWER_ASC(what[5]) == 'l' && len <= 9)) { // underline
- p = highlight_has_attr(id, HL_UNDERLINE, modec);
- } else if (TOLOWER_ASC(what[5]) == 'c') { // undercurl
- p = highlight_has_attr(id, HL_UNDERCURL, modec);
- } else if (len > 9 && TOLOWER_ASC(what[9]) == 'l') { // underlineline
- p = highlight_has_attr(id, HL_UNDERLINELINE, modec);
- } else if (len > 6 && TOLOWER_ASC(what[6]) == 'o') { // underdot
- p = highlight_has_attr(id, HL_UNDERDOT, modec);
- } else { // underdash
- p = highlight_has_attr(id, HL_UNDERDASH, modec);
+ case 'u':
+ if (STRLEN(what) >= 9) {
+ if (TOLOWER_ASC(what[5]) == 'l') {
+ // underline
+ p = highlight_has_attr(id, HL_UNDERLINE, modec);
+ } else if (TOLOWER_ASC(what[5]) != 'd') {
+ // undercurl
+ p = highlight_has_attr(id, HL_UNDERCURL, modec);
+ } else if (TOLOWER_ASC(what[6]) != 'o') {
+ // underdashed
+ p = highlight_has_attr(id, HL_UNDERDASHED, modec);
+ } else if (TOLOWER_ASC(what[7]) == 'u') {
+ // underdouble
+ p = highlight_has_attr(id, HL_UNDERDOUBLE, modec);
+ } else {
+ // underdotted
+ p = highlight_has_attr(id, HL_UNDERDOTTED, modec);
+ }
+ } else {
+ // ul
+ p = highlight_color(id, what, modec);
}
break;
}
- }
rettv->v_type = VAR_STRING;
rettv->vval.v_string = (char *)(p == NULL ? p : xstrdup(p));