| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: Dan Sully <dan+github@sully.org>
Co-authored-by: saher <msaher.shair@gmail.com>
Co-authored-by: Stephan Seitz <stephan.seitz@fau.de>
Co-authored-by: Benedikt Müller <d12bb@posteo.de>
Co-authored-by: Andrey Mishchenko <mishchea@gmail.com>
Co-authored-by: Famiu Haque <famiuhaque@protonmail.com>
Co-authored-by: Oliver Marriott <hello@omarriott.com>
|
| |
| |
| | |
fix #18024
|
| | |
|
| |\
| | |
| | | |
fix(api): some robustness issues in api_parse_enter
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
problem: data race when `recursive` is read outside of mutex by thread A
while thread B has taken the mutex and modifies it.
solution: use a recursive lock.
ref #18764
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently this is more or less a straight off reimplementation,
but this allow further optimizations down the line, especially
for avoiding memory allocations of rpc objects.
Current score for "make functionaltest; make oldtest" on a -DEXITFREE build:
is 117 055 352 xfree(ptr != NULL) calls (that's NUMBERWANG!).
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
clang: Result of operation is garbage or undefined
clang: Uninitialized argument value
Also check for == 's' instead of != 'n' as it is more straightforward.
Also fix another unrelated PVS warning:
PVS/V1071: Return value of win_comp_pos() is not always used
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also avoid referring to mappings as "keymaps" in commands and docs.
*map_empty_rhs* *map-empty-rhs*
You can create an empty {rhs} by typing nothing after a single CTRL-V (you
have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc
file.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Complete function:
There was lots of unnecessary C code for the complete function, therefore
moving it to Lua and use all the plumbing we have in place to retrieve the
results.
- Moving the module:
It's important we keep nvim lua modules name spaced, avoids conflict with
plugins, luarocks, etc.
|
| |\
| | |
| | | |
feat: user command "preview" (like inccommand)
|
| | |
| | |
| | |
| | | |
Adds a Lua-only `preview` flag to user commands which allows the command to be incrementally previewed like `:substitute` when 'inccommand' is set.
|
| |\ \
| | | |
| | | | |
feat(filetype): add more filetype patterns to Lua
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | | |
Problem: vim_regsub() can overwrite the destination.
Solution: Pass the destination length, give an error when it doesn't fit.
https://github.com/vim/vim/commit/4aaf3e7f4db599932d01d87e5bbcdc342cccee27
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
1. The main log routine does not protect itself against recursion.
log_lock() doesn't guard against recursion, it would deadlock...
2. 22b52dd462e5 (#11501) regressed 6f27f5ef91b3 (#10172), because
set_init_1..process_spawn tries to log (see backtrace below), but the
mutex isn't initialized yet. Even if the mutex were valid, we don't
want early logging to fallback to stderr because that can break
embedders when stdio is used for RPC.
frame 1: 0x00000001001d54f4 nvim`open_log_file at log.c:205:7
frame 2: 0x00000001001d5390 nvim`logmsg(log_level=1, context="UI: ", func_name=0x0000000000000000, line_num=-1, eol=true, fmt="win_viewport") at log.c:150:20
frame : 0x000000010039aea2 nvim`ui_call_win_viewport(grid=2, win=1000, topline=0, botline=1, curline=0, curcol=0, line_count=1) at ui_events_call.generated.h:321:3
frame 4: 0x00000001003dfefc nvim`ui_ext_win_viewport(wp=0x0000000101816400) at window.c:939:5
frame 5: 0x00000001003ec5b4 nvim`win_ui_flush at window.c:7303:7
frame 6: 0x00000001003a04c0 nvim`ui_flush at ui.c:508:3
frame 7: 0x00000001002966ba nvim`do_os_system(argv=0x0000600000c0c000, input=0x0000000000000000, len=0, output=0x0000000000000000, nread=0x00007ff7bfefe830, silent=false, forward_output=false) at shell.c:894:3
frame 8: 0x0000000100295f68 nvim`os_call_shell(cmd="unset nonomatch; vimglob() { while [ $# -ge 1 ]; do echo \"$1\"; shift; done }; vimglob >/var/folders/gk/3tttv_md06987tlwpyp62jrw0000gn/T/nvimwwvwfD/0 ~foo", opts=kShellOptExpand | kShellOptSilent | kShellOptHideMess, extra_args=0x0000000000000000) at shell.c:663:18
frame 9: 0x0000000100295845 nvim`call_shell(cmd="unset nonomatch; vimglob() { while [ $# -ge 1 ]; do echo \"$1\"; shift; done }; vimglob >/var/folders/gk/3tttv_md06987tlwpyp62jrw0000gn/T/nvimwwvwfD/0 ~foo", opts=kShellOptExpand | kShellOptSilent | kShellOptHideMess, extra_shell_arg=0x0000000000000000) at shell.c:712:14
frame 10: 0x0000000100294c6f nvim`os_expand_wildcards(num_pat=1, pat=0x00007ff7bfefeb20, num_file=0x00007ff7bfefee58, file=0x00007ff7bfefee60, flags=43) at shell.c:328:7
...
frame 23: 0x000000010028ccef nvim`expand_env_esc(srcp=",~foo", dst="~foo", dstlen=4094, esc=false, one=false, prefix=0x0000000000000000) at env.c:673:17
frame 24: 0x000000010026fdd5 nvim`option_expand(opt_idx=29, val=",~foo") at option.c:1950:3
frame 25: 0x000000010026f129 nvim`set_init_1(clean_arg=false) at option.c:558:19
frame 26: 0x00000001001ea25e nvim`early_init(paramp=0x00007ff7bfeff5f0) at main.c:198:3
frame 27: 0x00000001001ea6bf nvim`main(argc=1, argv=0x00007ff7bfeff848) at main.c:255:3
Solution:
1. Check for recursion, show "internal error" message.
- FUTURE: when "remote TUI" is merged, can we remove log_lock()?
2. Skip logging if log_init wasn't called yet.
|
| |/
| |
| |
| |
| | |
This avoids generating khash tables at runtime, and is consistent with
how evalfuncs lookup work.
|
| |\
| | |
| | | |
feat(api): pass structured modifiers to commands
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds an `smods` key to `nvim_create_user_command` Lua command callbacks,
which has command modifiers but in a structured format. This removes the
need to manually parse command modifiers. It also reduces friction in
using `nvim_cmd` inside a Lua command callback.
|
| | | |
|
| |/
| |
| |
| |
| | |
Problem: Cursor position may be invalid after "0;" range.
Solution: Check the cursor position when it was set by ";" in the range.
https://github.com/vim/vim/commit/4d97a565ae8be0d4debba04ebd2ac3e75a0c8010
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Previously, there was a bug where setting the local value of 'winbar' to
itself would cause winbar to appear on a floating window, which is
undesirable. This fix makes it so that it's explicitly required for the
window-local value of 'winbar' for a floating window to be set in order
for winbar to be shown on that window.
|
| |
| |
| |
| |
| | |
Problem: Using freed memory with "]d".
Solution: Copy the pattern before searching.
https://github.com/vim/vim/commit/e2fa213cf571041dbd04ab0329303ffdc980678a
|
| |\
| | |
| | | |
feat(lua): allow some viml functions to run in fast
|
| | |
| | |
| | |
| | |
| | | |
This change adds the necessary plumbing to annotate functions in funcs.c
as being allowed in run in luv fast events.
|
| | | |
|
| | |
| | |
| | | |
related vim-8.2.{4402,4639}
|
| | |
| | |
| | |
| | |
| | | |
Problem: Hoon and Moonscript files are not recognized.
Solution: Add filetype patterns. (Goc Dundar, closes vim/vim#10478)
https://github.com/vim/vim/commit/bf82df0dd48a26404b92a596498b6892c9572c53
|
| |\ \
| | | |
| | | | |
ci(mingw): only enable -municode for MinGW
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When enabling -municode for MSVC the following warning shows up:
"LINK : warning LNK4044: unrecognized option '/municode'; ignored".
This will ensure cleaner logs for the MSVC job.
|
| |/ /
| | |
| | |
| | |
| | | |
Problem: Access before start of text with a put command.
Solution: Check the length is more than zero.
https://github.com/vim/vim/commit/2a585c85013be22f59f184d49612074fd9b115d7
|
| | | |
|
| |\ \
| | | |
| | | | |
feat(api): add `win` and `buf` to `nvim_set_option_value`
|
| | |/
| | |
| | |
| | | |
Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Cannot select one character inside ().
Solution: Do not try to extend the area if it is empty. (closes vim/vim#10472,
closes vim/vim#6616)
https://github.com/vim/vim/commit/53737b5eeeab1f95964f78b055d6094fab559533
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Problem: Filetype test table is not properly sorted.
Solution: Sort by filetype. (Doug Kearns)
https://github.com/vim/vim/commit/aa9729b652aa93b547b5c7006f54a143d99ea149
|
| | |
| | |
| | |
| | |
| | | |
Problem: Fold may not be closeable after appending.
Solution: Set the fd_small flag to MAYBE. (Brandon Simmons, closes vim/vim#10471)
https://github.com/vim/vim/commit/e8c4a64bffbe628a46dc172d04cfc2db6e8dd8b6
|
| |\ \
| | | |
| | | | |
fix(ui): redraw winbar alongside statusline
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Remove `w_redr_winbar` and use `w_redr_status` to redraw the winbar to
ensure that winbar redraw is triggered alongside the statusline redraw.
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
comment (#18717)
Problem: When 'formatoptions' contains "/" wrongly wrapping a long trailing
comment.
Solution: Pass the OPENLINE_FORMAT flag.
https://github.com/vim/vim/commit/7e667788150be617aeac42b0d668618ac33ab9da
|
| | |
| | |
| | |
| | | |
The mouseclick item "%@" is now supported by 'statusline' and 'winbar'.
Previously it was only supported by 'tabline'.
|