| Commit message (Collapse) | Author | Age |
... | |
| | |
| | |
| | |
| | | |
These mirror their counterparts in nvim_set_option_value.
|
|\ \ \
| | | |
| | | | |
vim-patch:8.2.{5107,5138}: various small issues
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: Various small issues.
Solution: Various small improvments.
https://github.com/vim/vim/commit/8088ae95bbed2085c5fb196850c4e4b8df55c989
N/A patches for version.c:
vim-patch:8.2.5107: some callers of rettv_list_alloc() check for not OK
Problem: Some callers of rettv_list_alloc() check for not OK. (Christ van
Willegen)
Solution: Use "==" instead of "!=" when checking the return value.
https://github.com/vim/vim/commit/93a1096fe48e12095544924adb267e3b8a16b221
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Note for external UIs: Nvim can now emit multiple "redraw" event batches
before a final "flush" event is received. To retain existing behavior,
clients should make sure to update visible state at an explicit "flush"
event, not just the end of a "redraw" batch of event.
* Get rid of copy_object() blizzard in the auto-generated ui_event layer
* Special case "grid_line" by encoding screen state directly to
msgpack events with no intermediate API events.
* Get rid of the arcane notion of referring to the screen as the "shell"
* Array and Dictionary are kvec_t:s, so define them as such.
* Allow kvec_t:s, such as Arrays and Dictionaries, to be allocated with
a predetermined size within an arena.
* Eliminate redundant capacity checking when filling such kvec_t:s
with values.
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of appending to a command output, append to an existing target
instead. The primary benefit is intermediary ...-cmd targets aren't
needed, we can instead append commands to the relevant target directly.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Closes #19007
Co-authored-by: bfredl <bjorn.linse@gmail.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
Piping NodeJS output into Neovim makes the editor unusable.
This happens because NodeJS changes the tty state on exit after
Nvim calls uv_tty_set_mode(). (May not always happen due to race
condition.)
This should have been fixed by 4ba5b4a86461 #13084. But some
commands and functions (:sleep, system(), …) call ui_flush()
internally, in particular the first tui_mode_change() is called before
the end of startup.
Steps to reproduce:
1. node -e "setTimeout(()=>{console.log('test')}, 1000)" | nvim -u NORC +"sleep 500m" -
2. The cursor key letters just overwrite the editor screen, and CTRL+C exits.
Solution:
Skip pending_mode_update during startup.
Note: Delaying ui_flush() entirely could be a more general solution
(emit a new UI event on VimEnter?). But "remote/coprocess TUI" #18375
could make all of this moot anyway.
Fixes #18470
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
1. CI logs have too many (40+) logs mentioning SIGHUP:
```
WRN 2022-06-18T16:05:47.075 T3568.22499.0/c deadly_signal:177: got signal 1 (SIGHUP)
WRN 2022-06-18T16:05:47.273 T3569.91095.0/c deadly_signal:177: got signal 1 (SIGHUP)
WRN 2022-06-18T16:05:47.651 T3570.59545.0/c deadly_signal:177: got signal 1 (SIGHUP)
```
2. TS parser test still sometimes fails on BSD CI.
3. remote_spec test fails too often.
Solution:
1. Log deadly signals at INFO level. It hasn't been helpful in CI, and
for local troubleshooting it's reasonable to adjust the loglevel as
needed.
2. Adjust the TS parser test again. ref #18911
3. Skip the remote_spec test. The `--remote` feature was merged before
it was fully formed and needs to be revisited.
|
|
|
|
|
|
|
|
|
|
| |
luacheck and clint are the most important, and they are bundled.
The others are nice-to-have, and not always available (and not bundled),
so make them optional. This allows the "lint" target to function as
a convenient and low-hassle handle for contributors.
We still get the full power of lint in CI.
TODO: bundle uncrustify (and then set it as required for "lint")?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Coverity reports use after free:
*** CID 352784: Memory - illegal accesses (USE_AFTER_FREE)
/src/nvim/buffer.c: 1508 in set_curbuf()
1502 if (old_tw != curbuf->b_p_tw) {
1503 check_colorcolumn(curwin);
1504 }
1505 }
1506
1507 if (bufref_valid(&prevbufref) && prevbuf->terminal != NULL) {
>>> CID 352784: Memory - illegal accesses (USE_AFTER_FREE)
>>> Calling "terminal_check_size" dereferences freed pointer "prevbuf->terminal".
1508 terminal_check_size(prevbuf->terminal);
1509 }
1510 }
1511
1512 /// Enter a new current buffer.
1513 /// Old curbuf must have been abandoned already! This also means "curbuf" may
Solution:
Change terminal_destroy and terminal_close to set caller storage to NULL,
similar to XFREE_CLEAR. This aligns with the pattern found already in:
terminal_destroy e897ccad3eb1e
term_delayed_free 3e59c1e20d605
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
If startup finishes (starting=false) before the logger ever happens to
see a v:servername, we're stuck with the "?.<PID>" fallback name
forever.
Solution:
Drop the `starting` condition. Discard the "?.<PID>" fallback after
using it for the current log message. So logging will always check
v:servername next time.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If `use_rgb` was false, we would attempt to set the `cterm_bg_color` to the
variable `bg`, which is only retrieved from `bg` and `background` keys, not
`ctermbg`. Same for `fg`. This means the values would be `-1` (the default,
un-got value) and we'd always set the returned values to `0`.
My understanding is `fg/bg` is always "gui" values, so instead we should be
using `ctermbg` when needed.
Nb: when looking around I think this function is currently *always* called with
`use_rgb = true`.
|
|
|
|
|
|
|
|
| |
Problem: Interrupt test sometimes fails.
Solution: Use a different file name.
https://github.com/vim/vim/commit/8d6420631c2bd73dbc1939c4bf04ab7bb39cc263
Add a modeline to test_interrupt.vim.
|
|
|
|
|
|
| |
Problem: Searching for quotes may go over the end of the line.
Solution: Check for running into the NUL.
https://github.com/vim/vim/commit/2f074f4685897ab7212e25931eeeb0212292829f
|
|
|
|
|
| |
Problem: "limit" option of matchfuzzy() not always respected.
Solution: Remove "else". (Kazuyuki Miyagi, closes vim/vim#10586)
https://github.com/vim/vim/commit/47f1a55849a73cefe738a246798221e45448546a
|
|
|
|
|
|
|
|
|
|
| |
Fixes #18980
- 831fa45ad84e 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 29bc6dfabde2 where it
was avoiding setting a HL attr. But `hlattrs2dict()` now is just
informational.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
- Unix sockets are created in random /tmp dirs.
- /tmp is messy, unclear when OSes actually clear it.
- The generated paths are very ugly. This adds friction to reasoning
about which paths belong to which Nvim instances.
- No way to provide a human-friendly way to identify Nvim instances in
logs or server addresses.
Solution:
- Store unix sockets in stdpath('state')
- Allow --listen "name" and serverstart("name") to given a name (which
is appended to a generated path).
TODO:
- is stdpath(state) the right place?
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
1. Log messages (especially in CI) are hard to correlate with tests.
2. Since b353a5c05f02 #11886, dumplog() prints the logs next to test
failures. This is noisy and gets in the way of the test results.
Solution:
1. Associate an incrementing id with each test and include it in log
messages.
- FUTURE: add v:name so Nvim instances can be formally "named"?
2. Mention "child" in log messages if the current Nvim is a child (based
on the presence of $NVIM).
BEFORE:
DBG … 12345 UI: event
DBG … 12345 log_server_msg:722: RPC ->ch 1: …
DBG … 12345 UI: flush
DBG … 12345 inbuf_poll:444: blocking... events_enabled=1 events_pending=0
DBG … 23454 UI: stop
INF … 23454 os_exit:594: Nvim exit: 0
AFTER:
DBG … T57 UI: event
DBG … T57 log_server_msg:722: RPC ->ch 1: …
DBG … T57 UI: flush
DBG … T57 inbuf_poll:444: blocking... events_enabled=1 events_pending=0
DBG … T57/child UI: stop
INF … T57/child os_exit:594: Nvim exit: 0
|
| |
| |
| |
| |
| | |
Problem: Icon filetype not recognized from the first line.
Solution: Add a check for the first line. (Doug Kearns)
https://github.com/vim/vim/commit/bf6614643f656d38d220c04befdcb1d35774853a
|
|/ |
|
| |
|
|
|
|
|
| |
Problem: Using uninitialized memory when using 'listchars'.
Solution: Use the length returned by mb_char2bytes(). (closes vim/vim#10576)
https://github.com/vim/vim/commit/74ac29cecd56457ee93f3f71b31b7a2e6d9712d6
|
| |
|
|
|
|
|
|
|
| |
docs: fix typos and similarly insignificant changes
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: smjonas <jonas.strittmatter@gmx.de>
Co-authored-by: kanreki <32443233+kanreki@users.noreply.github.com>
|
|\
| |
| | |
vim-patch:8.2.{1897,1898,5088}
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Value of cmod_verbose is a bit complicated to use.
Solution: Use zero for not set, value + 1 when set. (closes vim/vim#10564)
https://github.com/vim/vim/commit/cd7496382efc9e6748326c6cda7f01003fa07063
Omit has_cmdmod(): only used for Vim9 script
|
| |
| |
| |
| |
| |
| | |
Problem: Command modifier parsing always uses global cmdmod.
Solution: Pass in cmdmod_T to use. Rename struct fields consistently.
https://github.com/vim/vim/commit/e10044015841711b989f9a898d427bcc1fdb4c32
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Command modifiers are saved and set inconsistently.
Solution: Separate parsing and applying command modifiers. Save values in
cmdmod_T.
https://github.com/vim/vim/commit/5661ed6c833e05467cab33cb9b1c535e7e5cc570
Cherry-pick: :0verbose fix from patch 8.2.4741
|
|\ \
| |/
|/| |
perf(memory): use an arena for RPC decoding
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
drawback: tracing memory errors with ASAN is less accurate for arena
allocated memory.
Therefore, to start with it is being used for Object types around
serialization/deserialization exclusively. This is going to have
a large impact especially when TUI is refactored as a co-prosess
as all UI events will be serialized and deserialized by nvim itself.
|
| |
| |
| | |
Work on https://github.com/neovim/neovim/issues/567
|
|/
|
|
| |
`errormsg` is not always set when parsing the command failed (e.g. when
the range contains invalid marks). Check the return value is better.
|
|
|
|
|
|
|
| |
Problem: Not all modifiers supported for :options.
Solution: Use all cmdmod.split flags. (closes vim/vim#4401)
https://github.com/vim/vim/commit/7a1637f4c00ac3d0cbf894803ada1586a1717470
Cherry-pick Test_options_command() change from patch 8.2.0540
|
|
|
|
|
|
|
|
|
| |
Fix https://github.com/neovim/neovim/issues/1004
Limitation: All outputs need hit-enter prompt.
Related:
https://github.com/neovim/neovim/pull/6732
https://github.com/neovim/neovim/pull/4382
|
|
|
|
|
|
| |
Problem: Autocmd test still fails on MS-Windows.
Solution: Change backward to forward slashes.
https://github.com/vim/vim/commit/db77c49401145d76441fbb3d22a1d7d987681c13
|
|
|
|
|
|
| |
Problem: Autocmd test fails on MS-Windows.
Solution: Set shellslash to get forward slashes.
https://github.com/vim/vim/commit/7c0d0c3c75151e716184397a41ff74ab0429db5a
|
|
|
|
|
|
|
|
|
| |
Problem: DirChanged autocommand may use freed memory. (Shane-XB Qian)
Solution: Free the memory later. (closes vim/vim#10555)
https://github.com/vim/vim/commit/d8c9d32c8932e93008bfd4e8828ed42f4e9f8315
Code change is N/A as Nvim gets the full current directory again before
applying the autocommand, so this just ports the tests.
|
|
|
|
|
|
|
|
|
|
| |
Problem:
lintuncrustify doesn't actually do anything.
Solution:
- Fix the parameters.
- Fail correctly on nonzero result.
followup to #18940
|
|\
| |
| | |
fix(substitute): subtract number of backslashes later
|
| |
| |
| |
| |
| |
| | |
Problem: Substitute test has a one second delay.
Solution: Use ":silent!". Add another test case. (closes vim/vim#10558)
https://github.com/vim/vim/commit/3269efdf014dd3b6e60e330950d40a7cc5d13d3a
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
Since 6d57bb89c1ee #18543, luacheck is not found on some systems when
running the "lintlua" target.
Solution:
- Move the find_program() to the top-level CMakeLists.txt
- Define a def_cmd_target() function with fewer assumptions than the old
lint() function.
- Move "lintuncrustify" to src/nvim/CMakeLists.txt so it can reuse the
$LINT_NVIM_SOURCES already defined there.
- Make the lint targets _fatal_ by default. There is little reason for
the "lint" umbrella target defined in Makefile to exist if it's going
to ignore the absence of the actual linters.
- For now, keep the uncrustify call in a separate cmake script so that
it can be silenced (too noisy).
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
Fix #14998
|
|\ \
| | |
| | | |
refactor(api): reorganize code
|
| | | |
|
| | | |
|
| |/ |
|