aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-09-26 09:20:58 +0200
committerGitHub <noreply@github.com>2022-09-26 09:20:58 +0200
commit6596f7e136b7ceba2a94c708e2a179ec60b6d048 (patch)
tree89951f4a8fc73838548c2fd8af5f7a49f389dcda /src
parent63be7651829f8b77c4974d08ebe09f7775e41a8a (diff)
parent4bb1d1df79bd1f125499e556d5d4e21ac2ff1e5a (diff)
downloadrneovim-6596f7e136b7ceba2a94c708e2a179ec60b6d048.tar.gz
rneovim-6596f7e136b7ceba2a94c708e2a179ec60b6d048.tar.bz2
rneovim-6596f7e136b7ceba2a94c708e2a179ec60b6d048.zip
Merge pull request #20277 from reiver-dev/term-more-underline
feat(terminal): recognize underdouble and undercurl
Diffstat (limited to 'src')
-rw-r--r--src/nvim/terminal.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index 326c868be8..8ec51438fb 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -759,6 +759,22 @@ static int get_rgb(VTermState *state, VTermColor color)
return RGB_(color.rgb.red, color.rgb.green, color.rgb.blue);
}
+static int get_underline_hl_flag(VTermScreenCellAttrs attrs)
+{
+ switch (attrs.underline) {
+ case VTERM_UNDERLINE_OFF:
+ return 0;
+ case VTERM_UNDERLINE_SINGLE:
+ return HL_UNDERLINE;
+ case VTERM_UNDERLINE_DOUBLE:
+ return HL_UNDERDOUBLE;
+ case VTERM_UNDERLINE_CURLY:
+ return HL_UNDERCURL;
+ default:
+ return HL_UNDERLINE;
+ }
+}
+
void terminal_get_line_attributes(Terminal *term, win_T *wp, int linenr, int *term_attrs)
{
int height, width;
@@ -795,7 +811,7 @@ void terminal_get_line_attributes(Terminal *term, win_T *wp, int linenr, int *te
int hl_attrs = (cell.attrs.bold ? HL_BOLD : 0)
| (cell.attrs.italic ? HL_ITALIC : 0)
| (cell.attrs.reverse ? HL_INVERSE : 0)
- | (cell.attrs.underline ? HL_UNDERLINE : 0)
+ | get_underline_hl_flag(cell.attrs)
| (cell.attrs.strike ? HL_STRIKETHROUGH: 0)
| ((fg_indexed && !fg_set) ? HL_FG_INDEXED : 0)
| ((bg_indexed && !bg_set) ? HL_BG_INDEXED : 0);