aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/ui_events.in.h
Commit message (Collapse)AuthorAge
* refactor: replace manual header guards with #pragma oncedundargoc2023-11-12
| | | | | It is less error-prone than manually defining header guards. Pretty much all compilers support it even if it's not part of the C standard.
* fix(tui): don't overwrite an assertion faliure message on exitbfredl2023-09-21
| | | | | | | | | | | | | | | If nvim exited with nonzero status this is for one of the two reasons - `:cquit` was invoked. This is used by users and plugins to communicate a result, like a nonzero status will fail a `git commit` operation - There was an internal error or deadly signal. in this case an error message was likely written to stderr or to the screen. In the latter case, the error message was often hidden by the TUI exiting altscreen mode, which erases all visible terminal text. This change prevents this in the latter case, while still cleaning up the terminal properly when `:cquit` was deliberatily invoked. Other cleanup like exiting mouse mode and raw mode is still done.
* fix(ui): propagate line wrapping state on grid_line eventsRicky Zhou2023-06-05
| | | | | | This fixes the TUI's line-wrapping behavior, which was broken with the migration to the msgpack-based UI protocol (see https://github.com/neovim/neovim/issues/7369#issuecomment-1571812273).
* feat(ui): add scroll_delta to win_viewport event #19270Matthias Deiml2023-03-12
| | | | | | | | | | scroll_delta contains how much the top line of a window moved since the last time win_viewport was emitted. It is expected to be used to implement smooth scrolling. For this purpose it only counts "virtual" or "displayed" so folds should count as one line. Because of this it adds extra information that cannot be computed from the topline parameter. Fixes #19227
* refactor(ui): devirtualize the ui layerbfredl2023-01-05
| | | | | | | | | | | | | | | | | - The defined interface for the UI is only the RPC protocol. The original UI interface as an array of function pointers fill no function. - On the server, all the UI:s are all RPC channels. - ui.c is only used on the server. - The compositor is a preprocessing step for single-grid UI:s - on the client, ui_client and tui talk directly to each other - we still do module separation, as ui_client.c could form the basis of a libnvim client module later. Items for later PR:s - vim.ui_attach is still an unhappy child, reconsider based on plugin experience. - the flags in ui_events.in.h are still a mess. Can be simplified now. - UX for remote attachment needs more work. - startup for client can be simplified further (think of the millisecs we can save)
* feat(tui): run TUI as external processhlpr982022-12-31
|
* refactor(uncrustify): improved formatting rulesdundargoc2022-10-21
|
* feat(lua): vim.ui_attach to get ui events from luabfredl2022-08-31
| | | | Co-authored-by: Famiu Haque <famiuhaque@protonmail.com>
* perf(ui): reduce allocation overhead when encoding "redraw" eventsbfredl2022-06-20
| | | | | | | | | | | | | | | | | Note for external UIs: Nvim can now emit multiple "redraw" event batches before a final "flush" event is received. To retain existing behavior, clients should make sure to update visible state at an explicit "flush" event, not just the end of a "redraw" batch of event. * Get rid of copy_object() blizzard in the auto-generated ui_event layer * Special case "grid_line" by encoding screen state directly to msgpack events with no intermediate API events. * Get rid of the arcane notion of referring to the screen as the "shell" * Array and Dictionary are kvec_t:s, so define them as such. * Allow kvec_t:s, such as Arrays and Dictionaries, to be allocated with a predetermined size within an arena. * Eliminate redundant capacity checking when filling such kvec_t:s with values.
* feat(ui): clear message history explicitly with msg_history_clear eventdevbhan singh2022-05-21
|
* feat(api/ui): win_extmarksYatao Li2022-05-03
|
* refactor(ui): make ui_client_event_grid_line typesafebfredl2022-03-15
|
* feat(ui): implement ui_client event handlershlpr982022-03-15
|
* feat(api): win_viewport also sends line_count #15613Yatao Li2021-09-10
|
* [RDY] Add buffer information to tabline_update (#12481)John Gehrig2021-06-27
| | | | | | | | | | * Add buffer information to tabline_update Most terminal implementations of the tabline display buffer and tab information. Many neovim-qt users disable GuiTabline because it lacks functionality provided in the terminal implementation. The tabline_update event should include buffer information too, so client GUIs can display rich useful tabs.
* floats: z-indexBjörn Linse2021-05-15
|
* Fix multiple typos (#13063)Hansraj Das2020-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix multiple typos in `src/nvim/api/ui_events.in.h` * Below spellings are corrected: * Definitions * Revision * Performance * Typo fix `presense` should be presence * Typo fix, follwed -> followed * Typo fix, attemping -> attempting * Typo fix, duplicate 'the' * Typo fix, bounaries -> boundaries * Revert "Typo fix, bounaries -> boundaries" This reverts commit 24779e55e596f7534585938a7e532830ad2fa83c. * Revert "Typo fix, duplicate 'the'" This reverts commit 1d41d74f78736e67821a15edc9c174a2c3024f87. * Revert "Typo fix, attemping -> attempting" This reverts commit d8b2860dfcac366af7afae1f09946ed0aee4a34e.
* nvim__screenshotBjörn Linse2020-09-05
|
* api/ui: win_viewport event for visible range and cursor position in windowBjörn Linse2020-04-01
|
* screen: use dedicated message gridBjörn Linse2019-09-01
| | | | | | | | 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
* ui: use Window type in win_pos consistently with win_float_posBjörn Linse2019-08-17
| | | | Also check invalid positional arguments to screen:expect()
* highlight: expose builtin highlight groups using hl_group_set eventBjörn Linse2019-07-14
|
* Allow using internal popupmenu or ext_popupmenu for wildmenuBjörn Linse2019-03-16
| | | | | Deprecate ext_wildmenu. ext_popupmenu already contains more state (anchor position), and will allow further expansion (info about items).
* floats: implement floating windowsBjörn Linse2019-03-02
| | | | Co-Author: Dongdong Zhou <dzhou121@gmail.com>
* ui: implement ext_messagesBjörn Linse2019-02-10
| | | | Co-Author: Dongdong Zhou <dzhou121@gmail.com>
* ui/compositor: add redraws needed due to intersected doublewidth chars.Björn Linse2019-02-02
|
* UI: add "compositor" layer to merge grids for TUI use in a correct wayBjörn Linse2019-02-02
| | | | | | | | Initially we will use this for the popupmenu, floating windows will follow soon NB: writedelay + compositor is weird, we need more flexible redraw introspection.
* multigrid: API version bumpBjörn Linse2018-12-31
|
* multigrid: rename event to win_pos, make grid firstBjörn Linse2018-12-31
|
* multigrid: add msg_scroll_start and msg_scroll_reset eventsBjörn Linse2018-12-31
|
* multigrid: send win_hide events when changing tabpageBjörn Linse2018-12-31
|
* multigrid: use grid-based coordinates for ext_popupmenuBjörn Linse2018-12-31
|
* multigrid: Add win_position eventUtkarsh Maheshwari2018-12-31
| | | | Throttle win_position events
* multigrid: Change screen_* functions to grid_* functionsUtkarsh Maheshwari2018-12-31
|
* api/ui: verify compatibility of UI eventsBjörn Linse2018-10-21
|
* ui: rename ext_newgrid to ext_linegridBjörn Linse2018-10-01
|
* ui: use line-based rather than char-based updates in screen.cBjörn Linse2018-07-21
| | | | | | | | | | | | | 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.
* tui: handle termguicolors rgb value in bridge for nowBjörn Linse2018-06-02
| | | | | When/if TUI/bridge teardown is refactored to use events, this commit can be reverted.
* ui_events: correct wrong argument orderBjörn Linse2018-04-17
|
* ui/tui: highlighting refactorBjörn Linse2018-02-11
| | | | | | | | 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.
* ui: forward relevant option updates to UIs (#7520)Björn Linse2017-12-12
| | | also make termguicolors mutable after startup
* Merge #7454 'ui: ext_wildmenu'Justin M. Keyes2017-10-31
|\ | | | | | | | | closes #6168 ref #5686
| * ui: allow external ui to draw wildmenuDongdong Zhou2017-10-29
|/ | | | | Co-authored-by: Björn Linse <bjorn.linse@gmail.com> Updated docs and tests.
* ext_cmdline: rename cmdline_char to cmdline_special_charBjörn Linse2017-10-26
|
* ext_cmdline: extend "function" to generic "block" mechanismBjörn Linse2017-10-26
|
* ext_cmdline: lintDongdong Zhou2017-10-26
|
* ext_cmdline: added indentDongdong Zhou2017-10-26
|
* ext_cmdline: Add function block supportDongdong Zhou2017-10-26
|
* ext_cmdline: added cmdline levelDongdong Zhou2017-10-26
| | | | add cchar_to_string
* ext_cmdline: change to use ui_callDongdong Zhou2017-10-26
|