aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui.c
Commit message (Collapse)AuthorAge
* fix(ui): don't log from UI events during free_all_mem()Björn Linse2021-09-14
| | | | | | | | | | | | | | 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
* screen: setup scrolling main screen when starting with display-=msgsepBjörn Linse2021-03-23
|
* ui: make 'mouse' handling in external UI more consistentBjörn Linse2021-01-01
| | | | | | | | | 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.
* api/ui: simplify popup menu position get/set logic; fix testYatao Li2020-04-28
|
* api/ui: allow set bounds row and col to be less than 0; ui_pum_get_pos: ↵Yatao Li2020-04-28
| | | | return first extui bounds information instead of reducing
* external pum: use floating point geometry; typval: add tv_dict_add_floatYatao Li2020-04-28
|
* ui_pum_get_pos: return internal pum position if external pum pos not foundYatao Li2020-04-28
|
* API/UI: Allow UI to set PUM position and size, and pass the position to ↵Yatao Li2020-04-28
| | | | CompleteChanged
* api/ui: win_viewport event for visible range and cursor position in windowBjörn Linse2020-04-01
|
* ui_grid_resize: fix resize logic for floating window #11655Ville Hakulinen2020-01-06
|
* rename: UIAttach/UIDetach => UIEnter/UILeaveJustin M. Keyes2019-09-12
| | | | | "enter"/"leave" is more conventional for Vim events, and "attach"/"detach" distinction does not gain much.
* API/nvim_list_uis(): include "chan" field for TUIJustin M. Keyes2019-09-12
| | | | | Even though it's always zero currently, it's less confusing if all UIs have the same fields.
* UIAttach, UIDetachJustin M. Keyes2019-09-12
| | | | | doc: ginit.vim, gvimrc fix #3656
* Merge pull request #10475 from erw7/fix-ext-popupmenuBjörn Linse2019-09-08
|\ | | | | Fix some keys not working in ext_popupmenu
| * Add nvim_ui_pum_set_height to apierw72019-09-08
| |
* | refactor: allow us to process a child queue only while waiting on inputBjörn Linse2019-09-08
|/
* 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
* events: loop_schedule() is unclear, rename it loop_schedule_fast()Björn Linse2019-08-31
|
* ui: add 'redrawdebug' option for flexible debugging of redrawingBjörn Linse2019-07-09
|
* window: allow resize wincmds for floatsBjörn Linse2019-07-08
|
* UI/nvim_ui_attach(): add `override` optionJustin M. Keyes2019-05-09
| | | | | | | | | | | | | | | | | | | | 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();
* api: add width/height to FloatConfigMarco Hinz2019-03-16
|
* 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: always use contrete colors for default_colors_setBjörn Linse2019-02-05
| | | | | But add an escape hatch needed for external TUI, so it still can use terminal emulator defaults.
* rename ui_is_external to ui_has (#9576)Justin M. Keyes2019-02-03
|
* 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.
* terminal: handle size when switching buffers in windowBjörn Linse2019-01-27
|
* window/ui: reorganize size variables, fix terminal window size with multigrid.Björn Linse2019-01-27
| | | | | | | 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
* ui: multigrid mouse supportBjörn Linse2019-01-20
|
* build: enable -WshadowJustin M. Keyes2019-01-02
| | | | | | | | | | 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.
* multigrid: do all adjustment in screen.cBjörn Linse2019-01-01
| | | | | Adjustment will get more complex with floats, tabgrid etc, so make it into a function.
* multigrid: rename grid->ScreenLines and other grid arraysBjörn Linse2018-12-31
|
* multigrid: rename to grid.row_offset and grid.requested_rowsBjörn Linse2018-12-31
|
* multigrid: reorganize types and global varaiblesBjörn Linse2018-12-31
|
* multigrid: Fix lint errorsUtkarsh Maheshwari2018-12-31
|
* multigrid: Fix sending window grid handle in ext_newline modeUtkarsh Maheshwari2018-12-31
|
* multigrid: Put everything on default_grid if not ext_multigridUtkarsh Maheshwari2018-12-31
|
* multigrid: Add win_position eventUtkarsh Maheshwari2018-12-31
| | | | Throttle win_position events
* multigrid: Allow UIs to set grid size different from window sizeUtkarsh Maheshwari2018-12-31
|
* multigrid: Change screen_* functions to grid_* functionsUtkarsh Maheshwari2018-12-31
|
* log: rename do_log to logmsgJustin M. Keyes2018-09-19
|
* vim-patch:8.0.1809: various typosJan Edmund Lazo2018-09-11
| | | | | | Problem: Various typos. Solution: Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887) https://github.com/vim/vim/commit/b9464821901623f983528acaed9e4dc2cea7387b
* tui: Hint wrapped lines to terminals.Ricky Zhou2018-09-03
| | | | | | | | | | | | | | | | 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.
* cursor_shape: use attribute ids instead of syntax idsBjörn Linse2018-08-13
| | | | | As attribute ids is the convention in the UI protocol Also remove non-threadsafe calls in tui.c to syntax module.
* 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.
* ui: add TODO for non-working terminal linewrapBjörn Linse2018-07-21
| | | | Note: this has not been working since the TUI reimplementation
* highlight: refactor to use stateful representationBjörn Linse2018-07-21
| | | | | This allows us to keep track of the source higlight groups, and not only the final combined highlights.
* highlight: extract low-level highlight logic from syntax, uiBjörn Linse2018-07-21
|