diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/keysets.lua | 12 | ||||
-rw-r--r-- | src/nvim/api/vim.c | 6 | ||||
-rw-r--r-- | src/nvim/eval/funcs.c | 34 | ||||
-rw-r--r-- | src/nvim/hardcopy.c | 6 | ||||
-rw-r--r-- | src/nvim/hardcopy.h | 6 | ||||
-rw-r--r-- | src/nvim/highlight.c | 22 | ||||
-rw-r--r-- | src/nvim/highlight_defs.h | 22 | ||||
-rw-r--r-- | src/nvim/highlight_group.c | 8 | ||||
-rw-r--r-- | src/nvim/tui/tui.c | 32 |
9 files changed, 79 insertions, 69 deletions
diff --git a/src/nvim/api/keysets.lua b/src/nvim/api/keysets.lua index 1c071eaf48..918fe028a8 100644 --- a/src/nvim/api/keysets.lua +++ b/src/nvim/api/keysets.lua @@ -95,10 +95,10 @@ return { "standout"; "strikethrough"; "underline"; - "underlineline"; "undercurl"; - "underdot"; - "underdash"; + "underdouble"; + "underdotted"; + "underdashed"; "italic"; "reverse"; "nocombine"; @@ -120,10 +120,10 @@ return { "standout"; "strikethrough"; "underline"; - "underlineline"; "undercurl"; - "underdot"; - "underdash"; + "underdouble"; + "underdotted"; + "underdashed"; "italic"; "reverse"; "nocombine"; diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index bf3fb04a18..f91b74cd31 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -149,10 +149,10 @@ Dictionary nvim__get_hl_defs(Integer ns_id, Error *err) /// - bold: boolean /// - standout: boolean /// - underline: boolean -/// - underlineline: boolean /// - undercurl: boolean -/// - underdot: boolean -/// - underdash: boolean +/// - underdouble: boolean +/// - underdotted: boolean +/// - underdashed: boolean /// - strikethrough: boolean /// - italic: boolean /// - reverse: boolean 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)); diff --git a/src/nvim/hardcopy.c b/src/nvim/hardcopy.c index 1dd0a5f3e8..230d5c430e 100644 --- a/src/nvim/hardcopy.c +++ b/src/nvim/hardcopy.c @@ -419,10 +419,10 @@ static void prt_get_attr(int hl_id, prt_text_attr_T *pattr, int modec) pattr->bold = (highlight_has_attr(hl_id, HL_BOLD, modec) != NULL); pattr->italic = (highlight_has_attr(hl_id, HL_ITALIC, modec) != NULL); pattr->underline = (highlight_has_attr(hl_id, HL_UNDERLINE, modec) != NULL); - pattr->underlineline = (highlight_has_attr(hl_id, HL_UNDERLINELINE, modec) != NULL); pattr->undercurl = (highlight_has_attr(hl_id, HL_UNDERCURL, modec) != NULL); - pattr->underdot = (highlight_has_attr(hl_id, HL_UNDERDOT, modec) != NULL); - pattr->underdash = (highlight_has_attr(hl_id, HL_UNDERDASH, modec) != NULL); + pattr->underdouble = (highlight_has_attr(hl_id, HL_UNDERDOUBLE, modec) != NULL); + pattr->underdotted = (highlight_has_attr(hl_id, HL_UNDERDOTTED, modec) != NULL); + pattr->underdashed = (highlight_has_attr(hl_id, HL_UNDERDASHED, modec) != NULL); uint32_t fg_color = prt_get_color(hl_id, modec); diff --git a/src/nvim/hardcopy.h b/src/nvim/hardcopy.h index 7b28169a5b..9ef4eb0074 100644 --- a/src/nvim/hardcopy.h +++ b/src/nvim/hardcopy.h @@ -18,9 +18,9 @@ typedef struct { TriState italic; TriState underline; int undercurl; - int underlineline; - int underdot; - int underdash; + int underdouble; + int underdotted; + int underdashed; } prt_text_attr_T; /* diff --git a/src/nvim/highlight.c b/src/nvim/highlight.c index 229da03cb4..0f20eb1905 100644 --- a/src/nvim/highlight.c +++ b/src/nvim/highlight.c @@ -743,20 +743,20 @@ Dictionary hlattrs2dict(HlAttrs ae, bool use_rgb) PUT(hl, "underline", BOOLEAN_OBJ(true)); } - if (mask & HL_UNDERLINELINE) { - PUT(hl, "underlineline", BOOLEAN_OBJ(true)); - } - if (mask & HL_UNDERCURL) { PUT(hl, "undercurl", BOOLEAN_OBJ(true)); } - if (mask & HL_UNDERDOT) { - PUT(hl, "underdot", BOOLEAN_OBJ(true)); + if (mask & HL_UNDERDOUBLE) { + PUT(hl, "underdouble", BOOLEAN_OBJ(true)); + } + + if (mask & HL_UNDERDOTTED) { + PUT(hl, "underdotted", BOOLEAN_OBJ(true)); } - if (mask & HL_UNDERDASH) { - PUT(hl, "underdash", BOOLEAN_OBJ(true)); + if (mask & HL_UNDERDASHED) { + PUT(hl, "underdashed", BOOLEAN_OBJ(true)); } if (mask & HL_ITALIC) { @@ -825,10 +825,10 @@ HlAttrs dict2hlattrs(Dict(highlight) *dict, bool use_rgb, int *link_id, Error *e CHECK_FLAG(dict, mask, bold, , HL_BOLD); CHECK_FLAG(dict, mask, standout, , HL_STANDOUT); CHECK_FLAG(dict, mask, underline, , HL_UNDERLINE); - CHECK_FLAG(dict, mask, underlineline, , HL_UNDERLINELINE); CHECK_FLAG(dict, mask, undercurl, , HL_UNDERCURL); - CHECK_FLAG(dict, mask, underdot, , HL_UNDERDOT); - CHECK_FLAG(dict, mask, underdash, , HL_UNDERDASH); + CHECK_FLAG(dict, mask, underdouble, , HL_UNDERDOUBLE); + CHECK_FLAG(dict, mask, underdotted, , HL_UNDERDOTTED); + CHECK_FLAG(dict, mask, underdashed, , HL_UNDERDASHED); CHECK_FLAG(dict, mask, italic, , HL_ITALIC); CHECK_FLAG(dict, mask, reverse, , HL_INVERSE); CHECK_FLAG(dict, mask, strikethrough, , HL_STRIKETHROUGH); diff --git a/src/nvim/highlight_defs.h b/src/nvim/highlight_defs.h index 9084cb500c..f41f980054 100644 --- a/src/nvim/highlight_defs.h +++ b/src/nvim/highlight_defs.h @@ -17,17 +17,17 @@ typedef enum { HL_ITALIC = 0x04, HL_UNDERLINE = 0x08, HL_UNDERCURL = 0x10, - HL_STANDOUT = 0x20, - HL_STRIKETHROUGH = 0x40, - HL_NOCOMBINE = 0x80, - HL_BG_INDEXED = 0x0100, - HL_FG_INDEXED = 0x0200, - HL_DEFAULT = 0x0400, - HL_GLOBAL = 0x0800, - HL_UNDERLINELINE = 0x1000, - HL_UNDERDOT = 0x2000, - HL_UNDERDASH = 0x4000, - HL_ANY_UNDERLINE = HL_UNDERLINE | HL_UNDERLINELINE | HL_UNDERCURL | HL_UNDERDOT | HL_UNDERDASH, + HL_UNDERDOUBLE = 0x20, + HL_UNDERDOTTED = 0x40, + HL_UNDERDASHED = 0x80, + HL_STANDOUT = 0x0100, + HL_NOCOMBINE = 0x0200, + HL_STRIKETHROUGH = 0x0400, + HL_BG_INDEXED = 0x0800, + HL_FG_INDEXED = 0x1000, + HL_DEFAULT = 0x2000, + HL_GLOBAL = 0x4000, + HL_ANY_UNDERLINE = HL_UNDERLINE | HL_UNDERDOUBLE | HL_UNDERCURL | HL_UNDERDOTTED | HL_UNDERDASHED, } HlAttrFlags; /// Stores a complete highlighting entry, including colors and attributes diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c index e5d9a9269c..d958b7b344 100644 --- a/src/nvim/highlight_group.c +++ b/src/nvim/highlight_group.c @@ -38,10 +38,12 @@ Map(cstr_t, int) highlight_unames = MAP_INIT; /// The "term", "cterm" and "gui" arguments can be any combination of the /// following names, separated by commas (but no spaces!). static char *(hl_name_table[]) = -{ "bold", "standout", "underline", "underlineline", "undercurl", "underdot", - "underdash", "italic", "reverse", "inverse", "strikethrough", "nocombine", "NONE" }; +{ "bold", "standout", "underline", + "undercurl", "underdouble", "underdotted", "underdashed", + "italic", "reverse", "inverse", "strikethrough", "nocombine", "NONE" }; static int hl_attr_table[] = -{ HL_BOLD, HL_STANDOUT, HL_UNDERLINE, HL_UNDERLINELINE, HL_UNDERCURL, HL_UNDERDOT, HL_UNDERDASH, +{ HL_BOLD, HL_STANDOUT, HL_UNDERLINE, + HL_UNDERCURL, HL_UNDERDOUBLE, HL_UNDERDOTTED, HL_UNDERDASHED, HL_ITALIC, HL_INVERSE, HL_INVERSE, HL_STRIKETHROUGH, HL_NOCOMBINE, 0 }; /// Structure that stores information about a highlight group. diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 6c1c1ade00..f492792b20 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -589,26 +589,26 @@ static void update_attrs(UI *ui, int attr_id) bool strikethrough = attr & HL_STRIKETHROUGH; bool underline; - bool underlineline; bool undercurl; - bool underdot; - bool underdash; + bool underdouble; + bool underdotted; + bool underdashed; if (data->unibi_ext.set_underline_style != -1) { underline = attr & HL_UNDERLINE; - underlineline = attr & HL_UNDERLINELINE; undercurl = attr & HL_UNDERCURL; - underdash = attr & HL_UNDERDASH; - underdot = attr & HL_UNDERDOT; + underdouble = attr & HL_UNDERDOUBLE; + underdashed = attr & HL_UNDERDASHED; + underdotted = attr & HL_UNDERDOTTED; } else { underline = attr & HL_ANY_UNDERLINE; - underlineline = false; undercurl = false; - underdot = false; - underdash = false; + underdouble = false; + underdotted = false; + underdashed = false; } bool has_any_underline = undercurl || underline - || underdot || underdash || underlineline; + || underdouble || underdotted || underdashed; if (unibi_get_str(data->ut, unibi_set_attributes)) { if (bold || reverse || underline || standout) { @@ -648,19 +648,19 @@ static void update_attrs(UI *ui, int attr_id) if (strikethrough && data->unibi_ext.enter_strikethrough_mode != -1) { unibi_out_ext(ui, data->unibi_ext.enter_strikethrough_mode); } - if (underlineline && data->unibi_ext.set_underline_style != -1) { - UNIBI_SET_NUM_VAR(data->params[0], 2); - unibi_out_ext(ui, data->unibi_ext.set_underline_style); - } if (undercurl && data->unibi_ext.set_underline_style != -1) { UNIBI_SET_NUM_VAR(data->params[0], 3); unibi_out_ext(ui, data->unibi_ext.set_underline_style); } - if (underdot && data->unibi_ext.set_underline_style != -1) { + if (underdouble && data->unibi_ext.set_underline_style != -1) { + UNIBI_SET_NUM_VAR(data->params[0], 2); + unibi_out_ext(ui, data->unibi_ext.set_underline_style); + } + if (underdotted && data->unibi_ext.set_underline_style != -1) { UNIBI_SET_NUM_VAR(data->params[0], 4); unibi_out_ext(ui, data->unibi_ext.set_underline_style); } - if (underdash && data->unibi_ext.set_underline_style != -1) { + if (underdashed && data->unibi_ext.set_underline_style != -1) { UNIBI_SET_NUM_VAR(data->params[0], 5); unibi_out_ext(ui, data->unibi_ext.set_underline_style); } |