aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * fix(vim.json): properly treat luanil options as booleans (#28622)zeertzjq2024-05-03
| | | | | | Note: Upstream doesn't have this. It's an Nvim addition.
| * perf(extmarks): better track whether namespace has extmarks (#28615)zeertzjq2024-05-03
| | | | | | | | | | | | This avoids redraw when adding/removing an empty namespace for a window. This also avoids marktree traversal when clearing a namespace that has already been cleared, which is added as a benchmark.
| * fix(api): use correct buffer for "range" in nvim__redraw (#28614)luukvbaal2024-05-03
| |
| * feat(api): add nvim__redraw for more granular redrawingLuuk van Baal2024-05-02
| | | | | | | | | | | | | | | | | | | | | | Experimental and subject to future changes. Add a way to redraw certain elements that are not redrawn while Nvim is waiting for input, or currently have no API to do so. This API covers all that can be done with the :redraw* commands, in addition to the following new features: - Immediately move the cursor to a (non-current) window. - Target a specific window or buffer to mark for redraw. - Mark a buffer range for redraw (replaces nvim__buf_redraw_range()). - Redraw the 'statuscolumn'.
| * refactor: add win_T argument to setcursor_mayforce()Luuk van Baal2024-05-02
| |
| * vim-patch:9.1.0388: cursor() and getregion() don't handle v:maxcol well (#28602)zeertzjq2024-05-02
| | | | | | | | | | | | | | | | | | Problem: cursor() and getregion() don't handle v:maxcol well. Solution: Add special handling for v:maxcol like setpos() does. (zeertzjq) closes: vim/vim#14698 https://github.com/vim/vim/commit/2ffdae79487cb7e323383eda9ae96c2e9d1625bd
| * fix(colorscheme): add missing LSP groupsEvgeni Chasnovski2024-05-02
| |
| * fix(ui): avoid recursiveness and invalid memory access #28578luukvbaal2024-05-01
| | | | | | | | | | | | | | | | Problem: Calling :redraw from vim.ui_attach() callback results in recursive cmdline/message events. Solution: Avoid recursiveness where possible and replace global "call_buf" with separate, temporary buffers for each event so that when a Lua callback for one event fires another event, that does not result in invalid memory access.
| * revert: "feat(extmarks): subpriorities (relative to declaration order) ↵Gregory Anders2024-05-01
| | | | | | | | | | | | | | | | | | | | | | | | (#27131)" (#28585) This reverts commit 15e77a56b711102fdc123e15b3f37d49bc0b1df1. Subpriorities were added in https://github.com/neovim/neovim/pull/27131 as a mechanism for enforcing query order when using iter_matches in the Tree-sitter highlighter. However, iter_matches proved to have too many complications to use in the highlighter so we eventually reverted back to using iter_captures (https://github.com/neovim/neovim/pull/27901). Thus, subpriorities are no longer needed and can be removed.
| * docs(api): sort unreleased nvim__ functions last #28580Justin M. Keyes2024-04-30
| |
| * fix(api): mark nvim__complete_set as experimental #28579Justin M. Keyes2024-04-30
| | | | | | | | | | | | | | | | Problem: nvim_complete_set was added in 5ed55ff14c8b7e346811cb6228bf63fb5106bae9 but needs more bake time. Solution: Rename it, mark it as experimental.
| * docs: misc #24163Justin M. Keyes2024-04-30
| | | | | | | | | | | | | | | | | | | | - Also delete old perl scripts which are not used since 8+ years ago. fix #23251 fix #27367 ref https://github.com/neovim/neovim/issues/2252#issuecomment-1902662577 Helped-by: Daniel Kongsgaard <dakongsgaard@gmail.com> Co-authored-by: Kevin Pham <keevan.pham@gmail.com>
| * docs: various fixes (#28208)dundargoc2024-04-30
| | | | | | | | | | | | | | | | | | | | Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Famiu Haque <famiuhaque@proton.me> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Guilherme Soares <guilhermesoares1970@gmail.com> Co-authored-by: Jannik Buhr <jannik.m.buhr@gmail.com> Co-authored-by: thomaswuhoileong <72001875+thomaswuhoileong@users.noreply.github.com> Co-authored-by: tom-anders <13141438+tom-anders@users.noreply.github.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * vim-patch:9.1.0381: cbuffer and similar commands don't accept a range (#28571)zeertzjq2024-04-30
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: cbuffer and similar quickfix and locationlist commands don't accept a range, even so it is documented they should (ilan-schemoul, after 8.1.1241) Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER fixes: vim/vim#14638 closes: vim/vim#14657 https://github.com/vim/vim/commit/652c821366691a8bd5474766581090df0c742fa1 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * fix(treesitter): make tests for memoize more robustbfredl2024-04-29
| | | | | | | | | | | | | | | | | | | | | | | | Instead of painfully messing with timing to determine if queries were reparsed, we can simply keep a counter next to the call to ts_query_new Also memoization had a hidden dependency on the garbage collection of the the key, a hash value which never is kept around in memory. this was done intentionally as the hash does not capture all relevant state for the query (external included files) even if actual query objects still would be reachable in memory. To make the test fully deterministic in CI, we explicitly control GC.
| * perf(ui_client): skip some initialization not necessary for ui clientbfredl2024-04-29
| | | | | | | | | | In particular, TUI manages its own screen buffers and highlight table, so we don't need to run init_highlight() and default_grid_alloc() in the ui client process.
| * fix(ui): activating all ext capabilities without remote UI #28555luukvbaal2024-04-28
| |
| * vim-patch:9.1.0380: Calculating line height for unnecessary amount of lines ↵luukvbaal2024-04-29
| | | | | | | | | | | | | | | | | | | | | | (#28553) Problem: Calculating line height for unnecessary amount of lines with half-page scrolling (zhscn, after 9.1.0280) Solution: Replace "limit_winheight" argument with higher resolution "max" argument to which to limit the calculated line height in plines_m_win() to (Luuk van Baal) https://github.com/vim/vim/commit/32d701f51b1ed2834071a2c5031a300936beda13
| * feat(defaults): improve :grep defaults #28545Luna Saphie Mittelbach2024-04-28
| | | | | | | | | | | | Based on feedback from #28324, pass -H and -I to regular grep (available on all platforms officially supported by Neovim), and only pass -uu to ripgrep. This makes :grep ignore binary files by default in both cases.
| * Merge pull request #28532 from bfredl/regularizationbfredl2024-04-28
| |\ | | | | | | refactor(build): make all generated c files headers
| | * refactor(build): make all generated c files headersbfredl2024-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no "rule" or bad practice or whatever that says we cannot generate c files. it is is just that we have ~20 generated headers and ~2 generated sources and there is nothing in these two generated source files which sets them aparts. Lua bindings are not different from rpc bindings, and pathdef is not different from versiondef. So to simplify build logic and ease the future port to build.zig, streamline the build to only have generated headers, no direct generated .c files. Also "nlua_add_api_functions" had its prototype duplicated twice which defeated the point of having mandatory prototypes (one source of truth).
| * | Merge #28522 handle ui_attach side effectsJustin M. Keyes2024-04-27
| |\ \ | | |/ | |/|
| | * fix(ui): set 'cmdheight' to zero for all open tabpagesLuuk van Baal2024-04-27
| | | | | | | | | | | | | | | | | | Problem: Enabling ext_messages claims to set 'cmdheight' to zero, but only does so for the current tabpage. Solution: Set stored 'cmdheight' value to zero for all tabpages.
| | * fix(ui): update ext_ui widgets when attaching non-remote UILuuk van Baal2024-04-26
| | | | | | | | | | | | | | | | | | Problem: Updating internalized UI capabilities is postponed until a remote UI attaches. Solution: Always update active UI widgets in ui_refresh().
| * | vim-patch:9.1.0374: wrong botline in BufEnter (#28530)zeertzjq2024-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: When :edit an existing buffer, line('w$') may return a wrong result. Solution: Reset w_valid in curwin_init() (Jaehwang Jung) `do_ecmd()` reinitializes the current window (`curwin_init()`) whose `w_valid` field may have `VALID_BOTLINE` set. Resetting `w_botline` without marking it as invalid makes subsequent `validate_botline()` calls a no-op, thus resulting in wrong `line('w$')` value. closes: vim/vim#14642 https://github.com/vim/vim/commit/eb80b8304efb6dfeaa8d01dd41fe281df4894240 Co-authored-by: Jaehwang Jung <tomtomjhj@gmail.com>
| * | vim-patch:fe1e2b5e2d65zeertzjq2024-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): clarify syntax vs matching mechanism fixes: vim/vim#14643 https://github.com/vim/vim/commit/fe1e2b5e2d65f05d820f17db935b15454a63be06 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | vim-patch:partial:9.1.0373: ops.c code uses too many strlen() calls (#28508)zeertzjq2024-04-26
| |/ | | | | | | | | | | | | | | | | | | | | Problem: ops.c code uses too many strlen() calls Solution: Refactor code and remove more strlen() calls (John Marriott) closes: vim/vim#14598 https://github.com/vim/vim/commit/38b9f45253f582ab63174376e321092f8a9a7808 Co-authored-by: John Marriott <basilisk@internode.on.net>
| * fix(completion): improve popup window position (#26739)Raphael2024-04-25
| |
| * Merge pull request #28492 from bfredl/hotfixbfredl2024-04-25
| |\ | | | | | | fix(lua): vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
| | * fix(lua): vim.fn.has('nvim-0.10') in fast context, used by vim.deprecatebfredl2024-04-25
| | |
| * | feat(api): allow floats to be opened in non-current tabpage (#28480)Will Hopkins2024-04-25
| | | | | | | | | \
| * | refactor(source): remove unnecessary concatenation with Lua (#28499)zeertzjq2024-04-25
| |/
| * vim-patch:8.2.2332: Vim9: missing :endif not reported when using :windo (#28482)zeertzjq2024-04-24
| | | | | | | | | | | | | | | | Problem: Vim9: missing :endif not reported when using :windo. Solution: Pass a getline function to do_cmdline(). (closes vim/vim#7650) https://github.com/vim/vim/commit/9567efa1b4a41baca9b2266f5903d5dda7ad1e88 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * vim-patch:9.1.0365: Crash when typing many keys with D- modifier (#28464)zeertzjq2024-04-23
| | | | | | | | | | | | | | | | | | Problem: Crash when typing many keys with D- modifier (after 9.1.0227). Solution: Don't treat a 0x80 byte inside a special sequence as the start of a special sequence (zeertzjq). closes: vim/vim#14613 https://github.com/vim/vim/commit/6b13e3d4e46393b3a35eed7c27ae020bcbd46a9b
| * fix(tui): disable DECRQM and DECRQSS queries for Terminal.app (#28453)Yoshimasa Niwa2024-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Problems** When launching Neovim on Terminal.app on macOS (Apple Terminal), it briefly shows like `p$qm+q5463;524742;73657472676266;73657472676262$qm` in orange background color partially on the screen. **Solution** Since Terminal.app seems not supporting DECRQM and DECRQSS queries, calling `tui_request_term_mode` and `tui_query_extended_underline` caused this unexpected output. Therefore, if we know it's Apple Terminal (when `nsterm` is `true`), don't call these checks. Tested on Terminal.app (2.14, 453) on macOS 14.4.1. Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Gregory Anders <greg@gpanders.com>
| * vim-patch:9.1.0357: Page scrolling should place cursor at window boundaries ↵luukvbaal2024-04-22
| | | | | | | | | | | | | | | | | | | | (#28429) Problem: Page scrolling does not always place the cursor at the top or bottom of the window (Mathias Rav) Solution: Place the cursor at the top or bottom of the window. (Luuk van Baal) https://github.com/vim/vim/commit/4b6b0c4024df08dd8ce49dff3c76356ff81190c4
| * fix(completion): check that healthcheck name is string (#28458)zeertzjq2024-04-22
| |
| * Merge pull request #28434 from glepnir/23120bfredl2024-04-22
| |\ | | | | | | fix(float): wrong position when bufpos is out of range
| | * fix(float): wrong position when bufpos is setglepnir2024-04-21
| | | | | | | | | | | | | | | | | | Problem: when lnum in bufpos is out of range the position of float is wired. Solution: avoid the height value out of buffer line range.
| * | refactor(api): deprecate nvim_call_atomic #28433Justin M. Keyes2024-04-22
| | | | | | | | | | | | | | | | | | TODO: FUNC_API_REMOTE_ONLY APIs such as `nvim_ui_*` cannot (yet) be used in `nvim_exec_lua`. We can change FUNC_API_REMOTE_ONLY to allow Vimscript/Lua to pass an explicit `channel_id`. #28437
| * | fix(window): don't go to unfocusable float when closing (#28455)zeertzjq2024-04-22
| | |
| * | refactor(treesitter): language loadingLewis Russell2024-04-21
| | |
| * | refactor: add function attributes to xmemcpyz() (#28435)zeertzjq2024-04-21
| | | | | | | | | Also attempt to fix the new coverity warning.
| * | perf(treesitter): incremental foldupdateJaehwang Jung2024-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: While the fold level computation is incremental, the evaluation of the foldexpr is done on the full buffer. Despite that the foldexpr reads from the cache, it can take tens of milliseconds for moderately big (10K lines) buffers. Solution: Track the range of lines on which the foldexpr should be evaluated.
| * | Merge pull request #27872 from luukvbaal/cmdheightbfredl2024-04-21
| |\ \ | | | | | | | | fix(ui): don't force 'cmdheight' to zero with ext_messages
| | * | fix(ui): don't force 'cmdheight' to zero with ext_messagesLuuk van Baal2024-04-20
| | | | | | | | | | | | | | | | Remove remaining code that prevents non-zero 'cmdheight' with ext_messages.
| * | | fix(api): do not update grid position in nvim_win_set_cursor (#28235)luukvbaal2024-04-21
| | | | | | | | | | | | | | | | Revert commit c971f538ab87b537ae4c97bd44167661c5691a2d. Forcing grid cursor position will need a new API like originally proposed in #27858.
| * | | refactor(lua): "module" => "M" #28426Justin M. Keyes2024-04-20
| |/ / | | | | | | | | | Most of the codebase uses the `M` convention for Lua module. Update the last remaining cases.
| * / refactor: add xmemcpyz() and use it in place of some xstrlcpy() (#28422)zeertzjq2024-04-20
| |/ | | | | | | | | | | Problem: Using xstrlcpy() when the exact length of the string to be copied is known is not ideal because it requires adding 1 to the length and an unnecessary strlen(). Solution: Add xmemcpyz() and use it in place of such xstrlcpy() calls.
| * fix(showcmd): clear the rest properly (#28420)zeertzjq2024-04-20
| |