Commit Graph

13995 Commits

Author SHA1 Message Date
zeertzjq
2ab52bd988 refactor(tinput_wait_enqueue): use rbuffer_read() when pasting (#17754)
When pasting, all of key buffer can be consumed, and in case of phase 3
the paste event must be put exactly once, so using rbuffer_read() should
be better here.
2022-03-19 21:56:47 +08:00
zeertzjq
536dc391f6 vim-patch:8.2.4593: unnecessary call to redraw_later() (#17775)
Problem:    Unnecessary call to redraw_later().
Solution:   Remove the call to redraw_later() in op_yank(). (closes vim/vim#9971)
95d2e7634c
2022-03-19 20:18:45 +08:00
zeertzjq
c4624b9543 vim-patch:8.2.4546: duplicate #undef
Problem:    Duplicate #undef.
Solution:   Remove one #undef. (closes vim/vim#9932)
0a4e098f32
2022-03-19 17:12:29 +08:00
zeertzjq
81648fd277 vim-patch:8.2.2716: the equivalent class regexp is missing some characters
Problem:    The equivalent class regexp is missing some characters.
Solution:   Update the list of equivalent characters. (Dominique Pellé,
            closes vim/vim#8029)
0b94e297af

Match upstream's indent in s:equivalence_class().
2022-03-19 17:12:29 +08:00
Xiretza
f2e5f509d9 docs: reword description for nvim_buf_line_count() (#17766)
This adds a few more keywords to make the function easier to find.
2022-03-18 19:58:00 +01:00
matveyt
e0fe91f6a3 fix(translation): po file for Russian (#17767) 2022-03-18 19:48:20 +01:00
bfredl
c2fa3af41f Merge pull request #17719 from dundargoc/doxygen/ex_docmd
refactor(ex_docmd): convert function comments to doxygen format
2022-03-18 19:05:24 +01:00
Lewis Russell
9e66d27d37 fix(syntax.c): correct hunk from Vim patch 8.0.0647 (#17761) 2022-03-18 21:15:18 +08:00
bfredl
0a81a33a9d Merge pull request #17694 from lewis6991/fix_signcol
fix(signcol): always trigger a redraw
2022-03-18 11:07:13 +01:00
Lewis Russell
00effff569 vim-patch:8.1.1693: syntax coloring and highlighting is in one big file (#17721)
Problem:    Syntax coloring and highlighting is in one big file.
Solution:   Move the highlighting to a separate file. (Yegappan Lakshmanan,
            closes vim/vim#4674)

f9cc9f209e

Name the new file highlight_group.c instead.

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-03-18 12:47:08 +08:00
bfredl
c1b98cfa5e Merge pull request #17459 from rktjmp/lua-error-tostring
feat: __tostring lua errors if possible before showing in messages
2022-03-18 00:57:48 +01:00
zeertzjq
cac90d2de7 feat(api, lua): support converting nested Funcref back to LuaRef (#17749) 2022-03-17 20:21:47 +01:00
bfredl
09a3b33d36 Merge pull request #17747 from bfredl/ui_input
feat(ui_client): input and resize
2022-03-17 20:17:38 +01:00
bfredl
3c7e937a89 Merge pull request #17266 from famiu/feat/ui/global-statusline
feat(statusline): add global statusline
2022-03-17 20:16:39 +01:00
bfredl
55b6ade7fe feat(ui_client): implement async paste handling 2022-03-17 19:39:06 +01:00
Famiu Haque
5ab1229174 feat: add support for global statusline
Ref: #9342

Adds the option to have a single global statusline for the current window at the bottom of the screen instead of a statusline at the bottom of every window. Enabled by setting `laststatus = 3`.

Due to the fact that statuslines at the bottom of windows are removed when global statusline is enabled, horizontal separators are used instead to separate horizontal splits. The horizontal separator character is configurable through the`horiz` item in `'fillchars'`. Separator connector characters are also used to connect the horizontal and vertical separators together, which are also configurable through the `horizup`, `horizdown`, `vertleft`, `vertright` and `verthoriz` items in `fillchars`.

The window separators are highlighted using the `WinSeparator` highlight group, which supersedes `VertSplit` and is linked to `VertSplit` by default in order to maintain backwards compatibility.
2022-03-18 00:21:41 +06:00
hlpr98
c6640d0d70 feat(ui_client): handle resize events 2022-03-17 19:20:20 +01:00
hlpr98
6636160338 feat(ui_client): pass user input to remote server 2022-03-17 19:20:13 +01:00
dundargoc
d238b8f600 chore: fix typos (#17670)
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-03-17 13:21:24 +08:00
bfredl
aeae88f32a Merge pull request #17739 from dundargoc/doxygen/ex_cmds
refactor(ex_cmds): convert function comments to doxygen format
2022-03-16 20:52:40 +01:00
bfredl
4c7e2ab12e Merge pull request #17741 from dundargoc/doxygen/message
refactor(message): convert function comments to doxygen format
2022-03-16 20:11:43 +01:00
bfredl
b9c3b617ba Merge pull request #17732 from dundargoc/doxygen/fold
refactor(fold): convert function comments to doxygen format
2022-03-16 19:31:48 +01:00
Dundar Göc
a41321a8a2 refactor(ex_cmds): convert function comments to doxygen format 2022-03-16 18:32:15 +01:00
bfredl
4e5e0076cb Merge pull request #17708 from bfredl/ui_client
feat(ui): UI client episode II: event handlers
2022-03-16 16:05:40 +01:00
Dundar Göc
6435a94d62 refactor(message): convert function comments to doxygen format 2022-03-16 14:06:42 +01:00
Dundar Göc
1784842899 refactor(ex_docmd): convert function comments to doxygen format 2022-03-16 13:46:14 +01:00
Dundar Göc
72ed4a547a refactor(fold): convert function comments to doxygen format 2022-03-16 09:22:19 +01:00
Jade Lovelace
5a8bf31d32 vim-patch:8.2.4571: not all gdb files are recognized (#17727)
Problem:    Not all gdb files are recognized.
Solution:   Add a few more patterns for gdb.
            (closes https://github.com/vim/vim/pull/9956)
8d5e514d77
2022-03-15 22:46:32 +01:00
bfredl
a1a8cbe9e4 Merge pull request #17731 from dundargoc/doxygen/ex_eval
refactor(ex_eval): convert function comments to doxygen format
2022-03-15 21:18:08 +01:00
bfredl
f01d203b70 refactor(ui): make auto-generated ui client handlers typesafe 2022-03-15 19:55:34 +01:00
bfredl
c0b4d931e1 refactor(ui): make ui_client_event_grid_line typesafe 2022-03-15 19:55:34 +01:00
bfredl
ca23f2ed30 refactor(ui): use "ui_client" instead of "redraw" as general prefix 2022-03-15 19:55:34 +01:00
bfredl
534edce3c4 feat(ui): invoke ui client handlers 2022-03-15 19:55:34 +01:00
hlpr98
794d2744f3 feat(ui): implement ui_client event handlers 2022-03-15 19:55:34 +01:00
Dundar Göc
2aa473593f refactor: convert function comments to doxygen format 2022-03-15 19:44:44 +01:00
Sean Dewar
716df377b4 vim-patch:8.2.4568: getmousepos() does not compute the column below the last line
Problem:    getmousepos() does not compute the column below the last line.
Solution:   Also compute the column when the mouse is below the last line.
            (Sean Dewar, closes vim/vim#9946)
10792feebd

test_setmouse is N/A.
2022-03-15 11:41:13 +00:00
Sean Dewar
4a8b6bde01 vim-patch:8.2.4559: getmousepos() returns the screen column
Problem:    getmousepos() returns the screen column. (Ernie Rael)
Solution:   Return the text column, as documented.
533870a985

Re-introduce vcol2col, which was removed in 71b1f4e for being unused.
Move it to mouse.c (like in v8.1.2062, which hasn't been ported yet).
2022-03-15 11:41:13 +00:00
Sean Dewar
6906c5759d vim-patch:8.2.4555: getmousepos() returns the wrong column
Problem:    getmousepos() returns the wrong column. (Ernie Rael)
Solution:   Limit to the text size, not the number of bytes.
986b0fd0c5

test_setmouse is N/A; adjust test for Nvim.

N/A patches for version.c:

vim-patch:8.2.4569: Coverity warning for not using a return value

Problem:    Coverity warning for not using a return value.
Solution:   Add "(void)".
977525fea6
2022-03-15 11:39:38 +00:00
zeertzjq
2ea16f7354 vim-patch:8.2.4566: check for existing buffer in session file may not work
Problem:    Check for existing buffer in session file does not work for files
            in the home directory.
Solution:   Use fnamemodify(). (James Cherti, closes vim/vim#9945)  Add a test.
7d42840033
2022-03-15 08:25:39 +08:00
bfredl
61126fcc69 Merge pull request #17718 from dundargoc/doxygen/eval_c
refactor(eval): convert function comments to doxygen format
2022-03-14 20:59:57 +01:00
Dundar Göc
378db4f32a refactor(eval): convert function comments to doxygen format 2022-03-14 14:22:58 +01:00
Sean Dewar
365a9b074f vim-patch:8.2.1413: previous tab page not usable from an Ex command
Problem:    Previous tab page not usable from an Ex command.
Solution:   Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan,
            closes vim/vim#6677)
94f4ffa770

Do not rename old_curtab to prev_tp in win_new_tabpage, this can be confused
with the previous tabpage (`:tabprevious`).

Cherry-pick ex_errmsg from v8.2.1280.
8930caaa1a
2022-03-14 13:10:57 +00:00
Sean Dewar
c5f190e0c2 vim-patch:8.2.1401: cannot jump to the last used tabpage
Problem:    Cannot jump to the last used tabpage.
Solution:   Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes vim/vim#6661,
            neovim #11626)
62a232506d

Nvim implemented this feature before Vim, but Vim made some useful changes (e.g:
beeping on failure). Port the changes to closer match Vim (also makes porting
future patches easier).

Also note that because CHECK_CMDWIN was added to goto_tabpage_tp, there is no
need to do the extra work with tabpage_index and goto_tabpage inside
goto_tabpage_lastused to fix cmdwin issues any more (#11692).
Note that while goto_tabpage_tp doesn't check for textlock like goto_tabpage
does, it shouldn't matter as it is already checked for earlier.

Add tags for <C-Tab> to tabpage.txt, and refer to <C-Tab> over CTRL-Tab to be
consistent with other docs like the patch.
Remove mention of "previous tabpage" (it can be confused with the tabpage to the
left, e.g: `:tabprevious`).
Similarly, don't rename old_curtab to last_tab in enter_tabpage (it might be
confused with the right-most tabpage, e.g: `:tablast`).

Cherry-pick Test_tabpage change from v8.2.0634.
92b83ccfda
2022-03-14 13:10:57 +00:00
Sean Dewar
7e19c18a54 vim-patch:8.2.4454: resetting cmdwin_type only for one situation
Problem:    Resetting cmdwin_type only for one situation.
Solution:   Reset cmdwin_type before closing windows. (closes vim/vim#9822)
6a8b13614e

Move the check to win_free_all to match Vim.
2022-03-14 13:10:57 +00:00
Sean Dewar
70582bd925 vim-patch:8.2.4445: exit test fails on MS-Windows anyway
Problem:    Exit test fails on MS-Windows anyway.
Solution:   Skip the test on MS-Windows.
29a9e69718
2022-03-14 13:10:57 +00:00
Sean Dewar
0412dba456 vim-patch:8.2.4444: beep caused by test
Problem:    Beep caused by test.  ASAN reports leaks.
Solution:   Do not put a NL at the end of the script.  Make the text work on
            MS-Windows.  Do not run the test with ASAN.
68eab67119

The test is skipped, but cherry-pick CheckNotAsan from v8.2.2424 anyway.
97202d9516
2022-03-14 13:10:56 +00:00
Sean Dewar
fe53182934 vim-patch:8.2.4442: test for error reading input fails on MS-Windows
Problem:    Test for error reading input fails on MS-Windows.
Solution:   Don't run the test on MS-Windows.
70b9e4f4c3
2022-03-14 13:10:56 +00:00
Sean Dewar
7519af4f0f vim-patch:8.2.4438: crash on exit when using cmdline window
Problem:    Crash on exit when using cmdline window.
Solution:   Reset "cmdwin_type" before exiting. (closes vim/vim#9817)
ca0c1caa36

Bram also went with the cmdwin_type = 0 solution, but putting it in
read_error_exit isn't ideal and only fixes one specific variant of the bug, so
don't port that change.

Port the test only, but skip it as Nvim does not exit after stdin is exhausted.
Using -es instead does exit, but read_error_exit does not run preserve_exit in
that case, and does not have issues exiting even without resetting cmdwin_type.

Note that the test has problems and is fixed in later patches.
2022-03-14 13:10:56 +00:00
Sean Dewar
490874f3da vim-patch:8.2.4432: cannot use settabvar() while the cmdline window is open
Problem:    Cannot use settabvar() while the cmdline window is open.
Solution:   Only give an error when actually switching tabpage.
            (closes vim/vim#9813)
592f625001
2022-03-14 13:10:56 +00:00
Sean Dewar
880d3537d0 vim-patch:8.2.4428: crash when switching tabpage while in the cmdline window
Problem:    Crash when switching tabpage while in the cmdline window.
Solution:   Disallow switching tabpage when in the cmdline window.
0f6e28f686

Ensure cmdline window doesn't stop us from closing tabs with EXITFREE.
mem_free_all -> win_free_all -> tabpage_close -> ... -> goto_tabpage_tp
-> CHECK_CMDWIN can cause an infinite loop if Nvim is exited without using
standard methods such as :qa! and friends (e.g: killed via a signal).
This issue had caused the ASAN CI's functionaltests to timeout.

Cherry-pick Test_cmdwin_tabpage from v8.2.4463.
38b85cb4d7
This bug was already fixed in Nvim. Note that g<Tab> inside cmdwin is already
tested for in tabnewentered_spec.lua anyway.

E492 is thrown after E11 when using ":norm" in assert_fails for some reason
(except after v8.2.1919, which isn't ported yet).
As v8.2.1183 isn't ported yet, so we cannot assert E11 directly.
Modify the test to check for E11 and E492 seperately; when v8.2.1183 is ported,
the assertion for E492 will fail and the changes can be reverted to match
upstream.

Remove redundant CHECK_CMDWIN from goto_tabpage; it's handled with text_locked()
and text_locked_msg() above:

vim-patch:8.2.4434: duplicate check for cmdline window

Problem:    Duplicate check for cmdline window.
Solution:   Remove the second check. (Sean Dewar, closes vim/vim#9816)
16b51d26fe
2022-03-14 13:10:20 +00:00