| Commit message (Collapse) | Author | Age |
... | |
|\
| |
| | |
vim-patch:8.1.1318: code for text changes is in a "misc" file
|
| | |
|
|/
|
| |
fix #10696
|
|\
| |
| | |
make terminal state redraw like any other state
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, ordinary redraws were missing from terminal mode. Instead,
there was an async callback that invoked update_screen() on terminal
data regardless of mode (as if :redraw! was invoked by a timer).
This created some issues:
- async changes to an unrelated ordinary buffer were not always redrawn in
terminal mode
- screen cursor position was not properly updated in terminal mode (partial
fix, will be properly fixed in a follow up PR)
- ad-hoc logic was needed for interaction with special states such as
inccommand or horizontal wildmenu.
Instead redraw terminal mode just like any other state. This disables forced
redraws in cmdline mode, which were inconisent which async changes to
normal buffers (which are not redrawn in cmdline mode).
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
Problem: Using `:stopinsert` while in normal mode in a terminal buffer
prevents neovim from entering insert mode.
Solution: Move `stop_insert_mode = false` from terminal_check to
terminal_enter to be consistent with edit.c, as suggested by bfredl in
#9889.
Closes https://github.com/neovim/neovim/issues/9889.
|
|
|
|
|
|
|
|
|
| |
Problem: Calling :stopinsert from RPC while in terminal-mode does not
go back to normal-mode.
Solution: Implement a check() handler for state_enter(), adapted from
insert_check().
Fix #7807
|
|
|
| |
Window may disappear, see e7e2115de5c1.
|
|
|
|
|
|
|
|
|
| |
- input: recognize <kEqual>, <kComma>
- terminal.c: If we need to support function key, a change must be made
in libvtermkey. Currently, it emulates strictly VT220 terminal, and
returning numeric value in 'normal' mode is the expected behaviour.
closes #9810
|
| |
|
|
|
|
|
|
| |
TermOpen autocmd may set local 'scrollback' to -1, this needs to be
adjusted as in on_scrollback_option_changed().
fixes #9588 (OOM, out of memory)
|
|
|
|
|
|
|
|
|
| |
Makes the 'scrollback' option more consistent (same default for all buffers) and future-proof.
- Default to -1 for all buffers, but treat it as an implementation detail.
- Document range of 1 - 100_000.
- New terminal buffer by default sets scrollback=10_000 if the global default is -1.
- Existing terminal buffer: On entering terminal-mode or on refresh, if the user explicitly did `:set[local] scbk=-1`, the local value goes to 100_000 (max). (This is undocumented on purpose. Users should work with explicit values in the range of 1-100_000.)
|
|
|
|
|
| |
closes #8324
closes #8556
|
| |
|
|
|
|
|
|
|
| |
wp->w_height_inner now contains the "inner" size, regardless if the
window has been drawn yet or not. It should be used instead of
wp->w_grid.Rows, for stuff that is not directly related to accessing
the allocated grid memory, such like cursor movement and terminal size
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Note about shada.c:
- shada_read_next_item_start was intentionally shadowing `unpacked` and
`i` because many of the macros (e.g. ADDITIONAL_KEY) implicitly
depended on those variable names.
- Macros were changed to parameterize `unpacked` (but not `i`). Macros
like CLEAR_GA_AND_ERROR_OUT do control-flow (goto), so any other
approach is messy.
|
|
|
|
|
|
|
| |
terminal_get_line_attributes() had this bug for a long time, though it
likely had no effect visible to users.
ref #9028
ref 60f845ca55a1
|
|
|
|
|
| |
Rename get_term_attr_entry to hl_get_term_attr, similar to
hl_get_syn_attr, hl_get_ui_attr.
|
|
|
|
|
|
|
|
| |
The statusline may incorporate b:term_title, so redraw it when that
title changes.
Introduce a new function status_redraw_buf to redraw windows associated
with the current buffer.
|
|
|
|
| |
Follow-up of vim-patch:8.0.1215
|
|
|
|
|
| |
This allows us to keep track of the source higlight groups,
and not only the final combined highlights.
|
| |
|
|
|
|
| |
closes #8575
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Originally written by @phodge in
https://github.com/neovim/neovim/pull/5269.
|
|/
|
|
|
|
|
|
|
|
|
| |
Fixes #4151
libvterm uses an "output buffer" for terminal reporting
(e.g. \e[6n to report cursor position)
Flush it in on_channel_output() not just terminal_send_key()
See also this line from pangoterm:
https://bazaar.launchpad.net/~leonerd/pangoterm/trunk/view/607/pangoterm.c#L2159
|
|
|
|
|
| |
Fire autocmd when channel opens or its info changes.
Add a way for API clients can describe themselves.
|
| |
|
|
|
| |
ref #6796
|
|
|
| |
fix #5584
|
|
|
| |
fixes #8290
|
|
|
|
| |
closes #8096
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Make HlAttr contain highlighting state for both color modes (cterm and rgb).
This allows us to implement termguicolors completely in the TUI.
Simplify some logic duplicated between ui.c and screen.c. Also avoid
some superfluous highlighting reset events.
|
|
|
|
|
|
|
|
|
|
|
| |
The old behavior is probably not justified, for the usual reason:
terminal buffers may have interactive processes, so cursor placement is
arbitrary, therefore tracking it in the jumplist is useless (or worse).
N.B.: per the docstring for `checkpcmark()` it looks like we were
calling `checkpcmark()` and `setpcmark()` in the wrong order.
closes #3723
|
|
|
|
|
| |
terminal: libvterm now receives data in async context. This was "almost" safe
already, as redraws were queued anyway.
|
|
|
|
| |
ref #5321
|
|
|
|
|
|
|
|
|
|
|
| |
normal_redraw() usually takes care of this, but that doesn't happen
during terminal-mode.
regression by c484323dc67f
steps to reproduce:
nvim -u NORC --cmd 'execute("set titlestring=" . $NVIM_LISTEN_ADDRESS) | set title | startinsert | !sleep 1' term://sh
closes #7248
|
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
closes #3101
closes #4343
closes #5024
closes #5925
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|