mirror of
https://github.com/zoriya/vim.git
synced 2025-12-19 13:45:18 +00:00
patch 8.0.1038: strike-through text not supported
Problem: Strike-through text not supported.
Solution: Add support for the "strikethrough" attribute. (Christian
Brabandt, Ken Takata)
This commit is contained in:
@@ -7723,6 +7723,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
|
|||||||
"standout" "1" if standout
|
"standout" "1" if standout
|
||||||
"underline" "1" if underlined
|
"underline" "1" if underlined
|
||||||
"undercurl" "1" if undercurled
|
"undercurl" "1" if undercurled
|
||||||
|
"strike" "1" if strikethrough
|
||||||
|
|
||||||
Example (echoes the color of the syntax item under the
|
Example (echoes the color of the syntax item under the
|
||||||
cursor): >
|
cursor): >
|
||||||
|
|||||||
@@ -4105,6 +4105,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
s standout (termcap entry "so" and "se")
|
s standout (termcap entry "so" and "se")
|
||||||
u underline (termcap entry "us" and "ue")
|
u underline (termcap entry "us" and "ue")
|
||||||
c undercurl (termcap entry "Cs" and "Ce")
|
c undercurl (termcap entry "Cs" and "Ce")
|
||||||
|
t strikethrough (termcap entry "Ts" and "Te")
|
||||||
n no highlighting
|
n no highlighting
|
||||||
- no highlighting
|
- no highlighting
|
||||||
: use a highlight group
|
: use a highlight group
|
||||||
|
|||||||
@@ -4699,13 +4699,14 @@ the same syntax file on all terminals, and use the optimal highlighting.
|
|||||||
|
|
||||||
*bold* *underline* *undercurl*
|
*bold* *underline* *undercurl*
|
||||||
*inverse* *italic* *standout*
|
*inverse* *italic* *standout*
|
||||||
*nocombine*
|
*nocombine* *strikethrough*
|
||||||
term={attr-list} *attr-list* *highlight-term* *E418*
|
term={attr-list} *attr-list* *highlight-term* *E418*
|
||||||
attr-list is a comma separated list (without spaces) of the
|
attr-list is a comma separated list (without spaces) of the
|
||||||
following items (in any order):
|
following items (in any order):
|
||||||
bold
|
bold
|
||||||
underline
|
underline
|
||||||
undercurl not always available
|
undercurl not always available
|
||||||
|
strikethrough not always available
|
||||||
reverse
|
reverse
|
||||||
inverse same as reverse
|
inverse same as reverse
|
||||||
italic
|
italic
|
||||||
@@ -4716,8 +4717,8 @@ term={attr-list} *attr-list* *highlight-term* *E418*
|
|||||||
Note that "bold" can be used here and by using a bold font. They
|
Note that "bold" can be used here and by using a bold font. They
|
||||||
have the same effect.
|
have the same effect.
|
||||||
"undercurl" is a curly underline. When "undercurl" is not possible
|
"undercurl" is a curly underline. When "undercurl" is not possible
|
||||||
then "underline" is used. In general "undercurl" is only available in
|
then "underline" is used. In general "undercurl" and "strikethrough"
|
||||||
the GUI. The color is set with |highlight-guisp|.
|
is only available in the GUI. The color is set with |highlight-guisp|.
|
||||||
|
|
||||||
start={term-list} *highlight-start* *E422*
|
start={term-list} *highlight-start* *E422*
|
||||||
stop={term-list} *term-list* *highlight-stop*
|
stop={term-list} *term-list* *highlight-stop*
|
||||||
@@ -4882,7 +4883,8 @@ guifg={color-name} *highlight-guifg*
|
|||||||
guibg={color-name} *highlight-guibg*
|
guibg={color-name} *highlight-guibg*
|
||||||
guisp={color-name} *highlight-guisp*
|
guisp={color-name} *highlight-guisp*
|
||||||
These give the foreground (guifg), background (guibg) and special
|
These give the foreground (guifg), background (guibg) and special
|
||||||
(guisp) color to use in the GUI. "guisp" is used for undercurl.
|
(guisp) color to use in the GUI. "guisp" is used for undercurl and
|
||||||
|
strikethrough.
|
||||||
There are a few special names:
|
There are a few special names:
|
||||||
NONE no color (transparent)
|
NONE no color (transparent)
|
||||||
bg use normal background color
|
bg use normal background color
|
||||||
|
|||||||
@@ -11843,6 +11843,10 @@ f_synIDattr(typval_T *argvars UNUSED, typval_T *rettv)
|
|||||||
case 's':
|
case 's':
|
||||||
if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */
|
if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */
|
||||||
p = highlight_color(id, what, modec);
|
p = highlight_color(id, what, modec);
|
||||||
|
/* strikeout */
|
||||||
|
else if (TOLOWER_ASC(what[1]) == 't' &&
|
||||||
|
TOLOWER_ASC(what[2]) == 'r')
|
||||||
|
p = highlight_has_attr(id, HL_STRIKETHROUGH, modec);
|
||||||
else /* standout */
|
else /* standout */
|
||||||
p = highlight_has_attr(id, HL_STANDOUT, modec);
|
p = highlight_has_attr(id, HL_STANDOUT, modec);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2396,6 +2396,7 @@ gui_outstr_nowrap(
|
|||||||
/* Do we underline the text? */
|
/* Do we underline the text? */
|
||||||
if (hl_mask_todo & HL_UNDERLINE)
|
if (hl_mask_todo & HL_UNDERLINE)
|
||||||
draw_flags |= DRAW_UNDERL;
|
draw_flags |= DRAW_UNDERL;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/* Do we underline the text? */
|
/* Do we underline the text? */
|
||||||
if ((hl_mask_todo & HL_UNDERLINE) || (hl_mask_todo & HL_ITALIC))
|
if ((hl_mask_todo & HL_UNDERLINE) || (hl_mask_todo & HL_ITALIC))
|
||||||
@@ -2405,6 +2406,10 @@ gui_outstr_nowrap(
|
|||||||
if (hl_mask_todo & HL_UNDERCURL)
|
if (hl_mask_todo & HL_UNDERCURL)
|
||||||
draw_flags |= DRAW_UNDERC;
|
draw_flags |= DRAW_UNDERC;
|
||||||
|
|
||||||
|
/* Do we strikethrough the text? */
|
||||||
|
if (hl_mask_todo & HL_STRIKETHROUGH)
|
||||||
|
draw_flags |= DRAW_STRIKE;
|
||||||
|
|
||||||
/* Do we draw transparently? */
|
/* Do we draw transparently? */
|
||||||
if (flags & GUI_MON_TRS_CURSOR)
|
if (flags & GUI_MON_TRS_CURSOR)
|
||||||
draw_flags |= DRAW_TRANSP;
|
draw_flags |= DRAW_TRANSP;
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
# define DRAW_ITALIC 0x10 /* draw italic text */
|
# define DRAW_ITALIC 0x10 /* draw italic text */
|
||||||
#endif
|
#endif
|
||||||
#define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
|
#define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
|
||||||
|
#define DRAW_STRIKE 0x40 /* strikethrough */
|
||||||
|
|
||||||
/* For our own tearoff menu item */
|
/* For our own tearoff menu item */
|
||||||
#define TEAR_STRING "-->Detach"
|
#define TEAR_STRING "-->Detach"
|
||||||
|
|||||||
@@ -5908,6 +5908,27 @@ draw_under(int flags, int row, int col, int cells)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Draw a strikethrough line */
|
||||||
|
if (flags & DRAW_STRIKE)
|
||||||
|
{
|
||||||
|
#if GTK_CHECK_VERSION(3,0,0)
|
||||||
|
cairo_set_line_width(cr, 1.0);
|
||||||
|
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
|
||||||
|
cairo_set_source_rgba(cr,
|
||||||
|
gui.spcolor->red, gui.spcolor->green, gui.spcolor->blue,
|
||||||
|
gui.spcolor->alpha);
|
||||||
|
cairo_move_to(cr, FILL_X(col), y + 1 - gui.char_height/2 + 0.5);
|
||||||
|
cairo_line_to(cr, FILL_X(col + cells), y + 1 - gui.char_height/2 + 0.5);
|
||||||
|
cairo_stroke(cr);
|
||||||
|
#else
|
||||||
|
gdk_gc_set_foreground(gui.text_gc, gui.spcolor);
|
||||||
|
gdk_draw_line(gui.drawarea->window, gui.text_gc,
|
||||||
|
FILL_X(col), y + 1 - gui.char_height/2,
|
||||||
|
FILL_X(col + cells), y + 1 - gui.char_height/2);
|
||||||
|
gdk_gc_set_foreground(gui.text_gc, gui.fgcolor);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* Underline: draw a line at the bottom of the character cell. */
|
/* Underline: draw a line at the bottom of the character cell. */
|
||||||
if (flags & DRAW_UNDERL)
|
if (flags & DRAW_UNDERL)
|
||||||
{
|
{
|
||||||
@@ -5916,7 +5937,6 @@ draw_under(int flags, int row, int col, int cells)
|
|||||||
if (p_linespace > 1)
|
if (p_linespace > 1)
|
||||||
y -= p_linespace - 1;
|
y -= p_linespace - 1;
|
||||||
#if GTK_CHECK_VERSION(3,0,0)
|
#if GTK_CHECK_VERSION(3,0,0)
|
||||||
{
|
|
||||||
cairo_set_line_width(cr, 1.0);
|
cairo_set_line_width(cr, 1.0);
|
||||||
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
|
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT);
|
||||||
cairo_set_source_rgba(cr,
|
cairo_set_source_rgba(cr,
|
||||||
@@ -5925,7 +5945,6 @@ draw_under(int flags, int row, int col, int cells)
|
|||||||
cairo_move_to(cr, FILL_X(col), y + 0.5);
|
cairo_move_to(cr, FILL_X(col), y + 0.5);
|
||||||
cairo_line_to(cr, FILL_X(col + cells), y + 0.5);
|
cairo_line_to(cr, FILL_X(col + cells), y + 0.5);
|
||||||
cairo_stroke(cr);
|
cairo_stroke(cr);
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
gdk_draw_line(gui.drawarea->window, gui.text_gc,
|
gdk_draw_line(gui.drawarea->window, gui.text_gc,
|
||||||
FILL_X(col), y,
|
FILL_X(col), y,
|
||||||
|
|||||||
@@ -3899,6 +3899,11 @@ draw_string_QD(int row, int col, char_u *s, int len, int flags)
|
|||||||
MoveTo(FILL_X(col), FILL_Y(row + 1) - 1);
|
MoveTo(FILL_X(col), FILL_Y(row + 1) - 1);
|
||||||
LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
|
LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
|
||||||
}
|
}
|
||||||
|
if (flags & DRAW_STRIKE)
|
||||||
|
{
|
||||||
|
MoveTo(FILL_X(col), FILL_Y(row + 1) - gui.char_height/2);
|
||||||
|
LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - gui.char_height/2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & DRAW_UNDERC)
|
if (flags & DRAW_UNDERC)
|
||||||
|
|||||||
@@ -6427,6 +6427,18 @@ gui_mch_draw_string(
|
|||||||
DeleteObject(SelectObject(s_hdc, old_pen));
|
DeleteObject(SelectObject(s_hdc, old_pen));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Strikethrough */
|
||||||
|
if (flags & DRAW_STRIKE)
|
||||||
|
{
|
||||||
|
hpen = CreatePen(PS_SOLID, 1, gui.currSpColor);
|
||||||
|
old_pen = SelectObject(s_hdc, hpen);
|
||||||
|
y = FILL_Y(row + 1) - gui.char_height/2;
|
||||||
|
MoveToEx(s_hdc, FILL_X(col), y, NULL);
|
||||||
|
/* Note: LineTo() excludes the last pixel in the line. */
|
||||||
|
LineTo(s_hdc, FILL_X(col + len), y);
|
||||||
|
DeleteObject(SelectObject(s_hdc, old_pen));
|
||||||
|
}
|
||||||
|
|
||||||
/* Undercurl */
|
/* Undercurl */
|
||||||
if (flags & DRAW_UNDERC)
|
if (flags & DRAW_UNDERC)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2542,6 +2542,16 @@ gui_mch_draw_string(
|
|||||||
y, FILL_X(col + cells) - 1, y);
|
y, FILL_X(col + cells) - 1, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flags & DRAW_STRIKE)
|
||||||
|
{
|
||||||
|
int y = FILL_Y(row + 1) - gui.char_height/2;
|
||||||
|
|
||||||
|
XSetForeground(gui.dpy, gui.text_gc, prev_sp_color);
|
||||||
|
XDrawLine(gui.dpy, gui.wid, gui.text_gc, FILL_X(col),
|
||||||
|
y, FILL_X(col + cells) - 1, y);
|
||||||
|
XSetForeground(gui.dpy, gui.text_gc, prev_fg_color);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FEAT_XFONTSET
|
#ifdef FEAT_XFONTSET
|
||||||
if (current_fontset != NULL)
|
if (current_fontset != NULL)
|
||||||
XSetClipMask(gui.dpy, gui.text_gc, None);
|
XSetClipMask(gui.dpy, gui.text_gc, None);
|
||||||
|
|||||||
@@ -3216,8 +3216,10 @@ static struct vimoption options[] =
|
|||||||
p_term("t_so", T_SO)
|
p_term("t_so", T_SO)
|
||||||
p_term("t_SR", T_CSR)
|
p_term("t_SR", T_CSR)
|
||||||
p_term("t_sr", T_SR)
|
p_term("t_sr", T_SR)
|
||||||
|
p_term("t_Te", T_STE)
|
||||||
p_term("t_te", T_TE)
|
p_term("t_te", T_TE)
|
||||||
p_term("t_ti", T_TI)
|
p_term("t_ti", T_TI)
|
||||||
|
p_term("t_Ts", T_STS)
|
||||||
p_term("t_ts", T_TS)
|
p_term("t_ts", T_TS)
|
||||||
p_term("t_u7", T_U7)
|
p_term("t_u7", T_U7)
|
||||||
p_term("t_ue", T_UE)
|
p_term("t_ue", T_UE)
|
||||||
|
|||||||
11
src/screen.c
11
src/screen.c
@@ -235,7 +235,7 @@ redraw_later_clear(void)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
/* Use attributes that is very unlikely to appear in text. */
|
/* Use attributes that is very unlikely to appear in text. */
|
||||||
screen_attr = HL_BOLD | HL_UNDERLINE | HL_INVERSE;
|
screen_attr = HL_BOLD | HL_UNDERLINE | HL_INVERSE | HL_STRIKETHROUGH;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -8086,6 +8086,8 @@ screen_start_highlight(int attr)
|
|||||||
out_str(T_CZH);
|
out_str(T_CZH);
|
||||||
if ((attr & HL_INVERSE) && T_MR != NULL) /* inverse (reverse) */
|
if ((attr & HL_INVERSE) && T_MR != NULL) /* inverse (reverse) */
|
||||||
out_str(T_MR);
|
out_str(T_MR);
|
||||||
|
if ((attr & HL_STRIKETHROUGH) && T_STS != NULL) /* strike */
|
||||||
|
out_str(T_STS);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Output the color or start string after bold etc., in case the
|
* Output the color or start string after bold etc., in case the
|
||||||
@@ -8210,6 +8212,13 @@ screen_stop_highlight(void)
|
|||||||
else
|
else
|
||||||
out_str(T_CZR);
|
out_str(T_CZR);
|
||||||
}
|
}
|
||||||
|
if (screen_attr & HL_STRIKETHROUGH)
|
||||||
|
{
|
||||||
|
if (STRCMP(T_STE, T_ME) == 0)
|
||||||
|
do_ME = TRUE;
|
||||||
|
else
|
||||||
|
out_str(T_STE);
|
||||||
|
}
|
||||||
if (do_ME || (screen_attr & (HL_BOLD | HL_INVERSE)))
|
if (do_ME || (screen_attr & (HL_BOLD | HL_INVERSE)))
|
||||||
out_str(T_ME);
|
out_str(T_ME);
|
||||||
|
|
||||||
|
|||||||
@@ -86,9 +86,9 @@ static int include_link = 0; /* when 2 include "link" and "clear" */
|
|||||||
*/
|
*/
|
||||||
static char *(hl_name_table[]) =
|
static char *(hl_name_table[]) =
|
||||||
{"bold", "standout", "underline", "undercurl",
|
{"bold", "standout", "underline", "undercurl",
|
||||||
"italic", "reverse", "inverse", "nocombine", "NONE"};
|
"italic", "reverse", "inverse", "nocombine", "strikethrough", "NONE"};
|
||||||
static int hl_attr_table[] =
|
static int hl_attr_table[] =
|
||||||
{HL_BOLD, HL_STANDOUT, HL_UNDERLINE, HL_UNDERCURL, HL_ITALIC, HL_INVERSE, HL_INVERSE, HL_NOCOMBINE, 0};
|
{HL_BOLD, HL_STANDOUT, HL_UNDERLINE, HL_UNDERCURL, HL_ITALIC, HL_INVERSE, HL_INVERSE, HL_NOCOMBINE, HL_STRIKETHROUGH, 0};
|
||||||
#define ATTR_COMBINE(attr_a, attr_b) ((((attr_b) & HL_NOCOMBINE) ? attr_b : (attr_a)) | (attr_b))
|
#define ATTR_COMBINE(attr_a, attr_b) ((((attr_b) & HL_NOCOMBINE) ? attr_b : (attr_a)) | (attr_b))
|
||||||
|
|
||||||
static int get_attr_entry(garray_T *table, attrentry_T *aep);
|
static int get_attr_entry(garray_T *table, attrentry_T *aep);
|
||||||
@@ -9951,6 +9951,8 @@ highlight_changed(void)
|
|||||||
break;
|
break;
|
||||||
case 'c': attr |= HL_UNDERCURL;
|
case 'c': attr |= HL_UNDERCURL;
|
||||||
break;
|
break;
|
||||||
|
case 't': attr |= HL_STRIKETHROUGH;
|
||||||
|
break;
|
||||||
case ':': ++p; /* highlight group name */
|
case ':': ++p; /* highlight group name */
|
||||||
if (attr || *p == NUL) /* no combinations */
|
if (attr || *p == NUL) /* no combinations */
|
||||||
return FAIL;
|
return FAIL;
|
||||||
|
|||||||
@@ -217,6 +217,8 @@ static struct builtin_term builtin_termcaps[] =
|
|||||||
{(int)KS_US, IF_EB("\033|8h", ESC_STR "|8h")}, /* HL_UNDERLINE */
|
{(int)KS_US, IF_EB("\033|8h", ESC_STR "|8h")}, /* HL_UNDERLINE */
|
||||||
{(int)KS_UCE, IF_EB("\033|8C", ESC_STR "|8C")}, /* HL_UNDERCURL */
|
{(int)KS_UCE, IF_EB("\033|8C", ESC_STR "|8C")}, /* HL_UNDERCURL */
|
||||||
{(int)KS_UCS, IF_EB("\033|8c", ESC_STR "|8c")}, /* HL_UNDERCURL */
|
{(int)KS_UCS, IF_EB("\033|8c", ESC_STR "|8c")}, /* HL_UNDERCURL */
|
||||||
|
{(int)KS_STE, IF_EB("\033|4C", ESC_STR "|4C")}, /* HL_STRIKETHROUGH */
|
||||||
|
{(int)KS_STS, IF_EB("\033|4c", ESC_STR "|4c")}, /* HL_STRIKETHROUGH */
|
||||||
{(int)KS_CZR, IF_EB("\033|4H", ESC_STR "|4H")}, /* HL_ITALIC */
|
{(int)KS_CZR, IF_EB("\033|4H", ESC_STR "|4H")}, /* HL_ITALIC */
|
||||||
{(int)KS_CZH, IF_EB("\033|4h", ESC_STR "|4h")}, /* HL_ITALIC */
|
{(int)KS_CZH, IF_EB("\033|4h", ESC_STR "|4h")}, /* HL_ITALIC */
|
||||||
{(int)KS_VB, IF_EB("\033|f", ESC_STR "|f")},
|
{(int)KS_VB, IF_EB("\033|f", ESC_STR "|f")},
|
||||||
@@ -831,6 +833,8 @@ static struct builtin_term builtin_termcaps[] =
|
|||||||
{(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")},
|
{(int)KS_MD, IF_EB("\033[1m", ESC_STR "[1m")},
|
||||||
{(int)KS_UE, IF_EB("\033[m", ESC_STR "[m")},
|
{(int)KS_UE, IF_EB("\033[m", ESC_STR "[m")},
|
||||||
{(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")},
|
{(int)KS_US, IF_EB("\033[4m", ESC_STR "[4m")},
|
||||||
|
{(int)KS_STE, IF_EB("\033[29m", ESC_STR "[29m")},
|
||||||
|
{(int)KS_STS, IF_EB("\033[9m", ESC_STR "[9m")},
|
||||||
{(int)KS_MS, "y"},
|
{(int)KS_MS, "y"},
|
||||||
{(int)KS_UT, "y"},
|
{(int)KS_UT, "y"},
|
||||||
{(int)KS_LE, "\b"},
|
{(int)KS_LE, "\b"},
|
||||||
@@ -1151,6 +1155,8 @@ static struct builtin_term builtin_termcaps[] =
|
|||||||
{(int)KS_US, "[US]"},
|
{(int)KS_US, "[US]"},
|
||||||
{(int)KS_UCE, "[UCE]"},
|
{(int)KS_UCE, "[UCE]"},
|
||||||
{(int)KS_UCS, "[UCS]"},
|
{(int)KS_UCS, "[UCS]"},
|
||||||
|
{(int)KS_STE, "[STE]"},
|
||||||
|
{(int)KS_STS, "[STS]"},
|
||||||
{(int)KS_MS, "[MS]"},
|
{(int)KS_MS, "[MS]"},
|
||||||
{(int)KS_UT, "[UT]"},
|
{(int)KS_UT, "[UT]"},
|
||||||
{(int)KS_XN, "[XN]"},
|
{(int)KS_XN, "[XN]"},
|
||||||
@@ -1595,6 +1601,7 @@ set_termname(char_u *term)
|
|||||||
{KS_MD, "md"}, {KS_SE, "se"}, {KS_SO, "so"},
|
{KS_MD, "md"}, {KS_SE, "se"}, {KS_SO, "so"},
|
||||||
{KS_CZH,"ZH"}, {KS_CZR,"ZR"}, {KS_UE, "ue"},
|
{KS_CZH,"ZH"}, {KS_CZR,"ZR"}, {KS_UE, "ue"},
|
||||||
{KS_US, "us"}, {KS_UCE, "Ce"}, {KS_UCS, "Cs"},
|
{KS_US, "us"}, {KS_UCE, "Ce"}, {KS_UCS, "Cs"},
|
||||||
|
{KS_STE,"Te"}, {KS_STS,"Ts"},
|
||||||
{KS_CM, "cm"}, {KS_SR, "sr"},
|
{KS_CM, "cm"}, {KS_SR, "sr"},
|
||||||
{KS_CRI,"RI"}, {KS_VB, "vb"}, {KS_KS, "ks"},
|
{KS_CRI,"RI"}, {KS_VB, "vb"}, {KS_KS, "ks"},
|
||||||
{KS_KE, "ke"}, {KS_TI, "ti"}, {KS_TE, "te"},
|
{KS_KE, "ke"}, {KS_TI, "ti"}, {KS_TE, "te"},
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ enum SpecialKey
|
|||||||
KS_US, /* underscore (underline) mode */
|
KS_US, /* underscore (underline) mode */
|
||||||
KS_UCE, /* exit undercurl mode */
|
KS_UCE, /* exit undercurl mode */
|
||||||
KS_UCS, /* undercurl mode */
|
KS_UCS, /* undercurl mode */
|
||||||
|
KS_STE, /* exit strikethrough mode */
|
||||||
|
KS_STS, /* strikethrough mode */
|
||||||
KS_MS, /* save to move cur in reverse mode */
|
KS_MS, /* save to move cur in reverse mode */
|
||||||
KS_CM, /* cursor motion */
|
KS_CM, /* cursor motion */
|
||||||
KS_SR, /* scroll reverse (backward) */
|
KS_SR, /* scroll reverse (backward) */
|
||||||
@@ -149,6 +151,8 @@ extern char_u *(term_strings[]); /* current terminal strings */
|
|||||||
#define T_US (TERM_STR(KS_US)) /* underscore (underline) mode */
|
#define T_US (TERM_STR(KS_US)) /* underscore (underline) mode */
|
||||||
#define T_UCE (TERM_STR(KS_UCE)) /* exit undercurl mode */
|
#define T_UCE (TERM_STR(KS_UCE)) /* exit undercurl mode */
|
||||||
#define T_UCS (TERM_STR(KS_UCS)) /* undercurl mode */
|
#define T_UCS (TERM_STR(KS_UCS)) /* undercurl mode */
|
||||||
|
#define T_STE (TERM_STR(KS_STE)) /* exit strikethrough mode */
|
||||||
|
#define T_STS (TERM_STR(KS_STS)) /* strikethrough mode */
|
||||||
#define T_MS (TERM_STR(KS_MS)) /* save to move cur in reverse mode */
|
#define T_MS (TERM_STR(KS_MS)) /* save to move cur in reverse mode */
|
||||||
#define T_CM (TERM_STR(KS_CM)) /* cursor motion */
|
#define T_CM (TERM_STR(KS_CM)) /* cursor motion */
|
||||||
#define T_SR (TERM_STR(KS_SR)) /* scroll reverse (backward) */
|
#define T_SR (TERM_STR(KS_SR)) /* scroll reverse (backward) */
|
||||||
|
|||||||
@@ -1735,7 +1735,7 @@ cell2attr(VTermScreenCellAttrs cellattrs, VTermColor cellfg, VTermColor cellbg)
|
|||||||
if (cellattrs.italic)
|
if (cellattrs.italic)
|
||||||
attr |= HL_ITALIC;
|
attr |= HL_ITALIC;
|
||||||
if (cellattrs.strike)
|
if (cellattrs.strike)
|
||||||
attr |= HL_STANDOUT;
|
attr |= HL_STRIKETHROUGH;
|
||||||
if (cellattrs.reverse)
|
if (cellattrs.reverse)
|
||||||
attr |= HL_INVERSE;
|
attr |= HL_INVERSE;
|
||||||
|
|
||||||
@@ -2451,7 +2451,7 @@ f_term_getattr(typval_T *argvars, typval_T *rettv)
|
|||||||
{"bold", HL_BOLD},
|
{"bold", HL_BOLD},
|
||||||
{"italic", HL_ITALIC},
|
{"italic", HL_ITALIC},
|
||||||
{"underline", HL_UNDERLINE},
|
{"underline", HL_UNDERLINE},
|
||||||
{"strike", HL_STANDOUT},
|
{"strike", HL_STRIKETHROUGH},
|
||||||
{"reverse", HL_INVERSE},
|
{"reverse", HL_INVERSE},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -769,6 +769,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1038,
|
||||||
/**/
|
/**/
|
||||||
1037,
|
1037,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
@@ -681,7 +681,8 @@ extern int (*dyn_libintl_putenv)(const char *envstring);
|
|||||||
#define HL_UNDERCURL 0x10
|
#define HL_UNDERCURL 0x10
|
||||||
#define HL_STANDOUT 0x20
|
#define HL_STANDOUT 0x20
|
||||||
#define HL_NOCOMBINE 0x40
|
#define HL_NOCOMBINE 0x40
|
||||||
#define HL_ALL 0x7f
|
#define HL_STRIKETHROUGH 0x80
|
||||||
|
#define HL_ALL 0xff
|
||||||
|
|
||||||
/* special attribute addition: Put message in history */
|
/* special attribute addition: Put message in history */
|
||||||
#define MSG_HIST 0x1000
|
#define MSG_HIST 0x1000
|
||||||
|
|||||||
Reference in New Issue
Block a user