aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | | | vim-patch:9.1.0102: settabvar() may change the last accessed tabpage (#27450)zeertzjq2024-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: settabvar() may change the last accessed tabpage. Solution: Save and restore lastused_tabpage. (zeertzjq) closes: vim/vim#14017 https://github.com/vim/vim/commit/b47fbb40837512cdd2d8c25eaf9952154836b99d
| * | | | | | perf(redraw): reduce redraw with undo and extmarks or 'spell' (#27442)zeertzjq2024-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:9.1.0100: Redrawing can be improved with undo and 'spell' Problem: When undoing with 'spell', redrawWinline() is called after changed_lines(), while later win_update() sets redraw type to UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are still valid. Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting lines after parts of window has pending redraw, i.e., when changed_lines() is called after redrawWinline(). (zeertzjq) closes: vim/vim#14019 https://github.com/vim/vim/commit/f2d90a351159fd6843f450850f52004f42e00183
| * | | | | | vim-patch:9.0.0245: mechanism to prevent recursive screen updating is ↵zeertzjq2024-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | incomplete (#27448) Problem: Mechanism to prevent recursive screen updating is incomplete. Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). (issue vim/vim#10952) https://github.com/vim/vim/commit/471c0fa3eed4f6207d1cb7636970547bfd2eee26 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | | Merge pull request #27439 from bfredl/nofreeallmembfredl2024-02-12
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | fix(exitfree): don't use ex commands to close windows in free_all_mem()
| | * | | | | | fix(exitfree): don't use ex commands to close windows in free_all_mem()bfredl2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempting to manipulate the window layout via ex commands is not safe here. It is also redundant: `win_free_all()` can free multiple windows by itself perfectly fine.
| * | | | | | | refactor(tests): get channel id via nvim_get_chan_info #27441Justin M. Keyes2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | Minor "best practices" nudge.
| * | | | | | | Merge pull request #27348 from fredizzimo/fsundvik/fix-ext-hlstatebfredl2024-02-12
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | fix: crashes with large msgpack messages
| | * | | | | | | fix: splitting of big UI messagesFred Sundvik2024-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Determine the needed buffer space first, instead of trying to revert the effect of prepare_call if message does not fit. The previous code did not revert the full state, which caused corrupted messages to be sent. So, rather than trying to fix all of that, with fragile and hard to read code as a result, the code is now much more simple, although slightly slower.
| | * | | | | | | fix: buffer overrun in lmpack_session_receiveFred Sundvik2024-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The offset was not taken into account when calculating the remaining buffer size.
| | * | | | | | | test: add more hlstate testsFred Sundvik2024-02-05
| | | | | | | | |
| * | | | | | | | fix(extmarks): redraw pre-undo position (#27437)zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Virtual text not redrawn properly after undo moves its extmark. Solution: Redraw the moved extmark's pre-undo position.
| * | | | | | | | fix(lsp): re-add client.commands and mark privateLewis Russell2024-02-12
| | | | | | | | |
| * | | | | | | | docs: correct on_key docs (#27429)altermo2024-02-12
| | |/ / / / / / | |/| | | | | |
| * | | | | | | fix(lsp): semantic token defer loadingLewis Russell2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #27424
| * | | | | | | vim-patch:9.1.0098: CompleteChanged not triggered when new leader added ↵Raphael2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | without matches (#27436) Problem: CompleteChanged not triggered when new leader added causing no matching item in the completion menu Solution: When completion is active but no items matched still trigger CompleteChanged event (glepnir) closes: vim/vim#13982 https://github.com/vim/vim/commit/0d3c0a66a39570cbc52b9536604c39e324b989b3 Fix #15077
| * | | | | | | perf(extmarks): avoid unnecessary invalidations for virt_text (#27435)zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Invalidation of most w_valid flags isn't needed when adding or removing virtual text below cursor.
| * | | | | | | vim-patch:b614b284ee06 (#27433)zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(vim): Update syntax file (vim/vim#14009) - allow comments after :highight commands - match the bang in a :highlight[!] command - highlight the bang in :map[!], :menu[!] and :unlet[!] with vimOper like all other commands https://github.com/vim/vim/commit/b614b284ee06523511308f8381b47db34d921d39 Co-authored-by: dkearns <dougkearns@gmail.com>
| * | | | | | | fix(column): use a single path for sign sorting (#27431)luukvbaal2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: #25826 added a (duplicate) sign comparison function, which was modified and strayed from the original in #27418. Solution: Merge the two functions and add a display test that actually tests for this order in addition to the legacy tests.
| * | | | | | | vim-patch:9.1.0097: 'breakindent' behaves inconsistently with 'list' and ↵zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | splits (#27432) Problem: 'breakindent' behaves inconsistently with 'list' and splits. Solution: Use 'listchars' from the correct window and handle caching properly. Move cheaper comparisons to the top. (zeertzjq) closes: vim/vim#14008 https://github.com/vim/vim/commit/efabd7c8d4f733350364356b8950a11f013aec49
| * | | | | | | refactor(indent): refactor computing of a string's indent size (#27252)VanaIgr2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `get_indent_str_vtab()` function currently calls `tabstop_padding()` every time a tab is encountered (unless tabstops aren't used). `tabstop_padding()` either does a division by 'tabstop' If 'vartabstop' is not set, or iterates through the 'vartabstop' list to find current tab width. Since the virtual column only increases, we can keep track of where the next tabstop would be, and update this information once it was reached. `get_indent_str_vtab()` also depends on 'listchars' "tab" value from the current window, even though it may be called for a line from the same buffer in a different window. In most cases, it is called with tabstops enabled (last argument was `false`), so I split the function into one that uses tabstops and the other that doesn't. I removed `get_indent_str()` since I couldn't find any calls to it.
| * | | | | | | vim-patch:6d91227267a5Christian Clason2024-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(gpg): Mark dangerous use-embedded-filename with WarningMsg The syntax highlighter is likely to encourage people to use the listed commands. But `use-embedded-filename` is a dangerous option that can cause GnuPG to write arbitrary data to arbitrary files whenever GnuPG encounters malicious data. GnuPG upstream explicitly warns against using this option: https://dev.gnupg.org/T4500 https://dev.gnupg.org/T6972 However, since this is a valid option, we cannot just drop it from the syntax script. Instead, let's mark it with the WarningMsg highlighting to make it obvious, that this option is different (and should not be used for security reasons). closes: vim/vim#13961 https://github.com/vim/vim/commit/6d91227267a5f7e21fc9b30443687618e92751bf Co-authored-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
| * | | | | | | refactor(lsp): move more code to client.luaLewis Russell2024-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dispatchers used by the RPC client should be defined in the client, so they have been moved there. Due to this, it also made sense to move all code related to client configuration and the creation of the RPC client there too. Now vim.lsp.start_client is significantly simplified and now mostly contains logic for tracking open clients. - Renamed client.new -> client.start
| * | | | | | | 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 ---