Commit Graph

13254 Commits

Author SHA1 Message Date
zeertzjq
37b3fc493c fix(ui): set redraw_cmdline when setting window height 2022-08-06 07:24:18 +08:00
zeertzjq
ad84bbbd13 fix(tabpage): check if ROWS_AVAIL changed for resize 2022-08-06 07:24:18 +08:00
zeertzjq
5190f82a52 refactor: add space around arithmetic operators '+' and '-' 2022-08-05 16:45:01 +08:00
github-actions[bot]
ce7df6759c [Backport release-0.7] fix seg fault in find_tagfunc_tags (#19503)
fix: fix seg fault in find_tagfunc_tags

(cherry picked from commit 187c02cc40)

Co-authored-by: Frederick Mayle <fmayle@google.com>
2022-08-01 07:34:48 -07:00
zeertzjq
2053f579a6 fix(options): properly free string option
(cherry picked from commit 4d8e514210)
2022-07-26 23:29:58 +00:00
zeertzjq
567bb36edf fix(grid): don't use utfc_ptr2char_len() when printing until NUL 2022-07-22 06:55:35 +08:00
resolritter
403e653903 fix(lua): make it possible to cancel vim.wait() with Ctrl-C
(cherry picked from commit 2926ce7921)
2022-07-19 01:11:49 +00:00
Enan Ajmain
d9521c71d1 fix(windows):exepath, stdpath return wrong slashes #19111
exepath and stdpath should respect shellslash and return path with
proper file separator.
Closes #13787
2022-07-17 17:36:01 -07:00
Javier Lopez
49a9fb2d98 fix(tui): resize at startup #17795
* fix(test): screen.lua nil index
  When actual_rows and expected_rows are different avoid a nil index.
* fix(tui): resize at startup
  The deleted code is not needed after 402b4e8.
  It caused the condition to false positive when the function was called
  more than once before startup (first normal mode). Being itself what
  set the dimension and not the user, locking the size of the screen to
  an incorrect size.
  Make got_winch an int to mitigate: tui_grid_resize changing the size
  of the host terminal between the signal handler and the call to
  sigwinch_cb. Since the actual signal handler uv__signal_handle doesn't
  directly call the callback, the event loop does.

Fixes #17285
Fixes #15044
Fixes #11330
2022-07-17 17:11:46 -07:00
zeertzjq
1353369fbb fix(ex_cmds): correct flags for :const
(cherry picked from commit 0a7e0304c7)
2022-07-16 06:55:14 +00:00
tomial
7e6877b9d2 fix: add folded line indicator translations from vim
(cherry picked from commit 73e9809c73)
2022-07-11 11:25:24 +00:00
erw7
a4d1ef3128 feat(tui): recognize keypad keys when using kitty keyboard protocol
(cherry picked from commit 33ed85a2f6)
2022-07-06 23:42:59 +00:00
Gregory Anders
b7c0c8cde8 fix(api): change default value of 'pattern' in nvim_exec_autocmds (#19115)
Omitting 'pattern' in nvim_exec_autocmds should be equivalent to
omitting the 'fname' argument in :doautoall, which is equivalent to
using an empty string as the pattern. Fixes regression introduced
in #19091.
2022-06-27 10:53:39 +02:00
Christian Clason
dbe4270db7 refactor(api): use FOREACH_ITEM macro in autocmd 2022-06-26 23:22:50 +02:00
Christian Clason
29d74cf526 feat(api): support pattern array for exec_autocmds 2022-06-26 23:19:37 +02:00
Justin M. Keyes
71e2c49b17 refactor(tests): introduce testprg()
Also:
- Add a describe('shell :!') section to system_spec.
- Make the test for #16271 work on systems without powershell.
2022-06-25 19:09:29 +02:00
Enan Ajmain
175892fa37 fix: make_filter_cmd for :! powershell #15913
Problem:
Nvim fails to create tempfile "…/nvim6UJx04/7" when 'shell' is set to
pwsh (PowerShell Core). This breaks filtered shell commands ":{range}!".
With shell set to cmd, it works.

Solution:
PowerShell doesn't use "<" for stdin redirection. Instead, use
"-RedirectStandardInput".

Closes #15913
2022-06-25 17:54:41 +02:00
zeertzjq
cf9c097f34 fix(api): check for inclusive buffer line index out of bounds correctly
(cherry picked from commit 01ee7152c5)
2022-06-23 13:40:46 +00:00
zeertzjq
c0224b59da vim-patch:8.2.5152: search() gets stuck with "c" and skip evaluates to true
Problem:    search() gets stuck with "c" and skip evaluates to true.
Solution:   Reset the SEARCH_START option. (closes vim/vim#10608)
180246cfd1
(cherry picked from commit c527be5600)
2022-06-23 11:35:15 +00:00
zeertzjq
17299b302c fix(input): use correct grid when restoring cursor for <expr> mapping
(cherry picked from commit 2d4c992dbe)
2022-06-22 22:04:40 +00:00
ii14
40e13c8d95 fix(decorations): nvim_buf_set_extmark breaks conceal #19010
Closes #19007

Co-authored-by: bfredl <bjorn.linse@gmail.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2022-06-19 19:39:14 +02:00
Kevin Jiang
18e0d64666 fix(tui): fix piping output make nvim unusable
fix(tui): fix piping output make nvim unusable

(cherry picked from commit 72ce1f308b)
2022-06-19 15:23:13 +00:00
Oliver Marriott
433f3067a0 fix: use ctermbg/fg instead of bg/fg when use_rgb is false
(cherry picked from commit d76ecae4ae)
2022-06-18 15:36:50 +00:00
zbirenbaum
777d415da8 fix(highlight): let winhighlight use cursor 2022-06-18 14:14:24 +02:00
Oliver Marriott
f70e0832b1 fix(hl): return cterm fg/bg even if they match Normal #18981
Fixes #18980

- 831fa45ad8 is related but this doesn't regress that
- The `cterm_normal_fg_color != ae.cterm_fg_color` comparison is originally
  carried from patch to patch starting all the way back in 29bc6dfabd where it
  was avoiding setting a HL attr. But `hlattrs2dict()` now is just
  informational.
2022-06-18 13:21:01 +02:00
Oliver Marriott
ee210b0f74 fix(hl): DRY set_hl_group() sg_attr set
(cherry picked from commit 9747e984e1)
2022-06-18 11:18:39 +00:00
Oliver Marriott
79ca64a1ef fix(hl): set Normal hl group sg_attr value (fixes #18024)
(cherry picked from commit 03b4b07162)
2022-06-18 11:18:39 +00:00
bfredl
41709831ae fix(startup): nvim with --clean should not load user rplugins
runtime rplugins such like legacy script providers are not affected
by this change.

(cherry picked from commit aad20de5ab)
2022-06-17 15:17:41 +00:00
github-actions[bot]
fdd5178581 [Backport release-0.7] introduce $NVIM, unset $NVIM_LISTEN_ADDRESS (#18986)
feat(server): introduce $NVIM

PROBLEM
------------------------------------------------------------------------
$NVIM_LISTEN_ADDRESS has conflicting purposes as both a parameter ("the
current process should listen on this address") and a descriptor ("the
current process is a child of this address").

This contradiction means the presence of NVIM_LISTEN_ADDRESS is
ambiguous, so child Nvim always tries to listen on its _parent's_
socket. This is the cause of lots of  "Failed to start server" spam in
our test/CI logs:

    WARN  2022-04-30… server_start:154: Failed to start server: address already in use: \\.\pipe\nvim-4480-0
    WARN  2022-04-30… server_start:154: Failed to start server: address already in use: \\.\pipe\nvim-2168-0

SOLUTION
------------------------------------------------------------------------

1. Set $NVIM to the parent v:servername, *only* in child processes.
   - Now the correct way to detect a "parent" Nvim is to check for $NVIM.
2. Do NOT set $NVIM_LISTEN_ADDRESS in child processes.
3. On startup if $NVIM_LISTEN_ADDRESS exists, unset it immediately after
   server init.
4. Open a channel to parent automatically, expose it as v:parent.

Fixes #3118
Fixes #6764
Fixes #9336
Ref https://github.com/neovim/neovim/pull/8247#issuecomment-380275696
Ref #8696

(cherry picked from commit b9d97f5951)

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2022-06-16 18:30:08 -07:00
zeertzjq
351b5969c1 vim-patch:8.2.5097: using uninitialized memory when using 'listchars' (#18985)
Problem:    Using uninitialized memory when using 'listchars'.
Solution:   Use the length returned by mb_char2bytes(). (closes vim/vim#10576)
74ac29cecd
2022-06-16 19:09:59 +08:00
zeertzjq
bf4df2a629 fix(ui): do not call showmode() when setting window height
(cherry picked from commit 756e65ae62)
2022-06-15 11:42:36 +00:00
zeertzjq
05f6883ee2 fix(buffer): disable buffer-updates before removing buffer from window
There can be other places that access window buffer info (e.g.
`tabpagebuflist()`), so checking `w_closing` in `win_findbuf()` doesn't
solve the crash in all cases, and may also cause Nvim's behavior to
diverge from Vim.

(cherry picked from commit fa30ef1c31)
2022-06-12 22:02:42 +00:00
zeertzjq
0c9d666205 fix(input): fix macro recording with ALT and special key
(cherry picked from commit d6b309e20b)
2022-06-10 09:14:45 +00:00
zeertzjq
1496f4212b fix(input): allow Ctrl-C to interrupt a recursive mapping even if mapped
(cherry picked from commit 56895cf4de)
2022-06-07 04:45:25 +00:00
zeertzjq
6768784feb vim-patch:8.2.5058: input() does not handle composing characters properly
Problem:    input() does not handle composing characters properly.
Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
            (closes vim/vim#10527)
e3a529bc87

Cherry-pick all of Test_input_func() from patch 8.2.0316.

(cherry picked from commit 84ed71f319)
2022-06-05 21:46:39 +00:00
Christian Clason
b43eed7d91 vim-patch:8.2.4767: openscad files are not recognized
Problem:    Openscad files are not recognized.
Solution:   Add a filetype pattern. (Niklas Adam, closes vim/vim#10199)
c360b2566c
(cherry picked from commit b49c1adb20)
2022-05-26 01:57:19 +00:00
zeertzjq
9876db1aa5 vim-patch:8.2.5008: when 'formatoptions' contains "/" wrongly wrapping comment
Problem:    When 'formatoptions' contains "/" wrongly wrapping a long trailing
            comment.
Solution:   Pass the OPENLINE_FORMAT flag.
7e66778815
(cherry picked from commit 01167f2448)
2022-05-23 13:28:37 +00:00
kylo252
3a1e8ef881 fix(autocmds): separate command from desc (#18617) 2022-05-21 17:16:56 +02:00
zeertzjq
479f41aa89 vim-patch:8.2.4980: when 'shortmess' contains 'A' loading session may still warn
Problem:    When 'shortmess' contains 'A' loading a session may still warn for
            an existing swap file. (Melker Österberg)
Solution:   Keep the 'A' flag to 'shortmess' in the session file.
            (closes vim/vim#10443)
aaadb5b6f7

Use readfile() with "B" flag in test as readblob() needs patch 8.2.2343.

(cherry picked from commit 1d67dd16e2)
2022-05-19 23:29:29 +00:00
zeertzjq
107694acdc vim-patch:8.2.4953: with 'si' inserting '}' after completion goes wrong
Problem:    With 'smartindent' inserting '}' after completion goes wrong.
Solution:   Check the cursor is in indent.  (closes vim/vim#10420)
2e444bbef0
(cherry picked from commit dca0412d37)
2022-05-14 13:44:11 +00:00
zeertzjq
58dd142090 vim-patch:8.2.4951: smart indenting done when not enabled
Problem:    Smart indenting done when not enabled.
Solution:   Check option values before setting can_si. (closes vim/vim#10420)
de5cf28781
(cherry picked from commit 24eb1af475)
2022-05-14 13:44:11 +00:00
zeertzjq
7d4ab102a6 vim-patch:8.2.4794: compiler warning for not initialized variable
Problem:    Compiler warning for not initialized variable.
Solution:   Initialize the variable. (John Marriott)
4c84dd33ad
(cherry picked from commit f9c8ba0b85)
2022-05-14 12:50:35 +00:00
zeertzjq
31307c3877 vim-patch:8.2.4792: indent operator creates an undo entry for every line
Problem:    Indent operator creates an undo entry for every line.
Solution:   Create one undo entry for all lines. (closes vim/vim#10227)
e468698994
(cherry picked from commit f8b832b171)
2022-05-14 12:50:35 +00:00
zeertzjq
4e4e185405 vim-patch:8.2.0358: insufficient testing for indent.c
Problem:    Insufficient testing for indent.c.
Solution:   Add indent tests. (Yegappan Lakshmanan, closes vim/vim#5736)
bd7206e02c

Cherry-pick Test_ex_mode() changes from Vim patches 8.2.{0342,0347}.
Reorder test_expand_func.vim to match upstream.

(cherry picked from commit c72857d396)
2022-05-14 12:50:35 +00:00
Sean Dewar
56d05076f8 vim-patch:8.2.4943: changing 'switchbuf' may have no effect
Problem:    Changing 'switchbuf' may have no effect.
Solution:   Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
            closes vim/vim#10406)
39c46b4378

Guess it doesn't hurt to cherry-pick didset_string_options from v8.1.2045
(but in option.c, for now).

(cherry picked from commit 809790b9f6)
2022-05-12 23:41:54 +00:00
zeertzjq
37b82b513c vim-patch:8.2.4908: no text formatting for // comment after a statement
Problem:    No text formatting for // comment after a statement.
Solution:   format a comment when the 'c' flag is in 'formatoptions'.
48a8a83303
(cherry picked from commit a74c08d524)
2022-05-07 23:51:48 +00:00
github-actions[bot]
8a23b8ed29 vim-patch:8.2.4907: some users do not want a line comment always inserted (#18464)
Problem:    Some users do not want a line comment always inserted.
Solution:   Add the '/' flag to 'formatoptions' to not repeat the comment
            leader after a statement when using "o".
2bf875f881
(cherry picked from commit d4b9aa4f8e)

Co-authored-by: Christian Clason <c.clason@uni-graz.at>
2022-05-07 17:39:28 +02:00
zeertzjq
ca3ef915ce vim-patch:8.2.4881: "P" in Visual mode still changes some registers
Problem:    "P" in Visual mode still changes some registers.
Solution:   Make "P" in Visual mode not change any register. (Shougo
            Matsushita, closes vim/vim#10349)
509142ab7a
(cherry picked from commit 28c74ef687)
2022-05-06 11:27:01 +00:00
github-actions[bot]
b7a5278249 feat(api): add group_name to nvim_get_autocmds (#18440)
(cherry picked from commit 96289f2416)

Co-authored-by: Famiu Haque <famiuhaque@protonmail.com>
2022-05-05 20:59:45 +02:00
github-actions[bot]
e28799f2d8 fix: display global statusline correctly with ext_messages (#18436)
(cherry picked from commit b5957c3c32)

Co-authored-by: shirasaka <shirasaka@n-create.co.jp>
2022-05-05 19:00:35 +02:00