diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-02-11 10:08:04 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-02-11 10:51:52 +0100 |
commit | 2beb731ed47fc4643f4f9151c53a4e4de0ee203b (patch) | |
tree | fa86616503a7e82a73ae8c5366612bc6b3324db8 /src | |
parent | b3ce0019a78ee85d44513344ce52d9da43077231 (diff) | |
download | rneovim-2beb731ed47fc4643f4f9151c53a4e4de0ee203b.tar.gz rneovim-2beb731ed47fc4643f4f9151c53a4e4de0ee203b.tar.bz2 rneovim-2beb731ed47fc4643f4f9151c53a4e4de0ee203b.zip |
TUI: italics in Terminal.app (nsterm)
This is the conservative approach, requiring TERM=nsterm as recommended
at `:help $TERM`. It won't work with Terminal.app's default of
TERM=xterm-256color, nor in tmux.
Test case:
TERM=nsterm nvim -u NORC +'hi Comment cterm=italic' CMakeLists.txt
closes #9598
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/tui/tui.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index a1a43c3e3a..1129c83ebb 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -1494,9 +1494,10 @@ static void patch_terminfo_bugs(TUIData *data, const char *term, #if 0 // We don't need to identify this specifically, for now. bool roxterm = !!os_getenv("ROXTERM_ID"); #endif + bool nsterm = terminfo_is_term_family(term, "nsterm"); bool xterm = terminfo_is_term_family(term, "xterm") // Treat Terminal.app as generic xterm-like, for now. - || terminfo_is_term_family(term, "nsterm"); + || nsterm; bool kitty = terminfo_is_term_family(term, "xterm-kitty"); bool linuxvt = terminfo_is_term_family(term, "linux"); bool bsdvt = terminfo_is_bsd_console(term); @@ -1584,9 +1585,9 @@ static void patch_terminfo_bugs(TUIData *data, const char *term, if (true_xterm || iterm_pretending_xterm || gnome_pretending_xterm - || konsole_pretending_xterm) { + || konsole_pretending_xterm + || nsterm) { // Apple's outdated copy of terminfo.src for MacOS lacks these. - // genuine Xterm and three false claimants have them. unibi_set_if_empty(ut, unibi_enter_italics_mode, "\x1b[3m"); unibi_set_if_empty(ut, unibi_exit_italics_mode, "\x1b[23m"); } @@ -1610,7 +1611,6 @@ static void patch_terminfo_bugs(TUIData *data, const char *term, // 2017-04 terminfo.src lacks this. unibi_set_if_empty(ut, unibi_carriage_return, "\x0d"); } else if (linuxvt) { - // Apple's outdated copy of terminfo.src for MacOS lacks these. unibi_set_if_empty(ut, unibi_parm_up_cursor, "\x1b[%p1%dA"); unibi_set_if_empty(ut, unibi_parm_down_cursor, "\x1b[%p1%dB"); unibi_set_if_empty(ut, unibi_parm_right_cursor, "\x1b[%p1%dC"); @@ -1778,9 +1778,10 @@ static void augment_terminfo(TUIData *data, const char *term, long konsolev, bool iterm_env) { unibi_term *ut = data->ut; + bool nsterm = terminfo_is_term_family(term, "nsterm"); bool xterm = terminfo_is_term_family(term, "xterm") // Treat Terminal.app as generic xterm-like, for now. - || terminfo_is_term_family(term, "nsterm"); + || nsterm; bool bsdvt = terminfo_is_bsd_console(term); bool dtterm = terminfo_is_term_family(term, "dtterm"); bool rxvt = terminfo_is_term_family(term, "rxvt"); |