| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Mark " is not set when closing a window in another tab. (Guraga)
Solution: Check all tabs for the window to be valid. (based on patch by
Hirohito Higashi, closes vim/vim#974)
https://github.com/vim/vim/commit/e59215c7dcae17b03daf39517560cfaa03314f5a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closes #5449
A file containing the string "vim" followed by a very large number in a modeline
location will trigger an overflow in getdigits() which is called by
chk_modeline() when trying to parse the version number.
Add getdigits_safe(), which does not assert overflows, but reports them to the
caller.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Helped-by: Daniel Hahler <git@thequod.de>
|
| |
| |
| |
| | |
TODO: Also spec behavior of Press-Enter prompt for these API functions.
|
| | |
|
|/
|
|
| |
Clarify behavior of v:errmsg and the Error object.
|
|
|
|
|
|
| |
Problem: When using Insert mode completion but not actually inserting
anything an undo item is still created. (Tommy Allen)
Solution: Do not call stop_arrow() when not inserting anything.
|
|\
| |
| | |
atomic multi request for async remote plugins
|
| |
| |
| |
| | |
remove unused response_id parameter of handle_nvim_... helpers
|
| |
| |
| |
| |
| | |
Closes #5267
Helped-by: oni-link <knil.ino@gmail.com>
|
| |
| |
| |
| | |
References #2748
|
|\ \
| | |
| | |
| | | |
vim-patch:7.4.1588
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Old style test for quickfix.
Solution: Turn test 96 into a new style test.
https://github.com/vim/vim/commit/1ff2b64b11e7d263c6853745d5e594bd8f94b91e
|
|\ \ \
| | | |
| | | | |
vim-patch:7.4.1565
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Crash when assert_equal() runs into a NULL string.
Solution: Check for NULL. (Dominique) Add a test.
https://github.com/vim/vim/commit/f1551964448607f8222de2d8f0992ea43eb2fe67
|
| |/
|/|
| |
| |
| | |
Previously, the nvim_input from the socket channels could be processed
before the input from stdin in rare cases.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closes #3529
Closes #5241
In Vim,
:echo system('cat - &', 'foo')
works because for both system() and :! Vim writes input to a temp file and uses
shell syntax to redirect the file to the backgrounded `cat` (get_cmd_output()
.. make_filter_cmd()).
In Nvim,
:echo system('cat - &', 'foo')
fails because we write the input directly via pipes (shell.c:do_os_system()),
but (per POSIX[1]) backgrounded process input stream is redirected from
/dev/null (unless overridden by shell redirection; supported only by some shells
[2]), so our writes are ignored, the process exits quickly, and if we are
writing data larger than the buffer size we'll see EPIPE.
This still works:
:%w !tee > foo1358.txt &
but this does not:
:%w !tee foo1358.txt &
though it *should* (why doesn't it?) because we still do the temp file dance
in do_bang() .. do_filter().
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
[2] http://unix.stackexchange.com/a/71218
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These tests are essentially affirming a regression vs Vim. In Vim,
:echo system('cat - &', 'foo')
returns "foo", because Vim internally wraps the command with shell-specific
syntax to redirect the streams from /dev/null[1].
That can't work in Nvim because we use pipes directly (instead of temp files)
and don't wrap the command with shell-specific redirection syntax.
References #3529
References #5241
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
|
| |
| |
| |
| |
| |
| | |
The previous form was passing because it happens immediately before this form;
but on a very fast(?) server the screen check might miss that form. It's also
not really want we want to assert anyways.
|
|\ \
| | |
| | | |
api: Support getting the number of a window/tabpage
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In order to provide better compatibility with the classic bindings, the
API needs to provide the ability to query the number (really index) of
the window/tabpage.
This is needed for neovim/python-client#87, as discussed in
neovim/neovim#1898.
Signed-off-by: James McCoy <jamessan@jamessan.com>
|
|\ \ \
| |_|/
|/| | |
allow event processing in getchar()
|
| | |
| | |
| | |
| | |
| | |
| | | |
this is consistent with vim, and is necessary for plugins that implement
their own input modes using "getchar()" and still want to do async
event processing.
|
|/ /
| |
| |
| | |
References #5455
|
|\ \
| | |
| | | |
vim-patch:7.4.{1893,1895}
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check `exists('b:term_title')` to avoid the BufReadCmd for already-initialized
:terminal buffers.
Move the test for `:argadd`.
Add a test for `:edit<CR>`.
Tweak comments and code style.
|
| |
| |
| |
| | |
Closes #4784
|
|/
|
|
|
|
| |
References #5445
See https://github.com/neovim/neovim/pull/5445#issuecomment-252529766
|
|\
| |
| | |
vim-patch:7.4.1740
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: syn-cchar defined with matchadd() does not appear if there are no
other syntax definitions which matches buffer text.
Solution: Check for startcol. (Ozaki Kiichi, haya14busa, closes vim/vim#757)
https://github.com/vim/vim/commit/4d585022023b96f6507e8cae5ed8fc8d926f5140
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`lib/queue.h` implements a basic queue. `event/queue.c` implements
a specialized data structure on top of lib/queue.h; it is not a "normal"
queue.
Rename the specialized multi-level queue implemented in event/queue.c to
"multiqueue", to avoid confusion when reading the code.
Before this change one can eventually notice that "macros (uppercase
symbols) are for the normal queue, lowercase operations are for the
multi-level queue", but that is unnecessary friction for new developers
(or existing developers just visiting this part of the codebase).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In Vim's main_loop function, the main loop is
while (!cmdwin
#ifdef FEAT_CMDWIN
|| cmdwin_result == 0
#endif
)
{
...
#ifdef FEAT_EVAL
/*
* May perform garbage collection when waiting for a character, but
* only at the very toplevel. Otherwise we may be using a List or
* Dict internally somewhere.
* "may_garbage_collect" is reset in vgetc() which is invoked through
* do_exmode() and normal_cmd().
*/
may_garbage_collect = (!cmdwin && !noexmode);
#endif
/*
* If we're invoked as ex, do a round of ex commands.
* Otherwise, get and execute a normal mode command.
*/
if (exmode_active)
{
if (noexmode) /* End of ":global/path/visual" commands */
return;
do_exmode(exmode_active == EXMODE_VIM);
}
else
normal_cmd(&oa, TRUE);
}
cmdwin_result is set to 0 before calling main_loop to handle the cmdwin
window and gets changed when the user causes a command to execute
(either through pressing <CR> or <C-c>). This means that when the
cmdwin isn't active OR the user is still editing their command,
main_loop runs and main_loop calls normal_cmd with toplevel true as long
as exmode isn't active.
When the normal mode state was extracted in dae006a9, the conditions for
toplevel and may_garbage_collect were combined. Since toplevel was set
to always ignore cmdwin, the v:count(1) variables were no longer being
updated when a command was prefixed with a count in the cmdwin.
Closes #5404
|
|/
|
|
|
| |
This is an (unsuccessful) attempt to cover #4163.
It covers other behavior, so it's worth keeping.
|
|
|
|
|
| |
win32 handles dot-prefixed files just fine; Nvim-on-Windows does not
perpetuate the Vim-on-Windows behavior of avoiding dot-prefixed files.
|
|
|
|
|
|
|
|
|
| |
os.remove() fails on empty directories in non-POSIX systems.
https://github.com/keplerproject/luafilesystem/issues/4
lfs.rmdir() "usually" works, so use it instead.
Closes #5236
|
|
|
|
|
| |
Attempt to avoid "Permission denied" on Windows potentially caused by open
filepath handle in sibling process.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
old name: new name:
--------------------------------------------------
nvim_name_to_color nvim_get_color_by_name
nvim_get_current_buffer nvim_get_current_buf
nvim_get_current_window nvim_get_current_win
nvim_get_buffers nvim_list_bufs
nvim_get_tabpages nvim_list_tabpages
nvim_get_windows nvim_list_wins
nvim_set_current_buffer nvim_set_current_buf
nvim_set_current_window nvim_set_current_win
nvim_change_directory nvim_set_current_dir
nvim_tabpage_get_window nvim_tabpage_get_win
nvim_tabpage_get_windows nvim_tabpage_list_wins
nvim_win_get_buffer nvim_win_get_buf
nvim_report_error nvim_err_writeln
Helped-by: Björn Linse <bjorn.linse@gmail.com>
Helped-by: ZyX <kp-pav@yandex.ru>
Helped-by: James McCoy <jamessan@jamessan.com>
|
|
|
|
|
| |
- Behavior changed in 7.4.1547
- Also removed N/A specs: nvim does not support ":hi term=..."
|
|
|
|
| |
Refresh colors if changing Normal group
|
| |
|
| |
|
|
|
|
|
|
| |
When running the tests in a contained environment, the lingering
terminal processes prevent the unmounting of the filesystems in the
contained environment.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
These tests fail on master, so it's not a regression. Changes in #4874
(parent commit) seem to work (and pass most CI), so skipping these tests
is better than blocking the changes.
|
| |
| |
| |
| |
| | |
Closes #4663
References #3310
|
|/
|
| |
Delete the CWD using nvim instead of the external lua/test runner process.
|