| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Example assertion failure:
%0 in logmsg neovim/src/nvim/log.c:139:17
%1 in ui_call_update_menu neovim/build/src/nvim/auto/ui_events_call.generated.h:8:3
%2 in ex_menu neovim/src/nvim/menu.c:263:3
%3 in do_one_cmd neovim/src/nvim/ex_docmd.c:1981:5
%4 in do_cmdline neovim/src/nvim/ex_docmd.c:602:20
%5 in do_cmdline_cmd neovim/src/nvim/ex_docmd.c:287:10
%6 in free_all_mem neovim/src/nvim/memory.c:596:3
%7 in os_exit neovim/src/nvim/main.c:574:3
%8 in exit_event neovim/src/nvim/msgpack_rpc/channel.c:569:5
|
| |
|
|
|
|
|
|
|
|
|
| |
before the behaviour of 'mouse' was inconsistent in external UI,
as some remapping logic would check has_mouse() and others don't
(no difference in TUI or vim classic). With this change, the behaviour
is consistently up to the UI decide (see ui.txt edit)
Behaviour of tui.c is unaffected by this change.
|
| |
|
|
|
|
| |
return first extui bounds information instead of reducing
|
| |
|
| |
|
|
|
|
| |
CompleteChanged
|
| |
|
| |
|
|
|
|
|
| |
"enter"/"leave" is more conventional for Vim events, and
"attach"/"detach" distinction does not gain much.
|
|
|
|
|
| |
Even though it's always zero currently, it's less confusing if all UIs
have the same fields.
|
|
|
|
|
| |
doc: ginit.vim, gvimrc
fix #3656
|
|\
| |
| | |
Fix some keys not working in ext_popupmenu
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
add proper msg_set_pos event, delet win_scroll_over_*
make compositor click through unfocusable grids
add MsgArea attribute for the message/cmdline area, and add docs and tests
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before now, Nvim always degrades UI capabilities to the lowest-common
denominator. For example, if any connected UI has `ext_messages=false`
then `ext_messages=true` requested by any other connected UI is ignored.
Now `nvim_ui_attach()` supports `override=true`, which flips the
behavior: if any UI requests an `ext_*` UI capability then the
capability is enabled (and the legacy behavior is disabled).
Legacy UIs will be broken while a `override=true` UI is connected, but
it's useful for debugging: you can type into the TUI and observe the UI
events from another connected (UI) client. And the legacy UI will
"recover" after the `override=true` UI disconnects.
Example using pynvim:
>>> n.ui_attach(2048, 2048, rgb=True, override=True, ext_multigrid=True, ext_messages=True, ext_popupmenu=True)
>>> while True: n.next_message();
|
| |
|
|
|
|
| |
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
|
|
|
|
| |
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
|
|
|
|
|
| |
But add an escape hatch needed for external TUI, so it still can use
terminal emulator defaults.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Initially we will use this for the popupmenu, floating windows will
follow soon
NB: writedelay + compositor is weird, we need more flexible
redraw introspection.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Adjustment will get more complex with floats, tabgrid etc,
so make it into a function.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Throttle win_position events
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Problem: Various typos.
Solution: Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887)
https://github.com/vim/vim/commit/b9464821901623f983528acaed9e4dc2cea7387b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when neovim would wrap a line across multiple lines,
terminal emulators could not detect that the lines represent a single
wrapped line as opposed to several separate lines. As a result, many
terminals' selection/copying functionality would treat a wrapped line as
several newline-delimited lines.
Fix this by reenabling a "special trick" from Vim. When a line is
wrapped, write the last character of that line followed by the first
character of the next line to the terminal. This hints to the terminal
that the next line is a continuation of the current line.
Extends the raw_line event with a "wrap" parameter which controls when
to do wrap hinting.
|
|
|
|
|
| |
As attribute ids is the convention in the UI protocol
Also remove non-threadsafe calls in tui.c to syntax module.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add ext_newgrid and ext_hlstate extensions. These use predefined
highlights and line-segment based updates, for efficiency and
simplicity.. The ext_hlstate extension in addition allows semantic
identification of builtin and syntax highlights.
Reimplement the old char-based updates in the remote UI layer, for
compatibility. For the moment, this is still the default. The bulitin
TUI uses the new line-based protocol.
cmdline uses curwin cursor position when ext_cmdline is active.
|
|
|
|
| |
Note: this has not been working since the TUI reimplementation
|
|
|
|
|
| |
This allows us to keep track of the source higlight groups,
and not only the final combined highlights.
|
| |
|