aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
| * | 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
| |
| * test(column): statuscolumn is rebuild when signs are (un)placedLuuk van Baal2023-04-19
| |
* | vim-patch:9.0.1472: ":drop fname" may change the last used tab page (#23230)zeertzjq2023-04-21
| | | | | | | | | | | | | | | | | | Problem: ":drop fname" may change the last used tab page. Solution: Restore the last used tab page when :drop has changed it. (closes vim/vim#12087) https://github.com/vim/vim/commit/8281a16efc76197f7b0b2a385dffb44fce66d33e Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:8.2.4598: profile completion test sometimes fails (#23208)zeertzjq2023-04-20
| | | | | | | | | | | | | | | | Problem: Profile completion test sometimes fails. Solution: Delete the .res file before running tests. https://github.com/vim/vim/commit/7e0be3ea211748a77d32cb1d3d35ecfc246cf0f2 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | Merge pull request #23198 from gpanders/iter-fixGregory Anders2023-04-19
|\ \ | | | | | | fix(iter): allow table values in iterator pipelines
| * | fix(iter): remove special case totable for map-like tablesGregory Anders2023-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was originally meant as a convenience but prevents possible functionality. For example: -- Get the keys of the table with even values local t = { a = 1, b = 2, c = 3, d = 4 } vim.iter(t):map(function(k, v) if v % 2 == 0 then return k end end):totable() The example above would not work, because the map() function returns only a single value, and cannot be converted back into a table (there are many such examples like this). Instead, to convert an iterator into a map-like table, users can use fold(): vim.iter(t):fold({}, function(t, k, v) t[k] = v return t end)
| * | fix(iter): add tag to packed tableGregory Anders2023-04-19
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | If pack() is called with a single value, it does not create a table; it simply returns the value it is passed. When unpack is called with a table argument, it interprets that table as a list of values that were packed together into a table. This causes a problem when the single value being packed is _itself_ a table. pack() will not place it into another table, but unpack() sees the table argument and tries to unpack it. To fix this, we add a simple "tag" to packed table values so that unpack() only attempts to unpack tables that have this tag. Other tables are left alone. The tag is simply the length of the table.
* | vim-patch:9.0.1470: deferred functions invoked in unexpected order (#23199)zeertzjq2023-04-19
| | | | | | | | | | | | | | | | Problem: Deferred functions invoked in unexpected order when using :qa and autocommands. Solution: Call deferred functions for the current funccal before using the stack. (closes vim/vim#12278) https://github.com/vim/vim/commit/1be4b81bfb3d7edf0e2ae41711d429e8fa5e0555
* | test: convert tests in test_conceal.vim to Luazeertzjq2023-04-19
| |
* | vim-patch:9.0.1141: 'cursorcolumn' and 'colorcolumn' wrong after concealingzeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and wrapping line. Solution: Reset "wlv.vcol_off" after each screen line. (Alexey Radkov, closes vim/vim#11777) https://github.com/vim/vim/commit/aaa16b09180080284c4a5049fe16bdaccbb13b74 Cherry-pick test_conceal.vim changes from patches 8.2.4339, 9.0.0418. Co-authored-by: Alexey Radkov <alexey.radkov@gmail.com>
* | vim-patch:9.0.1467: Jenkinsfiles are not recognized as groovy (#23195)Christian Clason2023-04-19
| | | | | | | | | | | | | | | | Problem: Jenkinsfiles are not recognized as groovy. Solution: Add a pattern for Jenkinsfiles. (closes vim/vim#12236) https://github.com/vim/vim/commit/142ffb024dd5123090c2fd02f55702e76520f1df Co-authored-by: dundargoc <gocdundar@gmail.com>
* | vim-patch:9.0.1464: strace filetype detection is expensive (#23175)Christian Clason2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Strace filetype detection is expensive. Solution: Match with a cheap pattern first. (Federico Mengozzi, closes vim/vim#12220) https://github.com/vim/vim/commit/6e5a9f948221b52caaaf106079cb3430c4dd7c77 Co-authored-by: Federico Mengozzi <19249682+fedemengo@users.noreply.github.com>
* | test(terminal/channel_spec): fix screen test immediate success (#23192)zeertzjq2023-04-19
| | | | | | Check for the [No Name] after wiping the buffer.
* | vim-patch:9.0.1034: reporting swap file when windows are splitzeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Reporting swap file when windows are split. Solution: Close extra windows after running a test. https://github.com/vim/vim/commit/e5eae82bb7199bd71c6216269e78c69e9a793c8f Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1021: test trips over g:namezeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Test trips over g:name. Solution: Delete g:name after using it. https://github.com/vim/vim/commit/d6e74f547910d5273a3b99c23fb3197131c7d379 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1020: tests call GetSwapFileList() before it is definedzeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | | | Problem: Tests call GetSwapFileList() before it is defined. Solution: Move the call to after defining the function. (Christopher Plewright) https://github.com/vim/vim/commit/6572a90287c7aa6e8042b18604891e9df3657245 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1012: tests may get stuck in buffer with swap filezeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Tests may get stuck in buffer with swap file. Solution: Bail out when bwipe! doesn't get another buffer. https://github.com/vim/vim/commit/fa2533c8bb96abcec29b9dc6bd4fe7054c7c7e50 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1010: stray warnings for existing swap fileszeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Stray warnings for existing swap files. Solution: Wipe out the buffer until it has no name and no swap file. https://github.com/vim/vim/commit/23526d2539e8679ea8df14e3a018101dedc3f391 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1009: test for catch after interrupt is flaky on MS-Windowszeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Test for catch after interrupt is flaky on MS-Windows. Solution: Mark the test as flaky. https://github.com/vim/vim/commit/72b5b0d51aa9ddf8d338a5a133a667a3c2392ae1 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1008: test for swapfilelist() fails on MS-Windowszeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Test for swapfilelist() fails on MS-Windows. Solution: Only check the tail of the path. Mark a test as flaky. https://github.com/vim/vim/commit/6cf3151f0e3839332c89367b7384c395a1185927 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1007: there is no way to get a list of swap file nameszeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: There is no way to get a list of swap file names. Solution: Add the swapfilelist() function. Use it in the test script to clean up. Remove deleting individual swap files. https://github.com/vim/vim/commit/c216a7a21a25a701b84b79abc1ba6ab0baa3a311 vim-patch:9.0.1005: a failed test may leave a swap file behind Problem: A failed test may leave a swap file behind. Solution: Delete the swap file to avoid another test to fail. Use another file name. https://github.com/vim/vim/commit/d0f8d39d20f8d42f7451f781f7be0bcd20e06741 Cherry-pick test_window_cmd.vim changes from patch 8.2.1593. Remove FUNC_ATTR_UNUSED from eval functions as fptr is always unused. Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0561: when a test gets stuck it just hangs foreverzeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | | | | | | | Problem: When a test gets stuck it just hangs forever. Solution: Set a timeout of 30 seconds. https://github.com/vim/vim/commit/3bcd0ddc2deb34794c735c6ea0b8f964b510c6db Note: This doesn't cause test_timers.vim failures in Nvim because there is a SetUp() function that calls timer_stopall(). Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0560: elapsed time since testing started is not visiblezeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Elapsed time since testing started is not visible. Solution: Show the elapsed time while running tests. https://github.com/vim/vim/commit/b9093d50098ccff3848c2a404b9d0324a074c7b7 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0545: when a test is slow and CI times out there is no time infozeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: When a test is slow and CI times out there is no time info. Solution: Add the elapsed time to the "Executing" message. https://github.com/vim/vim/commit/daaa3d9965d74faf1f75aea218822bfb7ba687a7 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0514: terminal test sometimes hangszeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Terminal test sometimes hangs. Solution: Add a bit more information to the test output. (issue vim/vim#11179) https://github.com/vim/vim/commit/a22c56a59a1e60f6976e61d16001623424a26b3a Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0426: failed flaky tests reports only start timezeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: Failed flaky tests reports only start time. Solution: Also report the end time. https://github.com/vim/vim/commit/65258d36ddfab371c7982343efc9b2533ba39075 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0372: MS-Windows: "%T" time format does not appear to workzeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: MS-Windows: "%T" time format does not appear to work. Solution: Use "%H:%M:%S" instead. https://github.com/vim/vim/commit/5fbbec180b623cd6ebfc9528be6fa70b4cf664d4 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.0369: a failing flaky test doesn't mention the timezeertzjq2023-04-19
| | | | | | | | | | | | | | | | | | Problem: A failing flaky test doesn't mention the time. Solution: Add the time for debugging. Improve error message. https://github.com/vim/vim/commit/06d32a0c177e4166ff0491668cd459464bc2ef45 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | vim-patch:9.0.1469: deferred functions not called from autocommandszeertzjq2023-04-19
| | | | | | | | | | | | | | Problem: Deferred functions not called from autocommands. Solution: Also go through the funccal_stack. (closes vim/vim#12267) https://github.com/vim/vim/commit/960cf9119e3f4922ca9719feb5e0c0bc5e3b9840
* | vim-patch:9.0.1468: recursively calling :defer function if it does :qazeertzjq2023-04-19
| | | | | | | | | | | | | | | | Problem: Recursively calling :defer function if it does :qa in a compiled function. Solution: Clear the defer entry before calling the function. (closes vim/vim#12271) https://github.com/vim/vim/commit/a1f2b5ddc63d4e2b6ab047d8c839dd8477b36aba
* | vim-patch:9.0.1462: recursively calling :defer function if it does :qazeertzjq2023-04-19
|/ | | | | | | | | Problem: Recursively calling :defer function if it does :qa. Solution: Clear the defer entry before calling the function. (closes vim/vim#12266) https://github.com/vim/vim/commit/42994bf678f46dc9ca66e49f512261da8864fff6 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* fix(api): extmark highlight groups not always included in details (#23179)luukvbaal2023-04-18
| | | | Problem: Erroneous for loop condition. Solution: Remove for loop condition.
* Merge pull request #23005 from seandewar/fix-ruf-cmdline-posSean Dewar2023-04-18
|\ | | | | fix(ruler): fix some ruler issues with no statusline
| * fix(ruler): show ruler of curwin with no statusline in cmdlineSean Dewar2023-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: After neovim/neovim@846a056, only the ruler for current floating or last window without a statusline is drawn in the cmdline. This means that if the current window is not one of these, but has no statusline, its ruler will not be drawn anymore. Solution: Make `showmode()` draw the ruler of the current window or the last window in the cmdline if it has no statusline. This also maintains the previously restored floating window case (`float->w_status_height` should be 0). This behaviour should again match Vim, but without the overdraw it seems to do to achieve the same effect; it calls `showmode()` to draw the ruler for the last window without a statusline, then may draw over it in `showruler()` (which is now `show_cursor_info_later()` in Nvim) to show the ruler for the current window..? It's very confusing. Also update the logic in `win_redr_ruler()` to mirror the check done in `showmode()`, so that the ruler doesn't potentially draw over the long ins-completion mode message in some cases.
| * vim-patch:9.0.1461: ruler not drawn correctly when using 'rulerformat'Sean Dewar2023-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Ruler not drawn correctly when using 'rulerformat'. Solution: Adjust formatting depending on whether the ruler is drawn in the statusline or the command line. (Sean Dewar, closes vim/vim#12246) https://github.com/vim/vim/commit/fc8a601c3251c0388a88c1235b18c529385f7196 This issue was made apparent after neovim/neovim@0f1e2b6, as `showmode()` calls `win_redr_ruler()` with `curwin` now if it's floating, rather than the last window if there's no statusline (which usually already shares its right side with that of the editor). Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>