aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/tui
Commit message (Collapse)AuthorAge
* tui: setrgbf/setrgbb: emit semicolons for VTEJustin M. Keyes2017-11-18
| | | | | | | Severe memory leak observed on gnome-terminal 3.26.2 VTE 0.50.2 when colon-delimited RGB sequences are used. closes #7573
* tui: 'guicursor': use DECSCUSR for xterm-likes (#7576)Justin M. Keyes2017-11-17
| | | | | | | Anything claiming to be an xterm gets DECSCUSR. This is the only reasonable choice unless/until we get more reliable detection (#7490). ref #6997 closes #7550
* Adds nvim_get_hl_by_name/by_idMatthieu Coudron2017-09-30
| | | | | | | | | ...in order to retrieve highlights. Added test/functional/api/highlight_spec.lua HL_NORMAL is not really a good name, since it's more like an empty attribute than the normal's one. If one pays attention, syn_cterm_attr2entry is never called with attr=0 because it's always special cased before. I suggest in subsequent PRs we remove the ATTR_OFF and just insert an EMPTY ATTR/RESET_ATTR/UNINITIALIZED for id 0.
* tui: Use unibi_var_from_num when availableJames McCoy2017-09-16
| | | | | | | | | | | | | | | | | | As of unibilium 1.2.1, directly manipulating unibi_var_t is deprecated. ../src/nvim/tui/tui.c: In function 'update_attrs': ../src/nvim/tui/tui.c:321:7: warning: 'i' is deprecated: use unibi_var_from_num or unibi_num_from_var instead [-Wdeprecated-declarations] data->params[0].i = (fg >> 16) & 0xff; // red ^~~~ In file included from ../src/nvim/tui/tui.c:12:0: /usr/include/unibilium.h:632:9: note: declared here int i UNIBI_DEPRECATED("use unibi_var_from_num or unibi_num_from_var instead"); ^ All use should go through unibi_{num,str}_from_var and unibi_var_from_{num,str}. Wrap access of unibi_var_t behind a new UNIBI_SET_NUM_VAR macro which uses the new functions when they're available.
* eventloop: FocusGained: schedule event instead of pseudokeyJustin M. Keyes2017-09-05
| | | | | closes #4840 closes #6164
* tui: DECSCUSR workaround for Konsole (#7236)Vadim A. Misbakh-Soloviov2017-09-04
| | | closes #7235
* tui: support new iterm2, iTerm2.app terminfo entriesLeonardo Brondani Schenkel2017-08-26
| | | | | | | | iTerm2 got its own entry in Thomas Dickey's terminfo.src on 2017-08-16. Make sure that the new entry is handled in the same way as the old entry. closes #7209 closes #7214
* tui: always use unibi_add_ext_str with unibi_get_ext_str #7204Fredrik Fornwall2017-08-24
| | | | | | | | When using an index returned by unibi_add_ext_str() we should always use unibi_get_ext_str() and not rely on the index being lower than unibi_string_begin_. Closes #7206
* tui: fix DECSCUSR logic #6997Sebastian Parborg2017-08-13
| | | | | | | | | | Fix linuxvt cursor shape codes Fix konsole cursor_shapes (even when inside tmux) Do not trust old VTE terminal lies Closes #6978 Closes #7002 Closes #7049
* coverity/166184: Check length of str, not termJames McCoy2017-08-11
| | | | | | | | 32396b5879b429def1c48948069c55366d41b9be add length checks to TERMINAL_FAMILY/STARTS_WITH to ensure memcmp() wouldn't read past the end of the string. However, "term" was copy/pasted from TERMINAL_FAMILY so STARTS_WITH() was unnecessarily reading the, potentially NULL, term variable.
* tui: fix truecolor in libvte, tmux #7037DarkDefender2017-07-30
| | | | Closes #7041
* log: termios info to DEBUG instead of INFOJustin M. Keyes2017-07-23
|
* tui: Do not override 'termguicolors' choice (#7004)DarkDefender2017-07-15
| | | | | | | * Do not guard true color support with white list * Remove ext_bool (it is unused) Closes #7003
* tui: Remove superflous iTerm2 test added in error.Jonathan de Boyne Pollard2017-07-09
|
* tui: Improve the setrgbf/setrgbb fallback logic.Jonathan de Boyne Pollard2017-07-09
| | | | | | | The libvte test was too agressive, and is reduced to only triggering when it is libvte 0.36 AND a gnome or xterm terminal type is used. Contrastingly, tmux was not on the list at all and now is.
* lintJustin M. Keyes2017-07-07
|
* tui: Coding style changes onlyJonathan de Boyne Pollard2017-07-06
| | | | Per warnings about house style from automated tools.
* tui: Switch terminal keyboard mode properly.Jonathan de Boyne Pollard2017-07-06
| | | | | | | | The terminfo doco explicitly states that it covers the case where the terminal is in application cursor/keypad (i.e. "keypad transmit") mode, and not where it is in normal cursor/keypad (i.e. "keypad local") mode. Full screen applications like nvim must switch to and from keypad transmit mode when expecting the control sequences given by terminfo.
* tui: Coding style changes onlyJonathan de Boyne Pollard2017-07-06
| | | | Per warnings about house style from automated tools.
* tui: Track cursor visibility.Jonathan de Boyne Pollard2017-06-10
| | | | | | This fixes a test failure caused by dfaecb25f6a9a94f29a38d9f2d24a579b3dff5f not tracking what the current visibility is and whether it matches the current business state.
* tui: Eliminate more extraneous control sequences.Jonathan de Boyne Pollard2017-06-09
| | | | | | When higher layers flush the TUI layer output buffer, but there is nothing in the buffer to flush, no longer does the TUI layer write out unnecessary cnorm/civis sequences surrounding that nothing.
* tui: Another linux terminfo capability fixJonathan de Boyne Pollard2017-06-09
| | | | | For the linux terminal type apply the same fixup to the terminfo civis string that is applied to the cnorm string.
* tui: Recognize "Tc" terminfo capability.Jonathan de Boyne Pollard2017-06-05
| | | | | | | | | | | This is a new convention pioneered by tmux. It does not do much for nvim; since nvim always looks to see whether it should be making up "setrgbf" and "setrgbb" capabilities. But it is a way for terminfo to force this, irrespective of the hardwired list in the code, for more terminal types. On the gripping hand, updating terminfo descriptions to actually have "setrgbf" and "setrgbb" capabilities so that nvim never has to try to invent them in the first place, is as good if not better an approach for overriding what is baked into the code.
* tui: Combine multiple attribute changes.Jonathan de Boyne Pollard2017-06-05
| | | | | Use the terminfo set_attribute capability to set multiple attributes in one control sequence, if it is available.
* tui: Remove the iTerm2 corner case.Jonathan de Boyne Pollard2017-06-04
|
* tui: Do not optimize left motion at the right margin.Jonathan de Boyne Pollard2017-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From observation, there are several different possible behaviours: 1. Deferred wrap like a real DEC VT. The cursor stays visible in the last column, and CUB is calculated relative to that column. Examples: xterm, Unicode rxvt, PuTTY, nosh console-terminal-emulator, FreeBSD kernel's built-in emulator, Linux's built-in emulator 2. Deferred wrap like a real DEC VT. CUB is calculated relative to the last column. But the cursor is invisible. Examples: emulators using newer libvte 3. Non-deferred wrap. The cursor has already wrapped to the next line and CUB does not wrap back. Examples: cygwin, Interix 4. Non-deferred wrap that acts like deferred wrap. The cursor has already visibly wrapped to the next line, but CUB can wrap back around the left margin. Examples: Konsole 5. Deferred wrap with visibly out of bounds cursor. The cursor visibly moves outwith the screen boundaries. CUB is calculated relative to a cursor column that has overflowed the end of the screen grid array. Examples: iTerm2 6. Deferred wrap with invisibly out of bounds cursor. CUB is calculated relative to a cursor column that has overflowed the end of the screen grid array. And the cursor is invisible. Examples: emulators using older libvte In many cases, nvim does not have enough information to know which behaviour the terminal will exhibit, and thus the correct amount of CUB to issue.
* tui: Treat cygwin as an immediate-wrap terminal.Jonathan de Boyne Pollard2017-06-03
| | | | Alongside interix.
* tui: Add tmux to the always 256-colour capable list.Jonathan de Boyne Pollard2017-06-03
|
* tui: Add terminfo patches for linux on MacOS.Jonathan de Boyne Pollard2017-06-03
| | | | | Also enable italics on Konsole when it is falsely claiming to be xterm. Also note the reasons for some of the patcher terminfo patches.
* tui: Coding style changes only.Jonathan de Boyne Pollard2017-06-03
|
* tui: Do some deferred wrap on iTerm2.Jonathan de Boyne Pollard2017-06-03
| | | | | | Partly undo 8ab08a65ba3bc9a44741a2ec9aa81fbcc77467fb. Further testing by Enrico Ghirardi suggests limiting the non-deferred automatic wrap to only the bottom line, whose rightmost column is not printed for iTerm.
* tui: Several minor tweaks per commentary and 256-colourize PuTTY.Jonathan de Boyne Pollard2017-06-03
| | | | | * Don't use &data->grid when we already have grid . * Consolidate into a single assignment to the default_attr flag.
* tui: Coding style changes onlyJonathan de Boyne Pollard2017-06-03
|
* tui: Separate out built-in terminfo records.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | | They are now in their own nvim/tui/terminfo.c file. Also turn the TERMINAL_FAMILY macro into a function. Use the terminfo_ prefix for its name as other parts of the program are unlikely to want that namespace, and the prefix is already used for some other TUI functions.
* tui: Handle a corner case for rare terminals.Jonathan de Boyne Pollard2017-06-03
| | | | | Terminals that do not defer automatic right margin wrap cannot print characters in the bottom right corner without immediately scrolling.
* tui: Make iTerm2 have no deferred wrap.Jonathan de Boyne Pollard2017-06-03
| | | | | | Testing by Enrico Ghirardi and review of the source indicates that iTerm2 is a second terminal emulator that does not defer automatic wrap at the right margin.
* tui: Fix OBOE in linux cnorm capability fixup code.Jonathan de Boyne Pollard2017-06-03
|
* tui: Change screen status line back to hardstatus.Jonathan de Boyne Pollard2017-06-03
| | | | Reverse the change in c11c60325a2baba94abe6bdfa1c11afe28c16661.
* tui: Char signedness fix for the big blocks of (signed) numbers.Jonathan de Boyne Pollard2017-06-03
|
* tui: Correct to_status_line for screen.Jonathan de Boyne Pollard2017-06-03
| | | | | | | | PM...ST actually sends the string to screen's message area. Sending the string to the status line requires a different control sequence peculiar to screen. Also make iTerm2 SGR 38/48 consistent.
* tui: Add built-in terminfo entry for VTE.Jonathan de Boyne Pollard2017-06-03
| | | | | Also slightly refactor the way in which GNOME/MATE Terminal pretending to be xterm is detected.
* tui: Perform length safety check in comparison macros.Jonathan de Boyne Pollard2017-06-03
|
* tui: Treat genuine Xterm and iTerm.app as standards-conformant.Jonathan de Boyne Pollard2017-06-03
| | | | | They both can handle SGR control sequences in the form set out in ISO 8613-6:1994/ITU T.416:1993.
* tui: Change terminal family recognition to avoid '+' entries.Jonathan de Boyne Pollard2017-06-03
| | | | | The terminfo commentary states that these are not standalone entries suitable for end-use.
* tui: Add st to the always 256-colour capable list.Jonathan de Boyne Pollard2017-06-03
| | | | Also comment and augment some terminal colour tests.
* tui: Fix Interix and account for deferred wrap.Jonathan de Boyne Pollard2017-06-03
| | | | | | | The Interix termcap entry is missing the carriage_return capability which nvim relies upon. And Interix is one of the few terminal emulators that does not defer automatic wrap at the right margin, which is now accounted for when moving the cursor left and when outputting whole lines at a time.
* tui: Add iTerm and rxvt to the terminals that know extended DECSCUSR.Jonathan de Boyne Pollard2017-06-03
|
* tui: Correct error in terminfo extension processing.Jonathan de Boyne Pollard2017-06-03
| | | | | Using the right unibilium query function then revealed a latent NULL pointer problem.
* tui: Correct error in terminfo extension processing.Jonathan de Boyne Pollard2017-06-03
| | | | | Using the wrong unibilium query function just happened to work with the various terminfo records used in local testing.
* tui: Remove now-unused flag variable.Jonathan de Boyne Pollard2017-06-03
| | | | Follows on from fcf0d13f48bffbd41749069ce383d01153dd960c.