aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/keysets.lua12
-rw-r--r--src/nvim/api/vim.c6
-rw-r--r--src/nvim/eval/funcs.c34
-rw-r--r--src/nvim/hardcopy.c6
-rw-r--r--src/nvim/hardcopy.h6
-rw-r--r--src/nvim/highlight.c22
-rw-r--r--src/nvim/highlight_defs.h22
-rw-r--r--src/nvim/highlight_group.c8
-rw-r--r--src/nvim/tui/tui.c32
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);
}