aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
* vim-patch:9.1.1095: tests: matchparen plugin test wrongly named (#32397)zeertzjq2025-02-11
| | | | | | | | | | | | Problem: tests: matchparen plugin test wrongly named (zeertzjq) Solution: rename test_matchparen to test_plugin_matchparen to be consistent with the other plugin tests related: vim/vim#16599 https://github.com/vim/vim/commit/7de6b1bb5687b94369dda82a9648109d7d6832b7 Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(ui): Windows :detach is opt-inJustin M. Keyes2025-02-10
| | | | | | | | | Problem: On Windows, spawning the `nvim --embed` server with `detach=true` breaks various `tt.setup_child_nvim` tests. Solution: Make this behavior opt-in with an env var, temporarily.
* test: use --cleanJustin M. Keyes2025-02-10
|
* feat(ui): UI :detach commandJustin M. Keyes2025-02-10
| | | | | | | | | | | Problem: Cannot detach the current UI. Solution: - Introduce `:detach`. - Introduce `Channel.detach`. Co-authored-by: bfredl <bjorn.linse@gmail.com>
* fix(api): memory leaks in vim.api.nvim_*get_option #32390Cai Rijun (Richard)2025-02-10
| | | | | | Problem: `get_option_value` returns caller owned `Object`s but the corresponding C apis do not marked `FUNC_API_RET_ALLOC` properly. Solution: add `FUNC_API_RET_ALLOC` to the C apis.
* test(fix): make testing of ext_cmdline optional #32375fredizzimo2025-02-10
|
* vim-patch:f30eb4a: runtime(qf): Update syntax file, match second delimiterChristian Clason2025-02-10
| | | | | | | | | | | Match both | separators and link to the Delimiter highlight group. fixes vim/vim#16584 closes: vim/vim#16590 https://github.com/vim/vim/commit/f30eb4a17084eea741a9eb09ba47dd501412283d Co-authored-by: Doug Kearns <dougkearns@gmail.com>
* vim-patch:9.1.1091: tests: timeout might be a bit too smallzeertzjq2025-02-10
| | | | | | | | | | | Problem: tests: timeout might be a bit too small Solution: increase the test timeout from 30 to 45 seconds related: vim/vim#16599 https://github.com/vim/vim/commit/ec7a4e4d69d17821292048bfa85801fcfa476228 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.0.1675: test may run into timeout when using valgrindzeertzjq2025-02-10
| | | | | | | | | Problem: Test may run into timeout when using valgrind. Solution: Use a longer timeout when using valgrind. https://github.com/vim/vim/commit/7c2beb48ef46cf5f1ed7e8512ef5a7c9099e5ae4 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:partial:9.1.1088: tests: plugin tests are named inconsistently ↵zeertzjq2025-02-10
| | | | | | | | | | | | (#32388) Problem: tests: plugin tests are named inconsistently Solution: group them under a common 'plugin' prefix related: vim/vim#16599 https://github.com/vim/vim/commit/934d9ab3a25066d403678c91fd99ce9ce738d95f Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(defaults): improve visual search mappings #32378neeshy2025-02-09
| | | | | | | | | | | | | | | | | | Problem: The behavior of the visual search mappings aren't consistent with their normal mode counterparts. - The count isn't considered - Searching with an empty selection will match every character in the buffer - Searching backwards only jumps back when the cursor is positioned at the start of the selection. Solution: - Issue `n` `v:count1` times - Error out and exit visual mode when the selection is empty - Detect when the cursor is not at the start of the selection, and adjust the count accordingly Also, use the search register instead of the more error-prone approach of feeding the entire search string as an expression
* fix(lua): vim.tbl_get({}, nil, 1) should return nil #32218phanium2025-02-09
| | | | | | | | | | | | | | | Problem: `vim.tbl_get(tbl, nil, 1)` returns `tbl` itself. In this case, `keys` is not empty, but `ipairs` skips the iteration: local keys = { nil, 1 } assert(#keys == 2) for i, k in ipairs(keys) do assert(false, 'unreachable') end Solution: Use `select("#", ...)` and `select(i, ...)` to ensure consistency for count and iteration.
* test: reset cmdline abort state only after expect() has finished #32376fredizzimo2025-02-09
| | | | | | | Problem: cmdline abort state may be reset when intermediate states are received. Solution: Reset after `self:_wait()`.
* test: screen.lua can check win_pos #32373fredizzimo2025-02-09
| | | Also remove a hack in the multigrid "with winbar" test.
* vim-patch:9.1.1085: filetype: cmmt files are not recognizedChristian Clason2025-02-09
| | | | | | | | | | | | | | | Problem: filetype: cmmt files are not recognized Solution: detect '*.cmmt' as trace32 filetype (Christian Sax) "*.cmmt" files use the same syntax as regular TRACE32 scripts, but are intended as a kind of script template. closes: vim/vim#16598 https://github.com/vim/vim/commit/746fe54d4f16ad1c5694cccc8bc8d93a97c050e1 Co-authored-by: Christoph Sax <c_sax@mailbox.org>
* vim-patch:9.1.1086: completion doesn't work with multi lines (#32377)glepnir2025-02-09
| | | | | | | | | | | Problem: completion doesn't work with multi lines (Łukasz Jan Niemier) Solution: handle linebreaks in completion code as expected (glepnir) fixes: vim/vim#2505 closes: vim/vim#15373 https://github.com/vim/vim/commit/76bdb82527a13b5b2baa8f7d7ce14b4d5dc05b82
* vim-patch:9.1.1083: setreg() doesn't correctly handle mbyte chars in ↵zeertzjq2025-02-09
| | | | | | | | | | | | | | | | | | | | | | blockwise mode Problem: setreg() doesn't correctly handle mbyte chars in blockwise mode Solution: use mb_ptr2len_len function pointer (Yee Cheng Chin) setreg() will automatically calculate the width when a blockwise mode is specified, but it does not properly calculate the line widths of mbyte characters when value is passed as newline-terminated string. It does work when value is passed as a list of lines though. Fix this by properly using the mbyte function pointer to increment the loop counter. closes: vim/vim#16596 https://github.com/vim/vim/commit/a17f8bfb282805ee8ded014089d3094ef6dbf913 Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
* fix(messages): improve deadly signal messages #32364Justin M. Keyes2025-02-07
| | | | | | | | Problem: Deadly signal messages mention "Vim", and add redundant newlines. Solution: - Update the messages. - Don't add an extra newline.
* vim-patch:9.1.1081: has('bsd') is true for GNU/Hurdzeertzjq2025-02-07
| | | | | | | | | | | | | | | | Problem: has('bsd') is true for GNU/Hurd Solution: exclude GNU/Hurd from BSD feature flag (Zhaoming Luo) GNU/Hurd, like Mac OS X, is a BSD-based system. It should exclude has('bsd') feature just like what Mac OS X does. The __GNU__ pre-defined macro indicates it's compiled for GNU/Hurd. closes: vim/vim#16580 https://github.com/vim/vim/commit/a41dfcd55b1744b44a47d2fc3feb5d5f6207a556 Co-authored-by: Zhaoming Luo <zhmingluo@163.com>
* vim-patch:8.2.0849: BeOS code is not maintained and probably unusedzeertzjq2025-02-07
| | | | | | | | | Problem: BeOS code is not maintained and probably unused. Solution: Remove the BeOS code. (Emir Sari, closes vim/vim#5817) https://github.com/vim/vim/commit/041c7107f23d3b49ab62c1d7e36af90421db8b63 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* test(old): reorder test_functions.vim to match upstreamzeertzjq2025-02-07
|
* vim-patch:9.1.1080: filetype: Mill files are not recognizedChristian Clason2025-02-06
| | | | | | | | | | | | | | | | | | | | Problem: filetype: Mill files are not recognized Solution: detect '*.mill' files as scala filetype (author) In the past [Mill](https://mill-build.org/mill/index.html) build files were always `build.sc` and treated as Scala files. However as the 0.12.x series of mill you can create a `build.mill` file. You can see a lot of examples of this if you search [GitHub](https://github.com/search?q=build.mill&type=code). This small change just ensures that if you have a `*.mill` file it treats it as a Scala file. closes: vim/vim#16585 https://github.com/vim/vim/commit/9c8f9b10fcb177fb07684626b49118dd2d2540b5 Co-authored-by: Chris Kipp <ckipp@pm.me>
* feat(defaults): enable diffopt "linematch" #32346Siddhant Agarwal2025-02-06
|
* vim-patch:9.1.1077: included syntax items do not understand contains=TOP ↵zeertzjq2025-02-06
| | | | | | | | | | | | | | | | | | | | (#32343) Problem: Syntax engine interpreted contains=TOP as matching nothing inside included files, since :syn-include forces HL_CONTAINED on for every included item. After 8.2.2761, interprets contains=TOP as contains=@INCLUDED, which is also not correct since it doesn't respect exclusions, and doesn't work if there is no @INCLUDED cluster. Solution: revert patch 8.2.2761, instead track groups that have had HL_CONTAINED forced, and interpret contains=TOP and contains=CONTAINED using this. (Theodore Dubois) fixes: vim/vim#11277 closes: vim/vim#16571 https://github.com/vim/vim/commit/f50d5364d790619a3b982a3ad3658b5a10daf511 Co-authored-by: Theodore Dubois <tblodt@icloud.com>
* feat(diagnostic): add `current_line` option for `virtual_text` handlerMaria José Solano2025-02-05
|
* feat(treesitter): show which nodes are missing in InspectTreeRiley Bruins2025-02-05
| | | | | | | | Now `:InspectTree` will show missing nodes as e.g. `(MISSING identifier)` or `(MISSING ";")` rather than just `(identifier)` or `";"`. This is doable because the `MISSING` keyword is now valid query syntax. Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* fix(messages): add a trailing space to inputlist() etc. prompts (#32328)zeertzjq2025-02-05
| | | | Before #31525 the prompts had a trailing space. Also add a test for #7857.
* fix(event-loop): process input before events in getchar() (#32322)zeertzjq2025-02-05
| | | Follow-up to #27358.
* test(terminal/cursor_spec): remove unnecessary busy handlers (#32321)zeertzjq2025-02-04
| | | | They are no longer necessary after #31562, as busy_start and busy_stop are no longer emitted by terminal buffers with visible cursor.
* test(getchar_spec): fix flakiness (#32320)zeertzjq2025-02-04
| | | | | Problem: getchar_spec may fail when screen:expect_unchanged() doesn't wait long enough. Solution: Add poke_eventloop() before screen:expect_unchanged().
* vim-patch:9.1.1072: 'diffopt' "linematch" cannot be used with {n} less than 10zeertzjq2025-02-04
| | | | | | | | | | Problem: 'diffopt' "linematch" cannot be used with {n} less than 10 digits (after v9.1.1022) Solution: Fix off-by-one error when checking for digit (zeertzjq) closes: vim/vim#16577 https://github.com/vim/vim/commit/ccd7f454fcac2f99085d4f50e79c111c02741166
* vim-patch:9.1.1027: no sanitize check when running linematchzeertzjq2025-02-04
| | | | | | | | | | | | Problem: no sanitize check when running linematch Solution: add sanitize check before applying the linematch algorithm, similar to diff_find_change() (Jonathon) closes: vim/vim#16446 https://github.com/vim/vim/commit/ca307efe486670b76563a4a287bc94dace57fb74 Co-authored-by: Jonathon <jonathonwhite@protonmail.com>
* vim-patch:9.1.1022: linematch option value not completedzeertzjq2025-02-04
| | | | | | | | | | | | | Problem: linematch option value not completed (after v9.1.1009) Solution: Update diffoption completion values related: vim/vim#9661 closes: vim/vim#16437 https://github.com/vim/vim/commit/9162e636b31dcac57876cbdec15a683cedd9760e Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.1009: diff feature can be improvedzeertzjq2025-02-04
| | | | | | | | | | | | Problem: diff feature can be improved Solution: include the linematch diff alignment algorithm (Jonathon) closes: vim/vim#9661 https://github.com/vim/vim/commit/7c7a4e6d1ad50d5b25b42aa2d5a33a8d04a4cc8a Co-authored-by: Jonathon <jonathonwhite@protonmail.com>
* vim-patch:9.1.1074: Strange error when heredoc marker starts with "trim" ↵zeertzjq2025-02-04
| | | | | | | | | | | | | | | | | (#32317) Problem: Strange error when heredoc marker starts with "trim". Solution: Check for whitespace after "trim" or "eval" (zeertzjq) For :python3 etc., a heredoc marker that starts with a lower-case letter is valid, and when it starts with "trim" it works in a script but not in a function, and this PR makes it works in a function. For :let, a heredoc marker that starts with a lower-case letter is not valid, but when it starts with "trim" or "eval" the error can be a bit confusing in a function, and this PR make it less confusing. closes: vim/vim#16574 https://github.com/vim/vim/commit/449c2e5454735fe1cfc8c21b2c6880d6bdf4cd6e
* vim-patch:9.1.1073: tests: test_compiler fails on Windows without Mavenzeertzjq2025-02-04
| | | | | | | | | | Problem: tests: test_compiler fails on Windows without Maven. Solution: Add Xspotbugs directory to $PATH when mvn is not available (zeertzjq). closes: vim/vim#16576 https://github.com/vim/vim/commit/23da16d3d023a20565dc29128208e6cb095231d9
* vim-patch:9.1.0967: SpotBugs compiler setup can be further improvedzeertzjq2025-02-04
| | | | | | | | | | | | Problem: SpotBugs compiler can be further improved Solution: Introduce event-driven primitives for SpotBugs (Aliaksei Budavei) closes: vim/vim#16258 https://github.com/vim/vim/commit/2e252474c4df5018b9819d86ebb70bf3b1b1a1af Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:9.1.0935: SpotBugs compiler can be improvedzeertzjq2025-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: SpotBugs compiler can be improved Solution: runtime(compiler): Improve defaults and error handling for SpotBugs; update test_compiler.vim (Aliaksei Budavei) runtime(compiler): Improve defaults and error handling for SpotBugs * Keep "spotbugs#DefaultPreCompilerTestAction()" defined but do not assign its Funcref to the "PreCompilerTestAction" key of "g:spotbugs_properties": there are no default and there can only be introduced arbitrary "*sourceDirPath" entries; therefore, this assignment is confusing at best, given that the function's implementation delegates to whatever "PreCompilerAction" is. * Allow for the possibility of relative source pathnames passed as arguments to Vim for the Javac default actions, and the necessity to have them properly reconciled when the current working directory is changed. * Do not expect users to remember or know that new source files ‘must be’ ":argadd"'d to be then known to the Javac default actions; so collect the names of Java-file buffers and Java-file Vim arguments; and let users providing the "@sources" file-lists in the "g:javac_makeprg_params" variable update these file-lists themselves. * Strive to not leave behind a fire-once Syntax ":autocmd" for a Java buffer whenever an arbitrary pre-compile action errors out. * Only attempt to run a post-compiler action in the absence of failures for a pre-compiler action. Note that warnings and failures are treated alike (?!) by the Javac compiler, so when previews are tried out with "--enable-preview", remember about passing "-Xlint:-preview" too to also let SpotBugs have a go. * Properly group conditional operators when testing for key entries in a user-defined variable. * Also test whether "javaExternal" is defined when choosing an implementation for source-file parsing. * Two commands are provided to toggle actions for buffer-local autocommands: - SpotBugsRemoveBufferAutocmd; - SpotBugsDefineBufferAutocmd. For example, try this from "~/.vim/after/ftplugin/java.vim": ------------------------------------------------------------ if exists(':SpotBugsDefineBufferAutocmd') == 2 SpotBugsDefineBufferAutocmd BufWritePost SigUSR1 endif ------------------------------------------------------------ And ":doautocmd java_spotbugs User" can be manually used at will. closes: vim/vim#16140 https://github.com/vim/vim/commit/368ef5a48c7a41af7fe2c32a5d5659e23aff63d0 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* Merge #32082 refactor(treesitter): use coroutines for resuming _parse()Justin M. Keyes2025-02-03
|\
| * feat(treesitter): allow LanguageTree:is_valid() to accept a rangeRiley Bruins2025-02-02
| | | | | | | | | | | | When given, only that range will be checked for validity rather than the entire tree. This is used in the highlighter to save CPU cycles since we only need to parse a certain region at a time anyway.
* | feat(diagnostic): format() can filter diagnostics by returning nil #32302Maria José Solano2025-02-03
| |
* | vim-patch:9.1.1071: args missing after failing to redefine a functionzeertzjq2025-02-03
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Arguments of a function are missing after failing to redefine it (after 8.2.2505), and heap-use-after-free with script-local function (after 9.1.1063). Solution: Don't clear arguments or free uf_name_exp when failing to redefine an existing function (zeertzjq) closes: vim/vim#16567 https://github.com/vim/vim/commit/04d2a3fdc051d6a419dc0ea4de7a9640cefccd31
* | vim-patch:9.1.1066: heap-use-after-free and stack-use-after-scope with ↵zeertzjq2025-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | :14verbose Problem: heap-use-after-free and stack-use-after-scope with :14verbose when using :return and :try (after 9.1.1063). Solution: Move back the vim_free(tofree) and the scope of numbuf[]. (zeertzjq) closes: vim/vim#16563 https://github.com/vim/vim/commit/2101230f4013860dbafcb0cab3f4e6bc92fb6f35
* | vim-patch:9.1.1070: Cannot control cursor positioning of getchar() (#32303)zeertzjq2025-02-03
| | | | | | | | | | | | | | | | | | | | Problem: Cannot control cursor positioning of getchar(). Solution: Add "cursor" flag to {opts}, with possible values "hide", "keep" and "msg". related: vim/vim#10603 closes: vim/vim#16569 https://github.com/vim/vim/commit/edf0f7db28f87611368e158210e58ed30f673098
* | fix(statusline): overwriting stl_items with nvim_eval_statusline() {-item #32265luukvbaal2025-02-02
|/ | | | | | | | | | Problem: When an evaluation {-item calls `nvim_eval_statusline()`, that nested call may overwrite the same memory used for `stl_items`. Solution: Make `curitem` static and use it to compute an offset to avoid overwriting `stl_items` in nested calls to `build_stl_str_hl()`. Move miscellaneous statusline tests into `describe()` block.
* vim-patch:9.1.1069: preinsert text completions not deleted with <C-W>/<C-U> ↵glepnir2025-02-02
| | | | | | | | | | | | | (#32296) Problem: preinsert text completions not deleted with <C-W>/<C-U> (ddad431, after v9.1.1059) Solution: handle <C-W> or <C-U> specifically and clear the completion (glepnir) fixes: vim/vim#16557 closes: vim/vim#16565 https://github.com/vim/vim/commit/001c26cd6194fba2bfccb06dec30fdc9e1410e62
* vim-patch:9.1.1068: getchar() can't distinguish between C-I and Tab (#32295)zeertzjq2025-02-02
| | | | | | | | | | | | Problem: getchar() can't distinguish between C-I and Tab. Solution: Add {opts} to pass extra flags to getchar() and getcharstr(), with "number" and "simplify" keys. related: vim/vim#10603 closes: vim/vim#16554 https://github.com/vim/vim/commit/e0a2ab397fd13a71efec85b017d5d4d62baf7f63 Cherry-pick tv_dict_has_key() from patch 8.2.4683.
* fix(autocmds): once=true Lua event-handler may call itself #29544Felipe Vicentin2025-02-01
| | | | | | | | | | | | | | | | | | Problem: Event handler declared with `once=true` can re-trigger itself (i.e. more than once!) by calling `nvim_exec_autocmds` or `:doautocmd`. Analysis: This happens because the callback is executed before deletion/cleanup (`aucmd_del`). And calling `aucmd_del` before `call_autocmd_callback` breaks the autocmd execution... Solution: Set `ac->pat=NULL` to temporarily "delete" the autocmd, then restore it after executing the callback. Fix #25526 Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* vim-patch:9.1.1065: no digraph for "Approaches the limit" (#32289)zeertzjq2025-02-02
| | | | | | | | | | | | | | Problem: no digraph for "Approaches the limit" Solution: Add the digraph using .= (Hans Ginzel) Add digraph Approaches the Limit ≐ U+2250 https://www.fileformat.info/info/unicode/char/2250/index.htm closes: vim/vim#16508 https://github.com/vim/vim/commit/3a621188ee52badfe7aa783db12588a78dcd8ed6 Co-authored-by: Hans Ginzel <hans@matfyz.cz>
* fix(treesitter): nil access when running string parser asyncRiley Bruins2025-02-01
|