+134
-43
lines changedFilter options
+134
-43
lines changed Original file line number Diff line number Diff line change
@@ -7937,8 +7937,11 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
7937
7937
"inverse" "1" if inverse (= reverse)
7938
7938
"standout" "1" if standout
7939
7939
"underline" "1" if underlined
7940
+
"underlineline" "1" if double underlined
7940
7941
"undercurl" "1" if undercurled
7941
-
"strikethrough" "1" if struckthrough
7942
+
"underdot" "1" if dotted underlined
7943
+
"underdash" "1" if dashed underlined
7944
+
"strikethrough" "1" if struckthrough
7942
7945
7943
7946
Example (echoes the color of the syntax item under the
7944
7947
cursor): >
Original file line number Diff line number Diff line change
@@ -4875,15 +4875,19 @@ the same syntax file on all UIs.
4875
4875
4876
4876
1. TUI highlight arguments
4877
4877
4878
-
*bold* *underline* *undercurl*
4878
+
*bold* *underline* *underlineline*
4879
+
*undercurl* *underdot* *underdash*
4879
4880
*inverse* *italic* *standout*
4880
4881
*nocombine* *strikethrough*
4881
4882
cterm={attr-list} *attr-list* *highlight-cterm* *E418*
4882
4883
attr-list is a comma separated list (without spaces) of the
4883
4884
following items (in any order):
4884
4885
bold
4885
4886
underline
4887
+
underlineline double underline
4886
4888
undercurl curly underline
4889
+
underdot dotted underline
4890
+
underdash dashed underline
4887
4891
strikethrough
4888
4892
reverse
4889
4893
inverse same as reverse
@@ -4894,8 +4898,9 @@ cterm={attr-list} *attr-list* *highlight-cterm* *E418*
4894
4898
4895
4899
Note that "bold" can be used here and by using a bold font. They
4896
4900
have the same effect.
4897
-
"undercurl" falls back to "underline" in a terminal that does not
4898
-
support it. The color is set using |highlight-guisp|.
4901
+
"underlineline", "undercurl", "underdot", and "underdash" falls back
4902
+
to "underline" in a terminal that does not support it. The color is set
4903
+
using |highlight-guisp|.
4899
4904
4900
4905
start={term-list} *highlight-start* *E422*
4901
4906
stop={term-list} *term-list* *highlight-stop*
@@ -5028,8 +5033,8 @@ guifg={color-name} *highlight-guifg*
5028
5033
guibg={color-name} *highlight-guibg*
5029
5034
guisp={color-name} *highlight-guisp*
5030
5035
These give the foreground (guifg), background (guibg) and special
5031
-
(guisp) color to use in the GUI. "guisp" is used for undercurl
5032
-
and underline.
5036
+
(guisp) color to use in the GUI. "guisp" is used for various
5037
+
underlines.
5033
5038
There are a few special names:
5034
5039
NONE no color (transparent)
5035
5040
bg use normal background color
Original file line number Diff line number Diff line change
@@ -283,19 +283,24 @@ numerical highlight ids to the actual attributes.
283
283
attributes specified by the `rgb_attr` and `cterm_attr` dicts, with the
284
284
following (all optional) keys.
285
285
286
-
`foreground`: foreground color.
287
-
`background`: background color.
288
-
`special`: color to use for underline and undercurl, when present.
289
-
`reverse`: reverse video. Foreground and background colors are
290
-
switched.
291
-
`italic`: italic text.
292
-
`bold`: bold text.
293
-
`strikethrough`: struckthrough text.
294
-
`underline`: underlined text. The line has `special` color.
295
-
`undercurl`: undercurled text. The curl has `special` color.
296
-
`blend`: Blend level (0-100). Could be used by UIs to support
297
-
blending floating windows to the background or to
298
-
signal a transparent cursor.
286
+
`foreground`: foreground color.
287
+
`background`: background color.
288
+
`special`: color to use for various underlines, when
289
+
present.
290
+
`reverse`: reverse video. Foreground and background colors
291
+
are switched.
292
+
`italic`: italic text.
293
+
`bold`: bold text.
294
+
`strikethrough`: struckthrough text.
295
+
`underline`: underlined text. The line has `special` color.
296
+
`underlineline`: double underlined text. The lines has `special`
297
+
color.
298
+
`undercurl`: undercurled text. The curl has `special` color.
299
+
`underdot`: underdotted text. The dots has `special` color.
300
+
`underdash`: underdashed text. The dashes has `special` color.
301
+
`blend`: Blend level (0-100). Could be used by UIs to
302
+
support blending floating windows to the
303
+
background or to signal a transparent cursor.
299
304
300
305
For absent color keys the default color should be used. Don't store
301
306
the default value in the table, rather a sentinel value, so that
@@ -444,14 +449,17 @@ is not active. New UIs should implement |ui-linegrid| instead.
444
449
445
450
`foreground`: foreground color.
446
451
`background`: background color.
447
-
`special`: color to use for underline and undercurl, when present.
452
+
`special`: color to use for various underlines, when present.
448
453
`reverse`: reverse video. Foreground and background colors are
449
454
switched.
450
455
`italic`: italic text.
451
456
`bold`: bold text.
452
457
`strikethrough`: struckthrough text.
453
458
`underline`: underlined text. The line has `special` color.
459
+
`underlineline`: double underlined text. The lines has `special` color.
454
460
`undercurl`: undercurled text. The curl has `special` color.
461
+
`underdot`: underdotted text. The dots has `special` color.
462
+
`underdash`: underdashed text. The dashes has `special` color.
455
463
456
464
["put", text]
457
465
The (utf-8 encoded) string `text` is put at the cursor position
Original file line number Diff line number Diff line change
@@ -574,7 +574,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
574
574
575
575
syn match vimHiGroup contained "\i\+"
576
576
syn case ignore
577
-
syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl
577
+
syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline underlineline undercurl underdot underdash
578
578
syn keyword vimFgBgAttrib contained none bg background fg foreground
579
579
syn case match
580
580
syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
Original file line number Diff line number Diff line change
@@ -83,7 +83,10 @@ return {
83
83
"standout";
84
84
"strikethrough";
85
85
"underline";
86
+
"underlineline";
86
87
"undercurl";
88
+
"underdot";
89
+
"underdash";
87
90
"italic";
88
91
"reverse";
89
92
"nocombine";
@@ -105,7 +108,10 @@ return {
105
108
"standout";
106
109
"strikethrough";
107
110
"underline";
111
+
"underlineline";
108
112
"undercurl";
113
+
"underdot";
114
+
"underdash";
109
115
"italic";
110
116
"reverse";
111
117
"nocombine";
Original file line number Diff line number Diff line change
@@ -11409,14 +11409,22 @@ static void f_synIDattr(typval_T *argvars, typval_T *rettv, FunPtr fptr)
11409
11409
p = highlight_has_attr(id, HL_STANDOUT, modec);
11410
11410
}
11411
11411
break;
11412
-
case 'u':
11413
-
if (STRLEN(what) <= 5 || TOLOWER_ASC(what[5]) != 'c') { // underline
11414
-
p = highlight_has_attr(id, HL_UNDERLINE, modec);
11415
-
} else { // undercurl
11412
+
case 'u': {
11413
+
int len = STRLEN(what);
11414
+
if (len <= 5 || (TOLOWER_ASC(what[5]) == 'l' && len <= 9)) { // underline
11416
11415
p = highlight_has_attr(id, HL_UNDERCURL, modec);
11416
+
} else if (TOLOWER_ASC(what[5]) == 'c') { // undercurl
11417
+
p = highlight_has_attr(id, HL_UNDERCURL, modec);
11418
+
} else if (len > 9 && TOLOWER_ASC(what[9]) == 'l') { // underlineline
11419
+
p = highlight_has_attr(id, HL_UNDERLINELINE, modec);
11420
+
} else if (len > 5 && TOLOWER_ASC(what[6]) == 'o') { // underdot
11421
+
p = highlight_has_attr(id, HL_UNDERDOT, modec);
11422
+
} else { // underdash
11423
+
p = highlight_has_attr(id, HL_UNDERDASH, modec);
11417
11424
}
11418
11425
break;
11419
11426
}
11427
+
}
11420
11428
11421
11429
rettv->v_type = VAR_STRING;
11422
11430
rettv->vval.v_string = (char_u *)(p == NULL ? p : xstrdup(p));
Original file line number Diff line number Diff line change
@@ -420,7 +420,10 @@ static void prt_get_attr(int hl_id, prt_text_attr_T *pattr, int modec)
420
420
pattr->bold = (highlight_has_attr(hl_id, HL_BOLD, modec) != NULL);
421
421
pattr->italic = (highlight_has_attr(hl_id, HL_ITALIC, modec) != NULL);
422
422
pattr->underline = (highlight_has_attr(hl_id, HL_UNDERLINE, modec) != NULL);
423
+
pattr->underlineline = (highlight_has_attr(hl_id, HL_UNDERLINELINE, modec) != NULL);
423
424
pattr->undercurl = (highlight_has_attr(hl_id, HL_UNDERCURL, modec) != NULL);
425
+
pattr->underdot = (highlight_has_attr(hl_id, HL_UNDERDOT, modec) != NULL);
426
+
pattr->underdash = (highlight_has_attr(hl_id, HL_UNDERDASH, modec) != NULL);
424
427
425
428
uint32_t fg_color = prt_get_color(hl_id, modec);
426
429
Original file line number Diff line number Diff line change
@@ -18,6 +18,9 @@ typedef struct {
18
18
TriState italic;
19
19
TriState underline;
20
20
int undercurl;
21
+
int underlineline;
22
+
int underdot;
23
+
int underdash;
21
24
} prt_text_attr_T;
22
25
23
26
/*
Original file line number Diff line number Diff line change
@@ -558,7 +558,7 @@ int hl_blend_attrs(int back_attr, int front_attr, bool *through)
558
558
cattrs = battrs;
559
559
cattrs.rgb_fg_color = rgb_blend(ratio, battrs.rgb_fg_color,
560
560
fattrs.rgb_bg_color);
561
-
if (cattrs.rgb_ae_attr & (HL_UNDERLINE|HL_UNDERCURL)) {
561
+
if (cattrs.rgb_ae_attr & (HL_ANY_UNDERLINE)) {
562
562
cattrs.rgb_sp_color = rgb_blend(ratio, battrs.rgb_sp_color,
563
563
fattrs.rgb_bg_color);
564
564
} else {
@@ -576,7 +576,7 @@ int hl_blend_attrs(int back_attr, int front_attr, bool *through)
576
576
}
577
577
cattrs.rgb_fg_color = rgb_blend(ratio/2, battrs.rgb_fg_color,
578
578
fattrs.rgb_fg_color);
579
-
if (cattrs.rgb_ae_attr & (HL_UNDERLINE|HL_UNDERCURL)) {
579
+
if (cattrs.rgb_ae_attr & (HL_ANY_UNDERLINE)) {
580
580
cattrs.rgb_sp_color = rgb_blend(ratio/2, battrs.rgb_bg_color,
581
581
fattrs.rgb_sp_color);
582
582
} else {
@@ -743,10 +743,23 @@ Dictionary hlattrs2dict(HlAttrs ae, bool use_rgb)
743
743
PUT(hl, "underline", BOOLEAN_OBJ(true));
744
744
}
745
745
746
+
if (mask & HL_UNDERLINELINE) {
747
+
PUT(hl, "underlineline", BOOLEAN_OBJ(true));
748
+
}
749
+
746
750
if (mask & HL_UNDERCURL) {
747
751
PUT(hl, "undercurl", BOOLEAN_OBJ(true));
748
752
}
749
753
754
+
if (mask & HL_UNDERDOT) {
755
+
PUT(hl, "underdot", BOOLEAN_OBJ(true));
756
+
}
757
+
758
+
if (mask & HL_UNDERDASH) {
759
+
PUT(hl, "underdash", BOOLEAN_OBJ(true));
760
+
}
761
+
762
+
750
763
if (mask & HL_ITALIC) {
751
764
PUT(hl, "italic", BOOLEAN_OBJ(true));
752
765
}
@@ -813,7 +826,10 @@ HlAttrs dict2hlattrs(Dict(highlight) *dict, bool use_rgb, int *link_id, Error *e
813
826
CHECK_FLAG(dict, mask, bold, , HL_BOLD);
814
827
CHECK_FLAG(dict, mask, standout, , HL_STANDOUT);
815
828
CHECK_FLAG(dict, mask, underline, , HL_UNDERLINE);
829
+
CHECK_FLAG(dict, mask, underlineline, , HL_UNDERLINELINE);
816
830
CHECK_FLAG(dict, mask, undercurl, , HL_UNDERCURL);
831
+
CHECK_FLAG(dict, mask, underdot, , HL_UNDERDOT);
832
+
CHECK_FLAG(dict, mask, underdash, , HL_UNDERDASH);
817
833
CHECK_FLAG(dict, mask, italic, , HL_ITALIC);
818
834
CHECK_FLAG(dict, mask, reverse, , HL_INVERSE);
819
835
CHECK_FLAG(dict, mask, strikethrough, , HL_STRIKETHROUGH);
Original file line number Diff line number Diff line change
@@ -24,6 +24,10 @@ typedef enum {
24
24
HL_FG_INDEXED = 0x0200,
25
25
HL_DEFAULT = 0x0400,
26
26
HL_GLOBAL = 0x0800,
27
+
HL_UNDERLINELINE = 0x1000,
28
+
HL_UNDERDOT = 0x2000,
29
+
HL_UNDERDASH = 0x4000,
30
+
HL_ANY_UNDERLINE = HL_UNDERLINE | HL_UNDERLINELINE | HL_UNDERCURL | HL_UNDERDOT | HL_UNDERDASH,
27
31
} HlAttrFlags;
28
32
29
33
/// Stores a complete highlighting entry, including colors and attributes
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4