diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-06-30 16:57:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-30 16:57:44 +0800 |
commit | 995e4879153d0f4ea72dff446c175754a1873425 (patch) | |
tree | c53b77a422ab65860ccb15c9020a89f89b68c37d /src/nvim/eval/funcs.c | |
parent | 6f6286e4f90da25a7d1b6bcc96b79b0ccbaf5c26 (diff) | |
download | rneovim-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.c | 34 |
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)); |