Commit Graph
22163 Commits
Author SHA1 Message Date
Dundar Goc d77ec8a5c6 ci: remove unnecessary file ci/script.sh
It only runs run_tests.sh and checks coverage, which can be replaced by
just moving the coverage check to ci/run_tests.sh.
2022-07-11 17:16:55 +02:00
Dundar Goc bb1a464467 ci: remove unnecessary file run_lint.sh
It's a leftover artifact that currently just acts as an unnecessary
intermediary script that calls the Makefile. It can be replaced by just
calling the Makefile directly.
2022-07-11 16:41:06 +02:00
zeertzjq 5c3bbb67e7 vim-patch:8.2.3363: when :edit reuses the current buffer the alternate file is set (#19306)
Problem:    When :edit reuses the current buffer the alternate file is set to
            the same buffer.
Solution:   Only set the alternate file when not reusing the buffer.
            (closes vim/vim#8783)
https://github.com/vim/vim/commit/b8bd2e6ebab03baf2672067067a599df69a278c0

Cherry-pick Test_cmdline_expand_special() from patches 8.2.{0243,2873}.
Move Test_cmd_backtick() to the right place.
2022-07-11 20:55:26 +08:00
Rishikesh Vaishnav ac10c0f418 fix(lsp): abort pending changes after flush when debouncing (#19314)
Issuing a server request triggers `changetracking.flush` so as to
make sure we're not operating on a stale state. This immediately
triggers notification of any pending changes (as a result of debouncing)
to the server. However, this happens in addition to the notification
that is waiting on the debounce delay. Because we `nil`
`buf_state.pending_change` when it is called, the fix is to
also check that this is non-`nil` when it is called and exit if it is,
as this being `nil` would mean that it originates from a pending change
that has already been flushed out.
2022-07-11 12:48:02 +02:00
Mathias Fußenegger 95c65a6b22 feat(lsp): defaults: tagfunc, omnifunc (#19003)
set `tagfunc` to `vim.lsp.tagfunc` and `omnifunc` to `vim.lsp.omnifunc` if empty when attaching a server
2022-07-10 17:26:43 +02:00
zeertzjq 67b26a39f0 Merge pull request #19305 from zeertzjq/vim-8.2.3530
vim-patch:8.2.{3530,3531}: ":buf \{a}" fails while ":edit \{a}" works
2022-07-10 20:20:06 +08:00
zeertzjq 5e53740350 Merge pull request #18774 from zeertzjq/float-height-width-fix
Fix some floating window height and width bugs
2022-07-10 17:59:32 +08:00
zeertzjq 5105f713bd test(float_spec): make indent more consistent 2022-07-10 17:24:29 +08:00
zeertzjq 63f6ecd419 fix(float): fix mouse drag position if float window turned to a split 2022-07-10 17:24:29 +08:00
zeertzjq 63f63dd2b7 fix(float): fix glitch when making float window with border a split 2022-07-10 17:24:29 +08:00
zeertzjq 99e8298711 fix(float): fix float window with winbar cannot have screen height 2022-07-10 17:24:29 +08:00
zeertzjq f7d6f472f7 fix(float): fix float window border drawing with winbar 2022-07-10 17:24:29 +08:00
Christian Clason 2966cfe21f fix(lsp): pcall nvim_del_augroup_by_name (#19302)
fixup for #19283
2022-07-10 11:19:26 +02:00
zeertzjq 3d77ea2762 Merge pull request #19307 from zeertzjq/vim-8.2.1053
vim-patch:7.4.1724,8.2.1053: insufficient testing for 'statusline' and 'tabline'
2022-07-10 17:13:17 +08:00
zeertzjq fe2b281292 vim-patch:8.2.1053: insufficient testing for 'statusline' and 'tabline'
Problem:    Insufficient testing for 'statusline' and 'tabline'.
Solution:   Add more tests. (Yegappan Lakshmanan, closes vim/vim#6333)
https://github.com/vim/vim/commit/832adf9bb8cd39d8e982d8a35ed8a6d39b974494
2022-07-10 16:15:17 +08:00
zeertzjq 59355653f6 vim-patch:7.4.1724
Problem:    Tabline test fails in GUI.
Solution:   Remove 'e' from 'guioptions'.
https://github.com/vim/vim/commit/73cd8fb3e87e4b29dfc489f58e56dee1839c18e5

Add missing file header.
2022-07-10 16:12:58 +08:00
tomial 8f36e538cc fix(l10n): add folded line indicator translations from vim (#19286) 2022-07-10 12:36:43 +08:00
zeertzjq b3b85186ed vim-patch:8.2.3531: command line completion test fails on MS-Windows
Problem:    Command line completion test fails on MS-Windows.
Solution:   Do not test with "\{" on MS-Windows.
https://github.com/vim/vim/commit/39c47c310487b72bc78ff197b5a068a0bcf830de
2022-07-10 10:58:12 +08:00
zeertzjq 45d2644205 vim-patch:8.2.3530: ":buf \{a}" fails while ":edit \{a}" works
Problem:    ":buf \{a}" fails while ":edit \{a}" works.
Solution:   Unescape "\{". (closes vim/vim#8917)
https://github.com/vim/vim/commit/21c1a0c2f10575dbb72fa873d33f0c1f6e170aa7
2022-07-10 10:56:37 +08:00
Christian Clason d606c39a9c vim-patch:9.0.0049: csv and tsv files are not recognized (#19300)
Problem:    Csv and tsv files are not recognized.
Solution:   Add patterns fo csv and tsv files. (Leandro Lourenci,
            closes vim/vim#10680)
https://github.com/vim/vim/commit/99af91e5820c78a196c9272cd8ce5aa5be7bf374
2022-07-10 01:14:07 +02:00
Justin M. Keyes eb9155e557 Merge #19267 require() in --startuptime 2022-07-10 01:04:11 +02:00
zeertzjq 880de9a489 test(old): align defaults to Vim after every test (#19301)
This can avoid divergences from Vim in some small places.
2022-07-10 06:59:58 +08:00
Justin M. Keyes 797007997c test: --startuptime 2022-07-09 15:45:02 -07:00
zeertzjq d6a1e71881 vim-patch:8.1.1038: Arabic support excludes Farsi (#19285)
Problem:    Arabic support excludes Farsi.
Solution:   Add Farsi support to the Arabic support. (Ali Gholami Rudi,
            Ameretat Reith)
https://github.com/vim/vim/commit/dc4fa190e7b9d6ba49416ce875d2192c4444d3eb

Omit Test_shape_final_to_medial(): removed in later patches.
2022-07-10 06:01:49 +08:00
ii14 2c739431e8 feat(lua): measure require in --startuptime 2022-07-09 22:12:06 +02:00
Gregory Anders 782f726136 refactor: remove functions marked for deprecation in 0.8 (#19299) 2022-07-09 18:42:49 +02:00
Raphael 6b1a8f23d7 refactor(lua): replace vim.cmd use with API calls (#19283)
Signed-off-by: Raphael <glephunter@gmail.com>
2022-07-09 18:40:32 +02:00
zeertzjq 7dbe6b1a46 Merge pull request #19296 from zeertzjq/vim-8.2.2902
vim-patch:8.2.{2902,2917}: spellfile functionality not fully tested
2022-07-09 20:59:49 +08:00
zeertzjq 7b72e61cf8 vim-patch:8.2.2917: spellfile functionality not fully tested
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for SFX with removal of characters, spelling
            suggestions with NOBREAK and others. (Dominique Pellé,
            closes vim/vim#8293)
https://github.com/vim/vim/commit/bb162367ac77db877586086d7456685f2aeb8754
2022-07-09 20:33:00 +08:00
zeertzjq eb60a9be97 vim-patch:8.2.2902: spellfile functionality not fully tested
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé,
            closes vim/vim#8283)
https://github.com/vim/vim/commit/5a6cfb3ff2f2f422a3732f3855616c89dd19c19d

Reorder test_spellfile.vim to match upstream.
2022-07-09 20:33:00 +08:00
zeertzjq 022e994ab8 Merge pull request #19294 from zeertzjq/vim-8.2.0332
vim-patch:8.2.{0332,0396}: insufficient tests for cmdline
2022-07-09 18:34:48 +08:00
zeertzjq 65359e5657 vim-patch:8.2.0396: cmdexpand.c insufficiently tested
Problem:    Cmdexpand.c insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes vim/vim#5789)
https://github.com/vim/vim/commit/24ebd83e030e1c6f9a6be1f06232756ba4d00a8c

Map Q to gQ before every test since a test uses :mapclear.
2022-07-09 17:33:49 +08:00
zeertzjq 12f0ef669d vim-patch:8.2.0332: some code in ex_getln.c not covered by tests
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#5710)
https://github.com/vim/vim/commit/d30ae2fc4acb3861fc7dc9618c1f90eee997d412
2022-07-09 16:31:19 +08:00
zeertzjq 798acbca1b Merge pull request #19284 from zeertzjq/vim-8.2.0274
vim-patch:8.2.{0274,0325}
2022-07-09 16:25:16 +08:00
zeertzjq cf4aa6095f vim-patch:8.2.0325: ex_getln.c code not covered by tests
Problem:    Ex_getln.c code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#5702)
https://github.com/vim/vim/commit/578fe947e3ad0cc7313c798cf76cc43dbf9b4ea6

Cherry-pick Test_Ex_global() from patch 8.2.0293.
Test_rightleftcmd() fails if incsearch is enabled, so disable it.
2022-07-08 23:11:12 +08:00
zeertzjq 0d0a6aff6b vim-patch:8.2.0274: hang with combination of feedkeys(), Ex mode and :global
Problem:    Hang with combination of feedkeys(), Ex mode and :global.
            (Yegappan Lakshmanan)
Solution:   Add the pending_exmode_active flag.
https://github.com/vim/vim/commit/9e2bcb5d23138d45a0b6f9c1542b5facc807efe7
2022-07-08 23:11:12 +08:00
Nicolas Hillegeer 45ba2e147f fix(tui): add fixups for hterm family #19078
Problem
-------

In #19040, I reported two things that started happening somewhen in the
last three months when using neovim in hterm (the Chrome Secure Shell
terminal):

 1. Under certain circumstances, the window title (set by nvim
    [i0]) would appear over the line I was typing, corrupting the screen.
 2. If I changed my $TERM from xterm-256color to the new hterm-256color
    (available since ncurses >=20210320), the window title corruption
    was gone, but pane scrolling was broken.

Both problems are due to changes in the termcap files, their source of
truth being the ncurses project. See "Timeline of ncurses changes" below
for details.

Cause: title corruption
-----------------------

The title corruption when using hterm + TERM=xterm-256color can be
explained by event #4 (ncurses 2022-03-12) in the ncurses timeline:

The xterm-256color termcap file gained status line termcodes in ncurses
2022-03-12. These termcodes are used by Neovim to set the title when.
hterm does not have a status line. Due to ncurses versions earlier than
2022-03-12 missing the xterm status line capability, Neovim manually
fixed up [t0] the terminfo file if $TERM was xterm-256color. So if
before Neovim manually added fsl/tsl capabilties, and after they were
in the termcap file, why did hterm suddenly start getting corruption?
The answer is that the termcodes for these capabilties are different
when Neovim fixes them up, versus the one in the new termcap database:

   fsl=\E[0$}                  // from xterm-256color
   tsl=\E[2$~\E[1$}\E[%i%p1%d` // from xterm-256color

   fsl=\x07                    // patched by Neovim
   tsl=\x1b]0;                 // patched by Neovim

hterm ignores the latter, but corrupts the screen with the former.

Solution: Make hterm users set hterm-256color, which lacks the new
fsl/tsl codes. Also, to reduce superfluous work, stop patching in this
capability when hterm is detected (even if hterm would ignore the
patched version).

Cause: pane corruption
----------------------

The pane corruption when using hterm + TERM=hterm-256color, but NOT when
using hterm + TERM=xterm-256color can be explained by:

 - Neovim uses DECSLRM when available [p1] for performant scrolling.
 - Both the hterm-256color and xterm-256color termcap databases
   advertise support for DECSLRM (ncurses timeline #1, #2 and #3).
 - hterm does not support DESCLRM [p2] (note: it does support DESCTBM for
   top/bottom scrolling, but it's broken [p3] and not used by Neovim)
 - xterm-alikes that are not real xterm generally don't support DECSLRM
   either, so Neovim patches it out [p4].

When using hterm-256color, hterm is no longer considered an xterm-alike
by Neovim. As a result, DECSLRM is not cleared. hterm does not support
it, so corruption ensues.

This is a problem with the hterm-256color termcap file, but we're stuck
with it so the best we can do is patch over it.

Timeline of ncurses changes
---------------------------

 1. 2019-05-19: Part of the DECSLRM capability (smglr AKA set_lr_margin)
    added to vt420+lrmm, which xterm-256color inherits [n1]
 2. 2021-03-20: hterm-256color added, inheriting xterm-256colors. [n2]
 3. 2021-09-25: The *parm versions of smglr (AKA set_lr_margin) were
    added to vt420+lrmm [n3]. Namely:
     1. smglp AKA set_left_margin_parm, and
     2. smgrp AKA set_right_margin_parm
 4. 2022-03-12: (new) codes for fsl, bsl and tsl added to xterm (add
    dec+sl to xterm-new, per patch #371 -TD) [n4]

Fixes #19040.

[i0]: https://github.com/neovim/neovim/blob/3a4fa22badc5595afc0a994ead965ff32ccf6c76/src/nvim/tui/tui.c#L1377
[t0]: https://github.com/neovim/neovim/blob/3a4fa22badc5595afc0a994ead965ff32ccf6c76/src/nvim/tui/tui.c#L1728,L1729
[p1]: https://github.com/neovim/neovim/blob/3a4fa22badc5595afc0a994ead965ff32ccf6c76/src/nvim/tui/tui.c#L1196
[p2]: https://bugs.chromium.org/p/chromium/issues/detail?id=1175065&q=component%3APlatform%3EApps%3EDefault%3EHterm
[p3]: https://bugs.chromium.org/p/chromium/issues/detail?id=1298796&q=component%3APlatform%3EApps%3EDefault%3EHterm
[p4]: https://github.com/neovim/neovim/blob/3a4fa22badc5595afc0a994ead965ff32ccf6c76/src/nvim/tui/tui.c#L1740-L1752
[n1]: https://github.com/mirror/ncurses/commit/8f6d94b8d6211a2323caef53fa4c96c475ec9a6#diff-01544c577762d3308a1d232aa7afc79acf64b9a5057f88a004df82fda89549b7R2742
[n2]: https://github.com/mirror/ncurses/commit/c2650100f80134924eda8f22cd7cc1d1d919ee3d#diff-01544c577762d3308a1d232aa7afc79acf64b9a5057f88a004df82fda89549b7R5907
[n3]: https://github.com/mirror/ncurses/commit/f6b436c4fb50275df43ea10ba9c744fe195a327d#diff-01544c577762d3308a1d232aa7afc79acf64b9a5057f88a004df82fda89549b7R2842
[n4]: https://github.com/mirror/ncurses/commit/8bf8c836fe2c28238adbd62e71f03272efe155ad#diff-01544c577762d3308a1d232aa7afc79acf64b9a5057f88a004df82fda89549b7R4828

Signed-off-by: Nicolas Hillegeer <nicolas@hillegeer.com>
2022-07-08 06:06:27 -07:00
zeertzjq b999de2eb0 Merge pull request #19278 from zeertzjq/vim-8.2.0132
vim-patch:8.2.{0132,0136,0151}: detecting a script was already sourced is unreliable
2022-07-08 20:12:58 +08:00
zeertzjq a6803f3adf test: add a test for what Vim patch 8.2.0151 fixes 2022-07-08 14:18:16 +08:00
zeertzjq 159a0b651f vim-patch:8.2.0151: detecting a script was already sourced is unreliable
Problem:    Detecting a script was already sourced is unreliable.
Solution:   Do not use the inode number.
https://github.com/vim/vim/commit/978d170bdce9c0a47e6683cd7c288bc2706f3fff
2022-07-08 14:17:22 +08:00
zeertzjq eafa09de7d vim-patch:8.2.0136: stray ch_logfile() call
Problem:    Stray ch_logfile() call.
Solution:   Remove it. (closes vim/vim#5503)
https://github.com/vim/vim/commit/ed5adff1e6da412732514d82363005f85fe22e04
2022-07-08 11:11:22 +08:00
zeertzjq a890c019a3 vim-patch:8.2.0132: script may be re-used when deleting and creating a new one
Problem:    Script may be re-used when deleting and creating a new one.
Solution:   When the inode matches, also check the file name.
https://github.com/vim/vim/commit/ca33eb256eb910af05e8c9852bc9f716cece1f5c
2022-07-08 11:11:22 +08:00
zeertzjq ca64b589cd vim-patch:8.1.{1524,1544}: tests are silently skipped (#19276)
This is a port of these two patches combined:

vim-patch:8.1.1524: tests are silently skipped

Problem:    Tests are silently skipped.
Solution:   Throw an exception for skipped tests in more places.
https://github.com/vim/vim/commit/b0f94c1ff34d27d33aa9f96204985ea29c2eb0a1

vim-patch:8.1.1544: some balloon tests don't run when they can

Problem:    Some balloon tests don't run when they can.
Solution:   Split GUI balloon tests off into a separate file. (Ozaki Kiichi,
            closes vim/vim#4538)  Change the feature check into a command for
            consistency.
https://github.com/vim/vim/commit/b46fecd3454399f8ebdc5055302e4bfc5a10f98b

Omit test_lua.vim: previous patches are N/A
Omit test_memory_usage.vim: previous patches are N/A
Omit test_textprop.vim: previous patches are N/A
Omit test_winbar.vim: previous patches are N/A
Omit test_termcodes.vim: mostly N/A
Skip Test_mouse_positon() because it uses test_setmouse().
Cannot throw error in a Test_nocatch_ test.
Use latest `CheckFeature clipboard_working` for test_quotestar.vim
2022-07-08 08:26:25 +08:00
Christian Clason 72877bb17d feat(runtime)!: enable filetype.lua by default (#19216)
* revert to filetype.vim by setting `g:do_legacy_filetype`
* skip either filetype.lua or filetype.vim via `g:did_load_filetypes`

(Running both is no longer required and therefore no longer supported.)
2022-07-07 18:53:47 +02:00
Christian Clason 0950275b8c refactor(lua): git-blame-ignore stylua update PR (#19273)
https://github.com/neovim/neovim/pull/19264
2022-07-07 18:32:53 +02:00
Christian Clason aa4f9c5341 refactor(lua): reformat with stylua 0.14.0 (#19264)
* reformat Lua runtime to make lint CI pass
* reduce max line length to 100
2022-07-07 18:27:18 +02:00
Wsevolod 34d41baf8a feat(tui): try terminfo for [re]set_cursor_color OSC #19255 2022-07-07 02:09:11 -07:00
Christian Clason 55e81b0fe8 vim-patch:5ed11535e069 (#19256)
Update runtime files
https://github.com/vim/vim/commit/5ed11535e0695163cec71033b98bb97356cf0113
2022-07-07 08:15:33 +02:00
zeertzjq 6b72ee1f15 Merge pull request #19263 from zeertzjq/vim-8.2.3674
vim-patch:8.2.{3674,4399}: problems after ml_get error
2022-07-07 08:35:29 +08:00
zeertzjq 8ce60ddd07 vim-patch:8.2.4399: crash after ml_get error
Problem:    Crash after ml_get error.
Solution:   When returning "???" flush the line and set ml_line_lnum.
https://github.com/vim/vim/commit/f9435e49ef8032e80d38e31e950e4a9b75387533
2022-07-07 08:10:53 +08:00