aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
* | vim-patch:9.0.1962: No support for writing extended attributeszeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No support for writing extended attributes Solution: Add extended attribute support for linux It's been a long standing issue, that if you write a file with extended attributes and backupcopy is set to no, the file will loose the extended attributes. So this patch adds support for retrieving the extended attributes and copying it to the new file. It currently only works on linux, mainly because I don't know the different APIs for other systems (BSD, MacOSX and Solaris). On linux, this should be supported since Kernel 2.4 or something, so this should be pretty safe to use now. Enable the extended attribute support with normal builds. I also added it explicitly to the :version output as well as make it able to check using `:echo has("xattr")`, to have users easily check that this is available. In contrast to the similar support for SELINUX and SMACK support (which also internally uses extended attributes), I have made this a FEAT_XATTR define, instead of the similar HAVE_XATTR. Add a test and change CI to include relevant packages so that CI can test that extended attributes are correctly written. closes: vim/vim#306 closes: vim/vim#13203 https://github.com/vim/vim/commit/e085dfda5d8dde064b0332464040959479696d1c Co-authored-by: Christian Brabandt <cb@256bit.org>
* | test(unit): move statusline tests to statusline_spec.lua (#25441)zeertzjq2023-09-30
| |
* | Merge pull request #25386 from glepnir/toggle_floatbfredl2023-09-30
|\ \ | | | | | | feat(float): support toggle show float window
| * | feat(float): support toggle show float windowglepnir2023-09-30
| | |
* | | refactor: reorganize option header files (#25437)zeertzjq2023-09-30
| | | | | | | | | | | | | | | | | | - Move vimoption_T to option.h - option_defs.h is for option-related types - option_vars.h corresponds to Vim's option.h - option_defs.h and option_vars.h don't include each other
* | | test(old): don't check for $CLANG_SANITIZER (#25432)zeertzjq2023-09-30
| | | | | | | | | | | | Functional tests don't check for an environment variable before printing ASAN logs, so oldtests shouldn't either.
* | | vim-patch:9.0.1956: Custom completion skips orig cmdline if it invokes ↵zeertzjq2023-09-30
| |/ |/| | | | | | | | | | | | | | | | | | | glob() (#25427) Problem: Custom cmdline completion skips original cmdline when pressing Ctrl-P at first match if completion function invokes glob(). Solution: Move orig_save into struct expand_T. closes: vim/vim#13216 https://github.com/vim/vim/commit/28a23602e8f88937645b8506b7915ecea6e09b18
* | refactor: remove longdundargoc2023-09-29
| | | | | | | | | | long is 32-bits even on 64-bit windows which makes the type suboptimal for a codebase meant to be cross-platform.
* | fix(unittests): ignore __s128 and __u128 types in ffiJames McCoy2023-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linux added these types to their userspace headers in [6.5], which causes unit tests to fail like ``` -------- Running tests from test/unit/api/private_helpers_spec.lua RUN vim_to_object converts true: 17.00 ms ERR test/unit/helpers.lua:748: test/unit/helpers.lua:732: (string) ' test/unit/helpers.lua:264: ';' expected near '__s128' at line 194' exit code: 256 stack traceback: test/unit/helpers.lua:748: in function 'itp_parent' test/unit/helpers.lua:784: in function <test/unit/helpers.lua:774> ``` Since we don't use these types, they can be ignored to avoid LuaJIT's C parser choking on them. [6.5]: https://github.com/torvalds/linux/commit/224d80c584d3016cb8d83d1c33914fdd3508aa8c
* | vim-patch:9.0.1950: Vim9: error codes spread out (#25405)zeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vim9: error codes spread out Solution: group them together and reserve 100 more for future use Reserve 100 error codes for future enhancements to the Vim9 class support closes: vim/vim#13207 https://github.com/vim/vim/commit/413f83990f15d5d59d27ab741670f527a7a3feb8 Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | vim-patch:9.0.1947: Bash Expansion test fails on Windows/MacOSzeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Bash Expansion test fails on Windows/MacOS Solution: Disable Test_glob_extended_bash for now This test doesn't work on Windows even if bash can be executed, since the globstar functionality has only been enabled in Unix builds of Vim (Commit 9eb1ce531527a7177d16373b0f8689bbcd3d5f73, patch 9.0.1946). closes: vim/vim#13205 https://github.com/vim/vim/commit/03ca4002c1dcd34c4b17fe4a491b02d77ec2c887 Co-authored-by: Ken Takata <kentkt@csc.jp>
* | vim-patch:9.0.1946: filename expansion using ** in bash may failzeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: filename expansion using ** in bash may fail Solution: Try to enable the globstar setting Starting with bash 4.0 it supports extended globbing using the globstar shell option. This makes matching recursively below a certain directory using the ** pattern work as expected nowadays. However, we need to explicitly enable this using the 'shopt -s globstar' bash command. So let's check the bash environment variable $BASH_VERSINFO (which is supported since bash 3.0 and conditionally enable the globstar option, if the major version is at least 4. For older bashs, this at least shouldn't cause errors (unless one is using really ancient bash 2.X or something). closes: vim/vim#13002 closes: vim/vim#13144 https://github.com/vim/vim/commit/9eb1ce531527a7177d16373b0f8689bbcd3d5f73 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | vim-patch:9.0.0607: verbose echo message test fails on Mac OSzeertzjq2023-09-29
| | | | | | | | | | | | | | | | | | Problem: Verbose echo message test fails on Mac OS. Solution: Skip the test on Mac OS. https://github.com/vim/vim/commit/f802767df7b4532651fcf11d49e812ead32db45b Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | test: decoration provider with wrapped lines (#25404)zeertzjq2023-09-28
| |
* | feat: NVIM_APPNAME supports relative paths #25233Rory Nesbitt2023-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: NVIM_APPNAME does not allow path separators in the name, so relative paths can't be used: NVIM_APPNAME="neovim-configs/first-config" nvim NVIM_APPNAME="neovim-configs/second-config" nvim Solution: Let NVIM_APPNAME be a relative path. Absolute paths are not supported. fix #23056 fix #24966
* | Merge pull request #25374 from bfredl/batchupdatebfredl2023-09-27
|\ \ | | | | | | refactor(grid): use batched updates for more things
| * | refactor(grid): use batched updates for statusline and rulerbfredl2023-09-27
| | |
* | | vim-patch:8.2.3467: CursorHoldI event interferes with "CTRL-G U" (#25383)zeertzjq2023-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono) Solution: Restore the flag for "CTRL-G U" after triggering CursorHoldI. (closes vim/vim#8937) https://github.com/vim/vim/commit/5a9357d0bff9059f547906d8d03b31bca7215af1 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | | vim-patch:8.2.3517: TextChanged does not trigger after TextChangedI (#25384)zeertzjq2023-09-27
| |/ |/| | | | | | | | | | | | | | | Problem: TextChanged does not trigger after TextChangedI. Solution: Store the tick separately for TextChangedI. (Christian Brabandt, closes vim/vim#8968, closes vim/vim#8932) https://github.com/vim/vim/commit/db3b44640d69ab27270691a3cab8d83cc93a0861 Co-authored-by: Christian Brabandt <cb@256bit.org>
* | fix(extmarks): draw TAB in virt_text properly with 'rl' (#25381)zeertzjq2023-09-27
| |
* | refactor(tutor): cleanupJustin M. Keyes2023-09-26
| |
* | fix(tutor): Tutor steps don't work on Windows #25251Leonardo Mello2023-09-26
| | | | | | | | | | | | | | | | | | Problem: Some steps in :Tutor don't work on Windows. Solution: Add support for `{unix:...,win:...}` format and transform the Tutor contents depending on the platform. Fix https://github.com/neovim/neovim/issues/24166
* | Merge pull request #25229 from glepnir/20323bfredl2023-09-26
|\ \ | |/ |/| fix(highlight): add force in nvim_set_hl
| * fix(highlight): add force in nvim_set_hlglepnir2023-09-26
| |
* | refactor: remove 'shortmess' save/restore panic for ex commandsbfredl2023-09-25
| | | | | | | | | | | | This was only used to avoid the effect of SHM_OVERALL. This can easily be handled in isolation, instead of clearing out all of 'shortmess' which has unwanted side effects and mystifies what really is going on.
* | fix(api): handle NUL in nvim_err_write() and nvim_out_write() (#25354)zeertzjq2023-09-25
| |
* | fix(exception): remember whether message is multiline (#25351)zeertzjq2023-09-25
| |
* | vim-patch:9.0.1938: multispace wrong when scrolling horizontally (#25348)zeertzjq2023-09-25
| | | | | | | | | | | | | | | | | | | | Problem: multispace wrong when scrolling horizontally Solution: Update position in "multispace" or "leadmultispace" also in skipped chars. Reorder conditions to be more consistent. closes: vim/vim#13145 closes: vim/vim#13147 https://github.com/vim/vim/commit/abc808112ee5df58a9f612f2bb5a65389c2c14e1
* | vim-patch:9.0.1937: missing test for mouse click + 'virtedit' (#25347)zeertzjq2023-09-25
| | | | | | | | | | | | | | | | | | Problem: missing test for mouse click + 'virtedit' Solution: Add test for clicking after eol with 'virtualedit' and wrapped line closes: vim/vim#13157 https://github.com/vim/vim/commit/46a0582ffa4ea79b112ac01e25adccf93b49cd9d
* | vim-patch:9.0.1934: :bwipe fails after switching window from aucmd_win.zeertzjq2023-09-25
| | | | | | | | | | | | | | | | | | Problem: :bwipe fails after switching window from aucmd_win. Solution: Decrement b_nwindows after switching back to aucmd_win. closes: vim/vim#13160 https://github.com/vim/vim/commit/46bdae036ac4121e305fc3ed4ef3f9fc928dcb25
* | vim-patch:9.0.1931: make test_compilers fails on ubuntuzeertzjq2023-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: make test_compilers fails on ubuntu Solution: set LC_ALL=C fix: make test_compiler failed on xubuntu 22.04.3 Problem: 'make test_compiler' failed on Linux xubuntu 22.04.3 but succeeded on e.g. macOS. To reproduce: ``` $ ./configure --with-features=huge --enable-gui=no --enable-perlinterp=yes $ make -j12 $ cd vim/src/testdir $ make test_compiler ...snip... Found errors in Test_compiler(): command line..script /home/dope/sb/vim/src/testdir/runtest.vim[601]..function RunTheTest[54]..Test_compiler line 24: command did not fail: clist command line..script /home/dope/sb/vim/src/testdir/runtest.vim[601]..function RunTheTest[54]..Test_compiler line 30: Pattern '\\n \\d\\+ Xfoo.pl:3: Global symbol "$foo" requires explicit package name' does not match '\n19 Xfoo.pl:3: Global symbol "$foo" requires explicit package name (did you forget to declare "my $foo"?)' make: *** [Makefile:70: test_compiler] Error 1 ``` Solution: set `LC_ALL` to "C" in `Test_compiler()` closes: vim/vim#13173 https://github.com/vim/vim/commit/ca0ffc0d63727850c520a80929698e4c199b17f4 Co-authored-by: Dominique Pellé <dominique.pelle@tomtom.com>
* | fix(ui): "resize -1" with cmdheight=0 #24758nwounkn2023-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Crash from: set cmdheight=0 redrawdebug=invalid resize -1 Solution: Do not invalidate first `p_ch` `msg_grid` rows in `update_screen` when scrolling the screen down after displaying a message, because they may be used later for drawing cmdline. Fixes #22154
* | test: only trim trailing spaces in swapfile tests (#25341)zeertzjq2023-09-24
| |
* | fix(startup): stop TUI properly when quitting at swap dialog (#25337)zeertzjq2023-09-24
| |
* | test(old): don't set options to default before every test (#25335)zeertzjq2023-09-24
| | | | | | | | | | | | | | | | Oldtests clean up after themselves, and the options that need operators to align with Vim all deny duplicates, so there is no need to set them to default. Also make the variable name that test_listchars.vim uses to align with Vim more obvious.
* | fix(api, lua): handle setting v: variables properly (#25325)zeertzjq2023-09-24
| |
* | fix(ui): always use stl/stlnc fillchars when drawing statusline (#25267)tj-moody2023-09-24
| |
* | test(tui_spec): small consistency fixes (#25332)zeertzjq2023-09-24
| | | | | | | | | | - Make indent consistent. - Remove outdated "Only single integration test" comment. - Don't use setup() as function name as it's used by busted.
* | fix(float): fix some other crashes with :unhide or :all (#25328)zeertzjq2023-09-23
| |
* | fix(lua): show error message when failing to set variable (#25321)zeertzjq2023-09-23
| |
* | fix(unhide): close floating windows first (#25318)zeertzjq2023-09-23
| |
* | vim-patch:8.2.4609: :unhide does not check for failing to close a window ↵zeertzjq2023-09-23
| | | | | | | | | | | | | | | | | | | | | | (#25317) Problem: :unhide does not check for failing to close a window. Solution: When closing a window fails continue with the next one. Do not try closing the autocmd window. (closes vim/vim#9984) https://github.com/vim/vim/commit/6f2465d336a9d4afe392db4084ef7e9db17e67c1 Co-authored-by: Bram Moolenaar <Bram@vim.org>
* | fix(tui): make :cquit work properly with remote TUI (#25313)zeertzjq2023-09-23
| |
* | fix(languagetree): don't treat unparsed nodes as occupying full rangeL Lllvvuu2023-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is incorrect in the following scenario: 1. The language tree is Lua > Vim > Lua. 2. An edit simultaneously wipes out the `_regions` of all nodes, while taking the Vim injection off-screen. 3. The Vim injection is not re-parsed, so the child Lua `_regions` is still `nil`. 4. The child Lua is assumed, incorrectly, to occupy the whole document. 5. This causes the injections to be parsed again, resulting in Lua > Vim > Lua > Vim. 6. Now, by the same process, Vim ends up with its range assumed over the whole document. Now the parse is broken and results in broken highlighting and poor performance. It should be fine to instead treat an unparsed node as occupying nothing (i.e. effectively non-existent). Since, either: - The parent was just parsed, hence defining `_regions` - The parent was not just parsed, in which case this node doesn't need to be parsed either. Also, the name `has_regions` is confusing; it seems to simply mean the opposite of "root" or "full_document". However, this PR does not touch it.
* | fix(api): get virtual text with multiple hl properly (#25307)zeertzjq2023-09-22
| |
* | fix(ui): handle virtual text with multiple hl in more cases (#25304)zeertzjq2023-09-22
| |
* | fix(extmarks): inline virt_text support multiple hl groups (#25303)zeertzjq2023-09-22
| |
* | vim-patch:9.0.1923: curswant wrong on click with 've' and 'nowrap' set (#25293)zeertzjq2023-09-22
| | | | | | | | | | | | | | | | Problem: curswant wrong on click with 've' and 'nowrap' set Solution: Add w_leftcol to mouse click column. closes: vim/vim#13142 https://github.com/vim/vim/commit/db54e989b5cff3cc6442dfc500e3962cc1c0b6d0
* | fix(lsp): handle absence of a trailing newline #25194Sergey Slipchenko2023-09-21
| | | | | | | | | | | | | | | | | | | | | | | | Fixes #24339 rust-analyzer sends "Invalid offset" error in such cases. Some other servers handle it specially. LSP spec mentions that "A range is comparable to a selection in an editor". Most editors don't handle trailing newlines the same way Neovim/Vim does, it's clearly visible if it's present or not. With that in mind it's understandable why sending end position as simply the start of the line after the last one is considered invalid in such cases.
* | Merge pull request #25270 from bfredl/indeterminismbfredl2023-09-21
|\ \ | | | | | | fix(test): fix "indeterminism" warnings in UI tests