aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
* vim-patch:8.1.1176: test for dragging a tab is flakyzeertzjq2023-04-28
| | | | | | | | | Problem: Test for dragging a tab is flaky. Solution: Add a brief sleep. https://github.com/vim/vim/commit/7f27976589f075d591d54f754be257b5f6e6fd92 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.1.1175: no test for dragging a tab and double click for new tabzeertzjq2023-04-28
| | | | | | | | | | | | Problem: No test for dragging a tab with the mouse and for creating a new tab by double clicking in the tabline. Solution: Add two tests. (Dominique Pelle, closes vim/vim#4258) https://github.com/vim/vim/commit/e3e3828f935392bb3c2147a000db1c7b094a4360 Set 'mousetime' to 0 instead. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.1.1167: no test for closing tab by click in tablinezeertzjq2023-04-28
| | | | | | | | | | Problem: No test for closing tab by click in tabline. Solution: Add a test. Also fix that dragging window separator could fail in a large terminal. (Dominique Pelle, closes vim/vim#4253) https://github.com/vim/vim/commit/39f76c6ac0f5e07a0e608ddf920a67702ec83824 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.1.1165: no test for mouse clicks in the terminal tabpage linezeertzjq2023-04-28
| | | | | | | | | | Problem: No test for mouse clicks in the terminal tabpage line. Solution: Add a test. (Dominique Pelle, closes vim/vim#4247). Also init TabPageIdxs[], in case it's used before a redraw. https://github.com/vim/vim/commit/ca57ab54d759a3e265b19bbe31b57dfed00bbdd0 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:8.1.1160: termcodes test would fail in a very big terminalzeertzjq2023-04-28
| | | | | | | | | | Problem: Termcodes test would fail in a very big terminal. Solution: Bail out when the row is larger than what will work. (Dominique Pelle, closes vim/vim#4246) https://github.com/vim/vim/commit/c8b3ddab51cd2901d5946949d02c96e1035b25c0 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:partial:8.1.1155: termcodes tests can be improvedzeertzjq2023-04-28
| | | | | | | | | | Problem: Termcodes tests can be improved. Solution: Add helper functions to simplify tests. Dragging statusline for xterm and sgr. (Dominique Pelle, closes vim/vim#4237) https://github.com/vim/vim/commit/3fbd2d7c316eaeea463b2f84f29b36d439306bf9 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:partial:8.2.0425: code for modeless selection not sufficiently ↵zeertzjq2023-04-28
| | | | | | | | | | | tested (#23362) Problem: Code for modeless selection not sufficiently tested. Solution: Add tests. Move mouse code functionality to a common script file. (Yegappan Lakshmanan, closes vim/vim#5821) Add some mouse.vim functions that can be made to work in Nvim. https://github.com/vim/vim/commit/515545e11f523d14343b1e588dc0b9bd3d362bc2
* vim-patch:9.0.1494: crash when recovering from corrupted swap file (#23358)zeertzjq2023-04-28
| | | | | | | | Problem: Crash when recovering from corrupted swap file. Solution: Bail out when the line index looks wrong. (closes vim/vim#12276) https://github.com/vim/vim/commit/bf1b7132021bac0fccefebb4a1c24a5f372bae4f Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:9.0.1493: popup menu position wrong in window with toolbarzeertzjq2023-04-28
| | | | | | | | | | Problem: Popup menu position wrong in window with toolbar. Solution: Take the window toolbar into account when positioning the popup menu. (closes vim/vim#12308) https://github.com/vim/vim/commit/4e1ca0d9a6c6d66987da67155e97f83f286ffbcc Fixed in the previous commit. Test only.
* fix(pum): make :popup position correctly with float borderzeertzjq2023-04-28
|
* fix(events): null dereference in autocmd functionsii142023-04-27
|
* perf(events): store autocommands in flat vectors (#23256)ii142023-04-27
| | | | | | | | | | Instead of nested linked lists, store autocommands in a flat, contiguous kvec_t, with one kvec_t per event type. Previously patterns were stored in each node of the outer linked list, so they can be matched only once on repeating patterns. They are now reference counted and referenced in each autocommand, and matching is skipped if the pattern repeats. Speeds up creation and deletion, execution is not affected. Co-authored-by: ii14 <ii14@users.noreply.github.com>
* fix: disallow removing extmarks in on_lines callbacks (#23219)Lewis Russell2023-04-27
| | | | | | | | | | fix(extmarks): disallow removing extmarks in on_lines callbacks decor_redraw_start (which runs before decor_providers_invoke_lines) gets references for the extmarks on a specific line. If these extmarks are deleted in on_lines callbacks then this results in a heap-use-after-free error. Fixes #22801
* vim-patch:9.0.1492: using uninitialized memory when argument is missing (#23351)zeertzjq2023-04-28
| | | | | | | | | Problem: Using uninitialized memory when argument is missing. Solution: Check there are sufficient arguments before the base. (closes vim/vim#12302) https://github.com/vim/vim/commit/b7f2270bab102d68f83a6300699b7f98efad81f2 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* fix(pum): position properly with ext_multigrid (#23336)zeertzjq2023-04-27
|
* Merge pull request #23216 from bfredl/lpegbfredl2023-04-27
|\ | | | | refactor(build): include lpeg as a library
| * refactor(build): include lpeg as a librarybfredl2023-04-27
| |
* | test: fix dependencies between test cases (#23343)zeertzjq2023-04-27
| | | | | | Discovered using --shuffle argument of busted.
* | build: remove BUSTED_PRG dead code (#23340)zeertzjq2023-04-27
| | | | | | BUSTED_PRG is no longer used by RunTests.cmake.
* | vim-patch:9.0.1491: wrong scrolling with ls=0 and :botright split (#23333)zeertzjq2023-04-27
| | | | | | | | | | | | Problem: Wrong scrolling with ls=0 and :botright split. Solution: Add statusline before calling frame_new_height(). (closes vim/vim#12299) https://github.com/vim/vim/commit/fbf2071ac9ef08302a1df86c15f3d4ddbe871243
* | test: scheduled callback shouldn't trigger ModeChanged repeatedlyMunif Tanjim2023-04-26
| |
* | vim-patch:9.0.1490: the ModeChanged event may be triggered too oftenzeertzjq2023-04-26
|/ | | | | | | | Problem: The ModeChanged event may be triggered too often. Solution: Only trigger ModeChanged when no operator is pending. (closes vim/vim#12298) https://github.com/vim/vim/commit/73916bac5ac2a054a0c71adfe8d742691cdfd95c
* Merge pull request #23308 from bfredl/fs_time_boogalobfredl2023-04-26
|\ | | | | refactor(fs): IT'S TIME: get rid of fs_loop and fs_loop_mutex
| * refactor(fs): now it is time to get rid of fs_loop and fs_loop_mutexbfredl2023-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here's the headline: when run in sync mode (last argument cb=NULL), these functions don't actually use the uv_loop_t. An earlier version of this patch instead replaced fs_loop with using main_loop.uv on the main thread and luv_loop() on luv worker threads. However this made the code more complicated for no reason. Also arbitrarily, half of these functions would attempt to handle UV_ENOMEM by try_to_free_memory(). This would mostly happen on windows because it needs to allocate a converted WCHAR buffer. This should be a quite rare situation. Your system is pretty much hosed already if you cannot allocate like 50 WCHAR:s. Therefore, take the liberty of simply removing this fallback. In addition, we tried to "recover" from ENOMEM in read()/readv() this way which doesn't make any sense. The read buffer(s) are already allocated at this point. This would also be an issue when using these functions on a worker thread, as try_to_free_memory() is not thread-safe. Currently os_file_is_readable() and os_is_dir() is used by worker threads (as part of nvim__get_runtime(), to implement require from 'rtp' in threads). In the end, these changes makes _all_ os/fs.c functions thread-safe, and we thus don't need to document and maintain a thread-safe subset.
* | vim-patch:9.0.1485: no functions for converting from/to UTF-16 index (#23318)zeertzjq2023-04-26
| | | | | | | | | | | | | | | | | | Problem: no functions for converting from/to UTF-16 index. Solution: Add UTF-16 flag to existing funtions and add strutf16len() and utf16idx(). (Yegappan Lakshmanan, closes vim/vim#12216) https://github.com/vim/vim/commit/67672ef097dd708244ff042a8364994da2b91e75 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | vim-patch:partial:9.0.0359: error message for wrong argument type is not ↵zeertzjq2023-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | specific (#23315) Problem: Error message for wrong argument type is not specific. Solution: Include more information in the error. (Yegappan Lakshmanan, closes vim/vim#11037) https://github.com/vim/vim/commit/8deb2b30c77035bb682ccf80b781455ac1d6038b Skip reduce() and deepcopy() changes because of missing patches. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | vim-patch:9.0.0875: using freed memory when executing delfunc at more prompt ↵zeertzjq2023-04-25
| | | | | | | | | | | | | | | | | | | | (#23314) Problem: Using freed memory when executing delfunc at the more prompt. Solution: Check function list not changed in another place. (closes vim/vim#11437) https://github.com/vim/vim/commit/398a26f7fcd58fbc6e2329f892edbb7479a971bb Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | Merge pull request #23303 from gpanders/more-vim-iterGregory Anders2023-04-25
|\ \ | | | | | | Create iter_spec and vim.iter module
| * | test: move vim.iter tests to separate fileGregory Anders2023-04-24
| | |
* | | vim-patch:8.2.3772: timer info test fails on slow machinezeertzjq2023-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Timer info test fails on slow machine. Solution: Use WaitForAssert(). https://github.com/vim/vim/commit/ff39a650b2bd31e30d1bb8766e8560f9a14a7137 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | | vim-patch:8.2.3768: timer_info() has the wrong repeat value in a timer callbackzeertzjq2023-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: timer_info() has the wrong repeat value in a timer callback. Solution: Do not add one to the repeat value when in the callback. (closes vim/vim#9294) https://github.com/vim/vim/commit/95b2dd0c008f0977ebb3cbe233a5064001a332e1 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | | vim-patch:8.2.5019: cannot get the first screen column of a character (#23312)zeertzjq2023-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot get the first screen column of a character. Solution: Let virtcol() optionally return a list. (closes vim/vim#10482, closes vim/vim#7964) https://github.com/vim/vim/commit/0f7a3e1de6f71e8e1423fe594890d6aa7f94e132 Co-authored-by: LemonBoy <thatlemon@gmail.com>
* | | vim-patch:9.0.0335: checks for Dictionary argument often give a vague error ↵zeertzjq2023-04-25
| |/ |/| | | | | | | | | | | | | | | | | | | | | (#23309) Problem: Checks for Dictionary argument often give a vague error message. Solution: Give a useful error message. (Yegappan Lakshmanan, closes vim/vim#11009) https://github.com/vim/vim/commit/04c4c5746e15884768d2cb41370c3276a196cd4c Cherry-pick removal of E922 from docs from patch 9.0.1403. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | Merge pull request #23293 from bfredl/bigsleepbfredl2023-04-25
|\ \ | | | | | | refactor(time): refactor delay with input checking
| * | refactor(time): refactor delay with input checkingbfredl2023-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, there were three low-level delay entry points - os_delay(ms, ignoreinput=true): sleep for ms, only break on got_int - os_delay(ms, ignoreinput=false): sleep for ms, break on any key input os_microdelay(us, false): equivalent, but in μs (not directly called) - os_microdelay(us, true): sleep for μs, never break. The implementation of the latter two both used uv_cond_timedwait() This could have been for two reasons: 1. allow another thread to "interrupt" the wait 2. uv_cond_timedwait() has higher resolution than uv_sleep() However we (1) never used the first, even when TUI was a thread, and (2) nowhere in the codebase are we using μs resolution, it is always a ms multiplied with 1000. In addition, os_delay(ms, false) would completely block the thread for 100ms intervals and in between check for input. This is not how event handling is done alound here. Therefore: Replace the implementation of os_delay(ms, false) to use LOOP_PROCESS_EVENTS_UNTIL which does a proper epoll wait with a timeout, instead of the 100ms timer panic. Replace os_microdelay(us, false) with a direct wrapper of uv_sleep.
* | | fix(statusline): also allow right click when 'mousemodel' is "popup*" (#23258)luukvbaal2023-04-25
| |/ |/| | | | | | | Problem: The 'statusline'-format ui elements do not receive right click events when "mousemodel" is "popup*" Solution: Do not draw popupmenu and handle click event instead.
* | fix(pum): show right-click menu above cmdline area (#23298)zeertzjq2023-04-24
| |
* | vim-patch:9.0.1478: filetypes for *.v files not detected properly (#23282)Christian Clason2023-04-23
| | | | | | | | | | | | | | | | | | | | | | | | * vim-patch:9.0.1478: filetypes for *.v files not detected properly Problem: Filetypes for *.v files not detected properly. Solution: Use the file contents to detect the filetype. (Turiiya, closes vim/vim#12281) https://github.com/vim/vim/commit/80406c26188219f3773b2e9c49160caeeb386ee2 Co-authored-by: Turiiya <34311583+tobealive@users.noreply.github.com> Co-authored-by: Jonas Strittmatter <40792180+smjonas@users.noreply.github.com>
* | fix(typval): don't treat v:null as truthy (#23281)zeertzjq2023-04-23
|/
* fix(api): avoid assertion when autocmd group id is 0 (#23210)Dhruv Manilawala2023-04-23
|
* vim-patch:9.0.1477: crash when recovering from corrupted swap file (#23273)zeertzjq2023-04-23
| | | | | | | | Problem: Crash when recovering from corrupted swap file. Solution: Check for a valid page count. (closes vim/vim#12275) https://github.com/vim/vim/commit/b67ba03d3ef2e6c5f207d508e85fc6906f938028 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* test(lsp): fix unstable tests for semantic tokensjdrouhard2023-04-23
| | | | Add screen:expect() calls after insert() to make sure the screen has been drawn before we assert the state of the semantic tokens table
* vim-patch:9.0.1476: lines put in non-current window are not displayed (#23265)zeertzjq2023-04-23
| | | | | | | | | | Problem: Lines put in non-current window are not displayed. (Marius Gedminas) Solution: Don't increment the topline when inserting just above it. (closes vim/vim#12212) https://github.com/vim/vim/commit/e7f05a8780426dc7af247419c6d02d5f1e896689 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:9.0.1475: busted configuration files are not recognized (#23266)zeertzjq2023-04-22
| | | | | | | Problem: Busted configuration files are not recognized. Solution: Recognize busted configuration files as Lua. (Craig MacEachern, closes vim/vim#12209) Co-authored-by: C.D. MacEachern <craig.daniel.maceachern@gmail.com>
* docs(powershell): use tee.exe instead of Tee-ObjectT7272023-04-22
| | | | | | | Problem: Tee-Object does not create a file if it does not receive input for example when :grep does not find matches. and so nvim tries to open a nonexistent errorfile causing an error. Solution: use tee.exe instead of Tee-Object
* refactor(iter): use metatable as packed table tag (#23254)Gregory Anders2023-04-21
| | | | | This is a more robust method for tagging a packed table as it completely eliminates the possibility of mistaking an actual table key as the packed table tag.
* fix(lua): vim.split may trim inner empty itemsJustin M. Keyes2023-04-21
| | | | | | | | | | Problem: `vim.split('a:::', ':', {trimempty=true})` trims inner empty items. Regression from 9c49c1047079427ff0a2356cb37302934845108e Solution: Set `empty_start=false` when first non-empty item is found. close #23212
* fix(usercmd): Fix buffer overflow in uc_list() (#23225)Andreas Schneider2023-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fix(usercmd): fix buffer overflow in uc_list() Build with: -Wp,-D_FORTIFY_SOURCE=3 -O1 and gcc 13. *** buffer overflow detected ***: terminated (gdb) bt #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f3eb8b93c03 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007f3eb8b42aee in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f3eb8b2b87f in __GI_abort () at abort.c:79 #4 0x00007f3eb8b2c60f in __libc_message (fmt=fmt@entry=0x7f3eb8ca72e6 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:150 #5 0x00007f3eb8c27b29 in __GI___fortify_fail (msg=msg@entry=0x7f3eb8ca728c "buffer overflow detected") at fortify_fail.c:24 #6 0x00007f3eb8c26364 in __GI___chk_fail () at chk_fail.c:28 #7 0x00007f3eb8c25f45 in ___snprintf_chk (s=s@entry=0x55b8c7c096a5 <IObuff+5> "t' item", maxlen=maxlen@entry=1025, flag=flag@entry=2, slen=slen@entry=1020, format=format@entry=0x55b8c7b872a6 "%ldc") at snprintf_chk.c:29 #8 0x000055b8c7aea59f in snprintf (__fmt=0x55b8c7b872a6 "%ldc", __n=1025, __s=0x55b8c7c096a5 <IObuff+5> "t' item") at /usr/include/bits/stdio2.h:54 #9 uc_list (name=name@entry=0x55b8c8351788 "Explore", name_len=name_len@entry=7) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/usercmd.c:534 #10 0x000055b8c7aeb8a0 in ex_command (eap=0x7fffdc350e60) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/usercmd.c:1009 #11 0x000055b8c7972537 in execute_cmd0 (retv=retv@entry=0x7fffdc350e54, eap=eap@entry=0x7fffdc350e60, errormsg=errormsg@entry=0x7fffdc350e58, preview=preview@entry=false) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/ex_docmd.c:1620 #12 0x000055b8c7975c55 in do_one_cmd (cmdlinep=cmdlinep@entry=0x7fffdc3510b8, flags=flags@entry=0, cstack=cstack@entry=0x7fffdc351140, fgetline=fgetline@entry=0x55b8c79882b8 <getexline>, cookie=cookie@entry=0x0) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/ex_docmd.c:2279 #13 0x000055b8c79767fe in do_cmdline (cmdline=<optimized out>, fgetline=0x55b8c79882b8 <getexline>, cookie=0x0, flags=0) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/ex_docmd.c:578 #14 0x000055b8c7a17463 in nv_colon (cap=0x7fffdc351780) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/normal.c:3228 #15 0x000055b8c7a11b35 in normal_execute (state=0x7fffdc351700, key=<optimized out>) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/normal.c:1196 #16 0x000055b8c7ab0994 in state_enter (s=0x7fffdc351700) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/state.c:99 #17 0x000055b8c7a0ef68 in normal_enter (cmdwin=false, noexmode=false) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/normal.c:497 #18 0x000055b8c78a0640 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/neovim-0.9.0-1.fc38.x86_64/src/nvim/main.c:641
* Merge pull request #23187 from luukvbaal/statuscolumnLewis Russell2023-04-21
|\ | | | | fix(column): rebuild status column when sign column is invalid
| * fix(column): rebuild status column when sign column is invalidLuuk van Baal2023-04-19
| |