Commit Graph

25748 Commits

Author SHA1 Message Date
Gregory Anders
ef1801cc7c perf(iter): reduce number of table allocations
Packing and unpacking return values impairs performance considerably.
In an attempt to avoid creating tables as much as possible we can
instead pass return values between functions (which does not require
knowing the number of values a function might return). This makes the
code more complex, but improves benchmark numbers non-trivially.
2023-04-28 15:38:50 -06:00
Gregory Anders
5a0250c9a7 test: add benchmark for vim.iter 2023-04-28 15:38:50 -06:00
Lewis Russell
ca7e488cfe
feat: add link in issue template to minimal config template 2023-04-28 16:09:05 +01:00
zeertzjq
715587f8e4
vim-patch:8.2.3509: undo file is not synced (#23371)
Problem:    Undo file is not synced. (Sami Farin)
Solution:   Sync the undo file if 'fsync' is set. (Christian Brabandt,
            closes vim/vim#8879, closes vim/vim#8920)

340dd0fbe4

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 21:07:00 +08:00
zeertzjq
4f235e3caf
fix(tui): position cursor at bottom-left before stopping (#23369)
Fix #23361
2023-04-28 20:26:02 +08:00
zeertzjq
727ec8d59d
Merge pull request #23367 from zeertzjq/vim-8.2.1108
vim-patch:8.2.{1108,partial:1235},9.0.1084
2023-04-28 18:20:26 +08:00
zeertzjq
f60551f387 vim-patch:9.0.1084: code handling low level MS-Windows events cannot be tested
Problem:    Code handling low level MS-Windows events cannot be tested.
Solution:   Add test_mswin_event() and tests using it. (Christopher Plewright,
            closes vim/vim#11622)

20b795e0eb
2023-04-28 17:55:46 +08:00
zeertzjq
c0e76fcc44 vim-patch:partial:8.2.1235: Not all mouse codes covered by tests
Problem:    Not all mouse codes covered by tests.
Solution:   Add more tests for the mouse. (Yegappan Lakshmanan, closes vim/vim#6472)

2764d06ab7

Cherry-pick typo fixes from patch 8.2.0020.
2023-04-28 17:55:44 +08:00
zeertzjq
0c5b03d83a vim-patch:8.2.1108: mouse left-right scroll is not supported in terminal window
Problem:    Mouse left-right scroll is not supported in terminal window.
Solution:   Implement mouse codes 6 and 7. (Trygve Aaberge, closes vim/vim#6363)

d58d4f90ae
2023-04-28 17:55:41 +08:00
zeertzjq
d8cc98caae
Merge pull request #23364 from zeertzjq/vim-8.1.1155
vim-patch:8.1.{partial:1155,1160,1165,1167,1175,1176,1178,1179,1181,1216,1223,1244,1247,1248,.2106,2148,2306},9.0.0825
2023-04-28 17:07:48 +08:00
zeertzjq
45c9b10afc vim-patch:9.0.0825: cannot drag an entry in the tabpage line
Problem:    Cannot drag an entry in the tabpage line.
Solution:   Clear dragwin instead of got_click. (closes vim/vim#11483,
            closes vim/vim#11482)

8e0ccb6bc2
2023-04-28 16:43:38 +08:00
zeertzjq
552632c959 vim-patch:8.1.2306: double and triple clicks are not tested
Problem:    Double and triple clicks are not tested.
Solution:   Test mouse clicks to select text. (closes vim/vim#5226)

f36a2c7e60

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:38 +08:00
zeertzjq
b947beb058 vim-patch:8.1.2148: no test for right click extending Visual area
Problem:    No test for right click extending Visual area.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#5018)

6aa7523b96

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:38 +08:00
zeertzjq
dda5cddbef vim-patch:8.1.2106: no tests for dragging the mouse beyond the window
Problem:    No tests for dragging the mouse beyond the window.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#5004)

b4367b7fb6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:38 +08:00
zeertzjq
d857448466 vim-patch:8.1.1248: no test for dec mouse
Problem:    No test for dec mouse.
Solution:   Add some tests for dec mouse.  Add "no_query_mouse".

92fd599e0d

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:38 +08:00
zeertzjq
bc8549f818 vim-patch:8.1.1247: urxvt mouse codes are not tested
Problem:    Urxvt mouse codes are not tested.
Solution:   Also set 'ttymouse' to "urxvt" in the termcodes test.

d0621d85a6

Use code from latest tests instead.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:38 +08:00
zeertzjq
458633071a vim-patch:8.1.1244: no tests for CTRL-mouse-click
Problem:    No tests for CTRL-mouse-click.
Solution:   Add a few tests. (Dominique Pelle, closes vim/vim#4323)

1ee36d6ff5

Use usr_toc.txt instead of help.txt.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:43:27 +08:00
zeertzjq
2a84e20ff5 vim-patch:8.1.1223: middle mouse click test fails without a clipboard
Problem:    Middle mouse click test fails without a clipboard.
Solution:   Check if the clipboard can be used. (Dominique Pelle, Christian
            Brabandt)  Also use WorkingClipboard() instead of checking for the
            "clipboard" feature.

564344ace9

Use CheckFeature clipboard_working from latest test instead.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
f6f96c972a vim-patch:8.1.1216: mouse middle click is not tested
Problem:    Mouse middle click is not tested.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4310)

c1b8160b44

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
6f56d5317e vim-patch:8.1.1181: tests for mouse clicks are a bit flaky
Problem:    Tests for mouse clicks are a bit flaky when run in an interactive
            terminal.
Solution:   Use "xterm2" instead of "xterm" for 'ttymouse' to avoid spurious
            drag events.

2b00b9b0f3

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
2be868ab5e vim-patch:8.1.1179: no test for mouse clicks in the fold column
Problem:    No test for mouse clicks in the fold column.
Solution:   Add a test. (Dominique Pelle, closes vim/vim#4261)

696d637728

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
355ccaeb04 vim-patch:8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Problem:    When mouse click tests fails value of 'ttytype' is unknown.
Solution:   Add a message to the assert.

4945219b99

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
3895def46c vim-patch:8.1.1176: test for dragging a tab is flaky
Problem:    Test for dragging a tab is flaky.
Solution:   Add a brief sleep.

7f27976589

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
a8d9f0a2d5 vim-patch:8.1.1175: no test for dragging a tab and double click for new tab
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)

e3e3828f93

Set 'mousetime' to 0 instead.

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
5f710789f9 vim-patch:8.1.1167: no test for closing tab by click in tabline
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)

39f76c6ac0

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
b26e242dd3 vim-patch:8.1.1165: no test for mouse clicks in the terminal tabpage line
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.

ca57ab54d7

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
718a8862ab vim-patch:8.1.1160: termcodes test would fail in a very big terminal
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)

c8b3ddab51

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:26 +08:00
zeertzjq
a44c8a3783 vim-patch:partial:8.1.1155: termcodes tests can be improved
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)

3fbd2d7c31

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 16:42:23 +08:00
zeertzjq
521e039f27
vim-patch:partial:8.2.0425: code for modeless selection not sufficiently 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.

515545e11f
2023-04-28 12:44:11 +08:00
zeertzjq
95839a2358
vim-patch:9.0.1494: crash when recovering from corrupted swap file (#23358)
Problem:    Crash when recovering from corrupted swap file.
Solution:   Bail out when the line index looks wrong. (closes vim/vim#12276)

bf1b713202

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 06:27:51 +08:00
zeertzjq
50107c3778
Merge pull request #23352 from zeertzjq/pum-at-cursor
fix(pum): make :popup position correctly with float border
2023-04-28 06:23:19 +08:00
zeertzjq
aca226d728 vim-patch:9.0.1493: popup menu position wrong in window with toolbar
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)

4e1ca0d9a6

Fixed in the previous commit. Test only.
2023-04-28 05:56:47 +08:00
zeertzjq
fbaa278773 fix(pum): make :popup position correctly with float border 2023-04-28 05:49:47 +08:00
bfredl
f65043154e
Merge pull request #23356 from ii14/fix/23355
fix(events): null dereference in autocmd functions
2023-04-27 23:00:28 +02:00
ii14
774a32e5fe fix(events): null dereference in autocmd functions 2023-04-27 22:22:54 +02:00
dundargoc
c50cdd6270
ci: replace stale bot with custom implementation
The stale action has a bug where it won't close an issue/PR if it has
comments after the stale label.
2023-04-27 22:07:44 +02:00
ii14
1cb6040554
perf(events): store autocommands in flat vectors (#23256)
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>
2023-04-27 19:25:08 +02:00
Lewis Russell
eb4676c67f
fix: disallow removing extmarks in on_lines callbacks (#23219)
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
2023-04-27 17:30:22 +01:00
zeertzjq
9f29176033
vim-patch:9.0.1492: using uninitialized memory when argument is missing (#23351)
Problem:    Using uninitialized memory when argument is missing.
Solution:   Check there are sufficient arguments before the base.
            (closes vim/vim#12302)

b7f2270bab

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-04-28 00:01:22 +08:00
zeertzjq
a3dfe1bc89
fix(pum): position properly with ext_multigrid (#23336) 2023-04-27 20:19:21 +08:00
Christian Clason
4b3fdf321c
docs(lsp): remove obsolete lsp-extension example (#23346)
This example is made obsolete by the addition of `vim.lsp.start()` and
`vim.fs` (whose use is already documented in `:h lsp-quickstart`).
2023-04-27 13:05:26 +02:00
bfredl
0ff58d1bb9
Merge pull request #23216 from bfredl/lpeg
refactor(build): include lpeg as a library
2023-04-27 12:06:44 +02:00
bfredl
45bcf83869 refactor(build): include lpeg as a library 2023-04-27 11:40:00 +02:00
zeertzjq
d321deb4a9
test: fix dependencies between test cases (#23343)
Discovered using --shuffle argument of busted.
2023-04-27 15:51:44 +08:00
zeertzjq
d1bb9bffd5
build: remove BUSTED_PRG dead code (#23340)
BUSTED_PRG is no longer used by RunTests.cmake.
2023-04-27 14:36:37 +08:00
luukvbaal
39771b2238
build(Makefile): add nvim to oldtest phony target
This is to force a rebuild each time a file is changed.
2023-04-27 08:26:07 +02:00
zeertzjq
1fc468aed2
vim-patch:9.0.1491: wrong scrolling with ls=0 and :botright split (#23333)
Problem:    Wrong scrolling with ls=0 and :botright split.
Solution:   Add statusline before calling frame_new_height(). (closes vim/vim#12299)

fbf2071ac9
2023-04-27 09:07:30 +08:00
dundargoc
3b0df1780e
refactor: uncrustify
Notable changes: replace all infinite loops to `while(true)` and remove
`int` from `unsigned int`.
2023-04-26 23:23:44 +02:00
dundargoc
7d0479c558
ci: containerize the external dependencies test
Cirrus ci automatically pushes/caches docker images, which makes
containerization much simpler to handle. Moving this job to cirrus ci
shortens the job by a minute, and reduces github actions CI usage by two
minutes per PR.
2023-04-26 23:22:12 +02:00
dundargoc
a1b045f60a
refactor(clang-tidy): remove redundant casts 2023-04-26 18:28:49 +02:00