aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | Merge pull request #27420 from MariaSolOs/warning-anxietyLewis Russell2024-02-11
|\ \ | | | | | | refactor(lsp): fix type annotations and add shared diagnostic helper
| * | refactor(lsp): add vim.lsp.sync.Range typeMaria José Solano2024-02-10
| | |
| * | refactor(lsp): add shared diagnostic handlerMaria José Solano2024-02-10
| | |
| * | refactor(lsp): add type annotationsMaria José Solano2024-02-10
| | |
* | | Merge pull request #27414 from bfredl/arenalinesbfredl2024-02-11
|\ \ \ | | | | | | | | refactor(api): use an arena for nvim_buf_get_lines and buffer updates
| * | | refactor(api): use an arena for nvim_buf_get_lines and buffer updatesbfredl2024-02-11
|/ / / | | | | | | | | | | | | Refactor some earlier "temporary Array" code in buffer_updates.c to use the modern style of MAXSIZE_TEMP_ARRAY and ADD_C
* | | fix(messages): clear new lines when increasing 'cmdheight' (#27421)zeertzjq2024-02-11
| | |
* | | feat(shortmess): "q" flag fully hides recording message (#27415)Trevor Arjeski2024-02-11
| | | | | | | | | | | | | | | | | | | | | When "q" is set in 'shortmess' it now fully hides the "recording @a" message when you are recording a macro instead of just shortening to "recording". This removes duplication when using reg_recording() in the statusline. Related #19193
* | | refactor: rename w_float_config to w_config #27419Will Hopkins2024-02-10
| | | | | | | | | Follows up on rename of `FloatConfig` to `WinConfig` in #27397.
* | | Merge pull request #27253 from MariaSolOs/codelens-refreshbfredl2024-02-10
|\ \ \ | | | | | | | | feat(lsp): add opts to vim.lsp.codelens.refresh
| * | | feat(lsp): add opts paramater to vim.lsp.codelens.refreshMaria José Solano2024-02-08
| | | |
* | | | Merge pull request #27418 from zeertzjq/vim-9.1.0089zeertzjq2024-02-10
|\ \ \ \ | | | | | | | | | | vim-patch:9.1.{0089,0093}: qsort() comparison function fixes
| * | | | refactor: don't use subtraction in qsort() comparison functionszeertzjq2024-02-10
| | | | |
| * | | | vim-patch:9.1.0093: Still a qsort() comparison function that returns result ↵zeertzjq2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of subtraction Problem: Still a qsort() comparison function fuzzy_match_item_compare() that returns result of subtraction (after 9.1.0089). Solution: Use an explicit comparison instead of subtraction. (zeertzjq) closes: vim/vim#14004 https://github.com/vim/vim/commit/77078276bfe695070441a1bbdc02949d31de8922
| * | | | vim-patch:9.1.0089: qsort() comparison functions should be transitivezeertzjq2024-02-10
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: qsort() comparison functions should be transitive Solution: Do not subtract values, but rather use explicit comparisons Improve qsort() comparison functions There has been a recent report on qsort() causing out-of-bounds read & write in glibc for non transitive comparison functions https://www.qualys.com/2024/01/30/qsort.txt Even so the bug is in glibc's implementation of the qsort() algorithm, it's bad style to just use substraction for the comparison functions, which may cause overflow issues and as hinted at in OpenBSD's manual page for qsort(): "It is almost always an error to use subtraction to compute the return value of the comparison function." So check the qsort() comparison functions and change them to be safe. closes: vim/vim#13980 https://github.com/vim/vim/commit/e06e43766500ecb4cd1031fa16cf9cbebdb222c1 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | | | build(deps): bump tree-sitter-bash to v0.20.5Christian Clason2024-02-10
| | | |
* | | | refactor: reduce some globals #27406Justin M. Keyes2024-02-10
| | | |
* | | | Merge pull request #27398 from bfredl/arena2bfredl2024-02-10
|\ \ \ \ | | | | | | | | | | refactor(api): use arena for more stuff
| * | | | refactor(api): use arena for nvim_get_option_info()bfredl2024-02-09
| | | | |
| * | | | refactor(api): use arena for nvim_parse_cmd()bfredl2024-02-09
| | | | |
| * | | | refactor(api): use arena for hlstate inspectionbfredl2024-02-09
| | | | |
| * | | | refactor(api): use arena for nvim_list_uis()bfredl2024-02-09
| | | | |
| * | | | refactor(api): make cstr_as_string accept "const char*"bfredl2024-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | In the context a String inside an Object/Dictionary etc is consumed, it is considered to be read-only.
* | | | | test(ui/mouse_spec): make sure click is processed (#27412)zeertzjq2024-02-10
| | | | |
* | | | | vim-patch:9.1.0087: Restoring lastused_tabpage too early in do_arg_all() ↵Raphael2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#27411) Problem: Restore lastused_tabpage too early in do_arg_all() function it will change later in the function. Solution: Restore lastused_tabpage a bit later, when being done with tabpages (glepnir) closes: vim/vim#13992 https://github.com/vim/vim/commit/2975a54f285e5b4bf026c1dc706b5d90777d64e7
* | | | | test: add test for scroll wheel at right-click menu (#27409)zeertzjq2024-02-10
| | | | |
* | | | | build(clint): don't allow INIT() in non-header files (#27407)zeertzjq2024-02-10
| |_|/ / |/| | |
* | | | fix(startup): multiprocess startuptime #26790Pablo Arias2024-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Since 24488169564c39a506c235bf6a33b8e23a8cb528, the --startuptime report shows two blocks of data. The TUI process and its embedded nvim process write to the file concurrently, which may interleave the two startup sequences into the same timeline. Solution: Report each process as a separate section in the same file. 1. Each process buffers the full report. 2. After startup is finished, the buffer is flushed (appended) to the file. Fix #23036 Sample report: --- Startup times for process: Primary/TUI --- times in msec clock self+sourced self: sourced script clock elapsed: other lines 000.006 000.006: --- NVIM STARTING --- 000.428 000.422: event init 000.728 000.301: early init ... 005.880 000.713: init highlight 005.882 000.002: --- NVIM STARTED --- --- Startup times for process: Embedded --- times in msec clock self+sourced self: sourced script clock elapsed: other lines 000.006 000.006: --- NVIM STARTING --- 000.409 000.403: event init 000.557 000.148: early init 000.633 000.077: locale set ... 014.383 000.430: first screen update 014.387 000.003: --- NVIM STARTED ---
* | | | vim-patch:9.1.0088: TextChanged not triggered for :norm! commands (#27405)zeertzjq2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: TextChanged not triggered for :norm! commands (machakann, after v9.0.2031) Solution: Only reset curbuf->b_last_changedtick if TextChangedI was triggered in insert mode (and not blocked) Note: for unknown reasons, the test fails on Windows (but seems to work fine when running interactively) fixes: vim/vim#13967 closes: vim/vim#13984 https://github.com/vim/vim/commit/c9e79e52845d51f48f5ea3753a62ab3fe0e40184 Cherry-pick test_autocmd.vim change from patch 8.2.4149. Co-authored-by: Christian Brabandt <cb@256bit.org>
* | | | vim-patch:9.1.0084: Visual hl wrong when it ends before multibyte ↵zeertzjq2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'showbreak' (#27404) Problem: Visual hl wrong when it ends before multibyte 'showbreak'. (lacygoil) Solution: Use vcol_sbr instead of adding n_extra. (zeertzjq) fixes: vim/vim#11272 closes: vim/vim#13996 https://github.com/vim/vim/commit/df23d7f4bd7546f3152ea003856525591218565b Bug doesn't apply to Nvim.
* | | | refactor: rename FloatConfig to WinConfig #27397Will Hopkins2024-02-09
|/ / / | | | | | | | | | | | | `FloatConfig` is no longer used only for floats, so the name is counterintuitive. Followup to #25550
* / / build: stop installing parser.h from treesitterdundargoc2024-02-09
|/ /
* | feat(tutor): add Japanese tutor #27268ite-usagi2024-02-08
| | | | | | Add Japanese Tutor
* | fix(lsp): rename fails on missing parent directory #27291Tomasz N2024-02-08
| | | | | | | | | | | | | | | | Problem: If a rename results in a path that has missing parent directory(s), it will fail. Solution: Do a recursive mkdir before attempting the rename.
* | Merge pull request #27391 from bfredl/arenarockbfredl2024-02-08
|\ \ | | | | | | refactor(api): refactor more api functions to use arena return
| * | refactor(api): refactor more api functions to use arena returnbfredl2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently having two separate memory strategies for API return values is a bit unnecessary, and mostly a consequence of converting the hot spot cases which needed it first. But there is really no downside to using arena everywhere (which implies also directly using strings which are allocated earlier or even statically, without copy). There only restriction is we need to know the size of arrays in advance, but this info can often be passed on from some earlier stage if it is missing. This collects some "small" cases. The more complex stuff will get a PR each.
* | | feat(lsp): deprecate severity_limitLewis Russell2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `vim.lsp.diagnostic.on_diagnostic` accepts an undocumented severity_limit option which is widely used. Solution: Deprecate it in favour of `{min = severity}` used in `vim.diagnostic`. Since this is undocumented, the schedule for removal is accelerated to 0.11.
* | | docs(install): add more Linux install instructions #27350Robert O'Shea2024-02-08
| | |
* | | Revert "fixup! add benchmark"Lewis Russell2024-02-08
| | | | | | | | | | | | This reverts commit b0bff57a3bc79481d89595791e3fb0e4dd10c896.
* | | fixup! add benchmarkLewis Russell2024-02-08
| | |
* | | refactor(treesitter): {start,stop} are optional in Query:iter_* methodsJongwook Choi2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | Document that the `start` and `stop` parameters in `Query:iter_captures()` and `Query:iter_matches()` are optional. The tree-sitter lib has been bumped up to 0.20.9, so we also no longer need "Requires treesitter >= 0.20.9".
* | | refactor(treesitter): typing for Query, TSQuery, and TSQueryInfoJongwook Choi2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `TSQuery`: userdata object for parsed query. - `vim.treesitter.Query`: renamed from `Query`. - Add a new field `lang`. - `TSQueryInfo`: - Move to `vim/treesitter/_meta.lua`, because C code owns it. - Correct typing for `patterns`, should be a map from `integer` (pattern_id) to `(integer|string)[][]` (list of predicates or directives). - `vim.treesitter.QueryInfo` is added. - This currently has the same structure as `TSQueryInfo` (exported from C code). - Document the fields (see `TSQuery:inspect`). - Add typing for `vim._ts_parse_query()`.
* | | Merge pull request #27388 from zeertzjq/vim-9.1.0082zeertzjq2024-02-08
|\ \ \ | |/ / |/| | vim-patch:9.1.{0082,0083}: redrawing can be improved
| * | vim-patch:9.1.0083: Redrawing can be improved when deleting lines with 'number'zeertzjq2024-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Redrawing can be improved when inserting/deleting lines with 'number'. Solution: Only redraw the number column of lines below changed lines. Add a test as this wasn't previously tested. (zeertzjq) closes: vim/vim#13985 https://github.com/vim/vim/commit/ae07ebc04b0726e12b1af39d52e01d86ae79ef0a
| * | vim-patch:9.1.0082: Redrawing can be improved when deleting lines with ↵zeertzjq2024-02-08
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | 'cursorline' Problem: Redrawing can be improved when deleting lines with 'cursorline'. Solution: Use smarter invalidation and adjustment. Remove unnecessary UPD_VALID as it is already set at the top of the loop. Make the test for vim/vim#4862 fail without the fix. (zeertzjq) closes: vim/vim#13986 https://github.com/vim/vim/commit/7ce34c9a947b17a8b5e81e7c2335a63552182d10
* | refactor(lsp): tidy up loggingLewis Russell2024-02-08
| |
* | vim-patch:b8170143c8f8 (#27387)zeertzjq2024-02-08
| | | | | | | | | | | | | | runtime(doc): further improve docs about List/Blob += operator closes: vim/vim#13990 https://github.com/vim/vim/commit/b8170143c8f8a115b5be59a94d10f931d3cd567c
* | feat(api): pass 0 to nvim_get_chan_info for current channel (#27321)nikolightsaber2024-02-08
| | | | | | | | | | | | | | | | | | | | | | Getting current channel info was kind of annoying via RPC. Two functions had to be called: 1. `nvim_get_api_info` which returns `[channel_id, meta_data]`. - This results in `channel_id = api.nvim_get_api_info()[0]`. - Here the meta_data is sent but never used. 2. Finally call `nvim_get_chan_info(channel_id)`. This commit reduces the need for `nvim_get_api_info` as passing 0 returns current channel info.
* | Merge pull request #27284 from bfredl/unkeydictbfredl2024-02-08
|\ \ | | | | | | refactor(api): use keydict and arena for more api return values
| * | refactor(generators): style of generating and generated lua dispatch codebfredl2024-02-08
| | |