aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/window.c
Commit message (Collapse)AuthorAge
...
* vim-patch:8.2.5043: can open a cmdline window from a substitute expressionzeertzjq2022-07-07
| | | | | | | Problem: Can open a cmdline window from a substitute expression. Solution: Disallow opening a command line window when text or buffer is locked. https://github.com/vim/vim/commit/71223e2db87c2bf3b09aecb46266b56cda26191d
* refactor: replace char_uDundar Goc2022-07-02
| | | | Work on https://github.com/neovim/neovim/issues/459
* vim-patch:9.0.0017: accessing memory beyond the end of the linezeertzjq2022-07-02
| | | | | | Problem: Accessing memory beyond the end of the line. Solution: Stop Visual mode when closing a window. https://github.com/vim/vim/commit/3d51ce18ab1be4f9f6061568a4e7fabf00b21794
* cmdheight=0: fix bugs #18961Shougo2022-06-30
| | | | | | | | | | | | Continue of #16251 Fix #18953 Fix #18960 Fix #18958 Fix #18955 Fix #18970 Fix #18983 Fix #18995 Fix #19112
* refactor: move some mapping-related code to a separate file (#19061)zeertzjq2022-06-23
| | | | | | | | | | | | | | | | | | | This marks the following Vim patches as ported: vim-patch:8.1.1785: map functionality mixed with character input Problem: Map functionality mixed with character input. Solution: Move the map functionality to a separate file. (Yegappan Lakshmanan, closes vim/vim#4740) Graduate the +localmap feature. https://github.com/vim/vim/commit/b66bab381c8ba71fd6e92327d1d34c6f8a65f2a7 vim-patch:8.2.3643: header for source file is outdated Problem: Header for source file is outdated. Solution: Make the header more accurate. (closes vim/vim#9186) https://github.com/vim/vim/commit/a3f83feb63eae5464a620ae793c002eb45f7a838 Also cherry-pick a change for <unique> mappings from patch 8.2.0807. Rename map_clear_mode() to do_mapclear().
* 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.
* fix(ui): do not call showmode() when setting window height (#18969)zeertzjq2022-06-15
|
* vim-patch:8.2.1898: command modifier parsing always uses global cmdmodzeertzjq2022-06-14
| | | | | | Problem: Command modifier parsing always uses global cmdmod. Solution: Pass in cmdmod_T to use. Rename struct fields consistently. https://github.com/vim/vim/commit/e10044015841711b989f9a898d427bcc1fdb4c32
* feat: cmdheight=0 #16251Shougo2022-06-13
| | | | | | | | | Fix https://github.com/neovim/neovim/issues/1004 Limitation: All outputs need hit-enter prompt. Related: https://github.com/neovim/neovim/pull/6732 https://github.com/neovim/neovim/pull/4382
* fix(buffer): disable buffer-updates before removing from window #18933zeertzjq2022-06-12
| | | | | | | | There can be other places that access window buffer info (e.g. `tabpagebuflist()`), so checking `w_closing` in `win_findbuf()` doesn't solve the crash in all cases, and may also cause Nvim's behavior to diverge from Vim. Fix #14998
* vim-patch:8.2.5066: lcs-leadmultispacezeertzjq2022-06-09
| | | | https://github.com/vim/vim/commit/aca12fd89b082dd9cc12ae085a84f1805747bbdf
* fix(inccommand): avoid crash if callback changes inccommand option (#18830)zeertzjq2022-06-02
| | | | | | | | | clang: Result of operation is garbage or undefined clang: Uninitialized argument value Also check for == 's' instead of != 'n' as it is more straightforward. Also fix another unrelated PVS warning: PVS/V1071: Return value of win_comp_pos() is not always used
* fix(winbar): set w_winrow_off when initializing firstwin size (#18793)zeertzjq2022-05-29
|
* fix(winbar): only allow adding winbar when there is spaceFamiu Haque2022-05-28
|
* fix(winbar): fix winbar disappear or glitch when moving a split (#18775)zeertzjq2022-05-28
|
* fix(ui): require window-local value to show winbar on floating windows (#18773)Famiu Haque2022-05-28
| | | | | | | Previously, there was a bug where setting the local value of 'winbar' to itself would cause winbar to appear on a floating window, which is undesirable. This fix makes it so that it's explicitly required for the window-local value of 'winbar' for a floating window to be set in order for winbar to be shown on that window.
* refactor(uncrustify): set maximum number of consecutive newlines to 2 (#18695)dundargoc2022-05-25
|
* fix(ui): redraw winbar alongside statuslineFamiu Haque2022-05-23
| | | | | Remove `w_redr_winbar` and use `w_redr_status` to redraw the winbar to ensure that winbar redraw is triggered alongside the statusline redraw.
* feat: click support for 'statusline', 'winbar' #18650Famiu Haque2022-05-23
| | | | The mouseclick item "%@" is now supported by 'statusline' and 'winbar'. Previously it was only supported by 'tabline'.
* Merge pull request #18629 from famiu/fix/ui/winbarbfredl2022-05-19
|\ | | | | fix(ui): make `winbar` properly equalize window heights for local value
| * fix(ui): make `winbar` properly equalize window heights for local valueFamiu Haque2022-05-19
| | | | | | | | | | Fixes `'winbar'` not properly equalizing window heights for splits when the global value is empty and a window-local value is set instead.
* | vim-patch:8.2.4979: accessing freed memory when line is flushed (#18634)zeertzjq2022-05-19
| | | | | | | | | | Problem: Accessing freed memory when line is flushed. Solution: Make a copy of the pattern to search for. https://github.com/vim/vim/commit/28d032cc688ccfda18c5bbcab8b50aba6e18cde5
* | fix(ui): make winbar work with floats and multigridbfredl2022-05-18
| |
* | refactor: move more grid functions to grid.c. Clean up some variablesbfredl2022-05-18
|/
* feat(ui): add `'winbar'`Famiu Haque2022-05-18
| | | | | | | Adds support for a bar at the top of each window, enabled through the `'winbar'` option. Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
* refactor: replace char_u variables and functions with charDundar Goc2022-05-16
| | | | Work on https://github.com/neovim/neovim/issues/459
* refactor: replace char_u variables and functions with charDundar Goc2022-05-11
| | | | Work on https://github.com/neovim/neovim/issues/459
* vim-patch:8.2.4911: the mode #defines are not clearly named (#18499)zeertzjq2022-05-10
| | | | | | | | Problem: The mode #defines are not clearly named. Solution: Prepend MODE_. Renumber them to put the mapped modes first. https://github.com/vim/vim/commit/249591057b4840785c50e41dd850efb8a8faf435 A hunk from the patch depends on patch 8.2.4861, which hasn't been ported yet, but that should be easy to notice.
* refactor: replace char_u variables and functions with charDundar Goc2022-05-09
| | | | Work on https://github.com/neovim/neovim/issues/459
* refactor(grid): move out grid_* functions from screen.cbfredl2022-05-08
| | | | | Also normalize some types. use "size_t" for unsigned array offsets. Fix -Wconversion issues missed as screen.c is missing this check.
* refactor: replace char_u variables and functions with charDundar Goc2022-05-07
| | | | Work on https://github.com/neovim/neovim/issues/459
* Merge pull request #18314 from tk-shirasaka/global-statusline-on-ext_messagesbfredl2022-05-05
|\ | | | | fix: display global statusline correctly with ext_messages
| * fix: display global statusline correctly with ext_messagesshirasaka2022-05-05
| |
* | vim-patch:8.2.4868: when closing help window autocmds triggered for wrong ↵zeertzjq2022-05-05
|/ | | | | | | window (#18420) Problem: When closing help window autocmds triggered for the wrong window. Solution: Figure out the new current window earlier. (closes vim/vim#10348) https://github.com/vim/vim/commit/2a2707d03337d0bb7d5fd1770238809618653d4a
* refactor: replace char_u variables and functions with charDundar Goc2022-04-30
| | | | Work on https://github.com/neovim/neovim/issues/459
* refactor(uncrustify): change rules to better align with the style guideDundar Goc2022-04-29
| | | | | | | | | | | | | Add space around arithmetic operators '+' and '-'. Remove space between back-to-back parentheses, i.e. ')(' vs. ') ('. Remove space between '((' or '))' of control statements. Add space between ')' and '{' of control statements. Remove space between function name and '(' on function declaration. Collapse empty blocks between '{' and '}'. Remove newline at the end of the file. Remove newline between 'enum' and '{'. Remove newline between '}' and ')' in a function invocation. Remove newline between '}' and 'while' of 'do' statement.
* revert: "refactor: Remove allow_keys global (#6346)"zeertzjq2022-04-29
|
* vim-patch:8.2.2476: using freed memory when splitting window while closing ↵zeertzjq2022-04-21
| | | | | | | | | | | | | buffer Problem: Using freed memory when using an autocommand to split a window while a buffer is being closed. Solution: Disallow splitting when the buffer has b_locked_split set. https://github.com/vim/vim/commit/983d83ff1cd796ff321074335fa53fbe7ac45a46 Put the error message in window.c. Cherry-pick a memory leak fix from Vim patch 8.2.0399. Test still fails.
* vim-patch:8.1.1756: autocommand that splits window messes up window layoutzeertzjq2022-04-21
| | | | | | | | | | | Problem: Autocommand that splits window messes up window layout. Solution: Disallow splitting a window while closing one. In ":all" give an error when moving a window will not work. https://github.com/vim/vim/commit/1417c766f55e5959b31da488417b7d9b141404af Expected error number was changed to E242 in Vim in patch 8.2.1183, and patch 8.2.2420 (which has already been ported) made the test no longer throw E249 in Vim, so just use E242 in the test.
* vim-patch:8.2.4739: accessing freed memory after WinScrolled autocmd event ↵zeertzjq2022-04-12
| | | | | | | | (#18090) Problem: Accessing freed memory after WinScrolled autocmd event. Solution: Check the window pointer is still valid. (closes vim/vim#10156) Remove the argument from may_trigger_winscrolled(). https://github.com/vim/vim/commit/d58862d18f091d3c14fa3647e724ef7eea1ecefa
* vim-patch:8.2.4713: plugins cannot track text scrollingzeertzjq2022-04-12
| | | | | | | | Problem: Plugins cannot track text scrolling. Solution: Add the WinScrolled event. (closes vim/vim#10102) https://github.com/vim/vim/commit/0937182d49fa8db50cec42785f22f1031760a0bd Skip User event in autocmd.txt, not needed unless #10689 is reverted.
* vim-patch:8.2.4706: buffer remains active with WinClosed and tabpageszeertzjq2022-04-08
| | | | | | | Problem: Buffer remains active if a WinClosed event throws an exception when there are multiple tabpages. Solution: Ignore aborting() when closing the buffer. (closes vim/vim#10101) https://github.com/vim/vim/commit/6a06940f8ae7283999c83ccdf268540220573105
* vim-patch:8.2.4700: buffer remains active if WinClosed event throws an exceptionzeertzjq2022-04-08
| | | | | | Problem: Buffer remains active if a WinClosed event throws an exception. Solution: Ignore aborting() when closing the buffer. (closes vim/vim#10097) https://github.com/vim/vim/commit/c947b9ae419114ebfef9725814ea41a466fcf879
* vim-patch:8.2.0004: get E685 and E931 if buffer reload is interruptedzeertzjq2022-04-08
| | | | | | Problem: Get E685 and E931 if buffer reload is interrupted. Solution: Do not abort deleting a dummy buffer. (closes vim/vim#5361) https://github.com/vim/vim/commit/a6e8f888e7fc31b8ab7233509254fb2e2fe4089f
* refactor(window): cherry-pick win_close_buffer() from Vim patch 8.1.1391zeertzjq2022-04-08
|
* fix(ui): make window resize commands manage cmdheightFamiu Haque2022-04-05
| | | | Previously, the window resize commands did not resize the value of `cmdheight` when they caused a change in the topframe height, leaving a gap between the end of topframe and the start of the command line, this commit fixes that by making window resize commands automatically change the value of cmdheight if the resize affects the height of topframe.
* vim-patch:8.2.4402: missing parenthesis may cause unexpected problemsBrian Leung2022-04-03
| | | | | | Problem: Missing parenthesis may cause unexpected problems. Solution: Add more parenthesis is macros. https://github.com/vim/vim/commit/ae6f1d8b14c2f63811ee83ef14e32086fb3e9b83
* fix: correct vertical dragging room calculation with global statusline (#17928)zeertzjq2022-03-31
| | | | This fixes the bug that win_move_statusline() or mouse dragging cannot reduce 'cmdheight' to 1 when global statusline is used.
* refactor: assume `STATUS_HEIGHT` to be 1 (#17804)Famiu Haque2022-03-27
| | | Since https://github.com/neovim/neovim/pull/17790 being merged means we can assume the value of `STATUS_HEIGHT` to always be 1, this commit removes code that's unnecessary if `STATUS_HEIGHT` is 1.
* vim-patch:8.2.4631: crash when switching window in BufWipeout autocommandzeertzjq2022-03-27
| | | | | | | | | Problem: Crash when switching window in BufWipeout autocommand. Solution: Put any buffer in the window to avoid it being NULL. (closes vim/vim#10024) https://github.com/vim/vim/commit/347538fad0c503249ebdedd5884c2081257c9f61 win_init_empty() cannot be made static because it is used in autocmd.c