| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Note: this will *still* crash when using API in cases similar to the one
described in first commit. Just it needs different code to reproduce.
|
|
|
| |
Closes #4946
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to re-order marks according to the :move command, do_move()
uses mark_adjust() in a non-standard manner. The non-standard action is
that it moves some marks *past* other marks. This doesn't matter for
marks, but mark_adjust() calls foldMarkAdjust() which simply changes
fold starts and lengths and doesn't have enough information to know that
other folds have to be checked and reordered.
The array of folds for each window are assumed to be in order of
increasing line number, and if this gets broken some folds can get
"lost".
There has been a previous patch to avoid this problem by deleting and
recalculating all folds in the window, but this comes at the cost of
closing all folds when executing :move, and doesn't cover the case of
manual folds.
This patch adds a new function foldMoveRange() specifically for the
:move command that handles reordering folds as well as simply moving
them. Additionally, we allow calling mark_adjust_nofold() that does the
same as mark_adjust() but doesn't affect any fold array.
Calling mark_adjust_nofold() should be done in the same manner as
calling mark_adjust(), but according changes to the fold arrays must be
done seperately by the calling function.
vim-patch:8.0.0457
vim-patch:8.0.0459
vim-patch:8.0.0461
vim-patch:8.0.0465
|
|/
|
|
|
|
|
| |
Problem: Tab commands do not handle count correctly. (Ken Hamada)
Solution: Add ADDR_TABS_RELATIVE. (Hirohito Higashi)
https://github.com/vim/vim/commit/2f72c70657129c16e6b0e413752a775c804f02f8
|
|
|
| |
Fixes #5697
|
|
|
|
| |
Instead of helpers.clear() between each test, use execute('enew!')
and ensure the state that matters is reset between each test.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tokenize p_sh if used as default in ex_terminal(). Previously p_sh was
used as the first arg in a list when calling termopen(), this would try
to call an untokenized version of shell, meaning if you had an argument
in 'shell':
set shell=/bin/bash\ --login
the command would fail.
Helped-by: oni-link <knil.ino@gmail.com>
Closes #3999
|
|\
| |
| | |
defaults: 'ruler', 'showcmd', 'belloff=all'
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Vim "unix default" of 'noshowcmd' is serving few users. And it's
inconsistent.
- 'ruler' and 'belloff=all' improve the out-of-the-box experience.
- Continue to use 'noshowcmd' and 'noruler' by default in the functional
tests to keep them fast.
TODO: Add a "disable slow stuff" command or mapping to address the
use-case of a very slow terminal connection.
|
|/
|
|
|
| |
Before this change, new processes started with libuv prevented SIGHUP
from reaching pty processes (by keeping the ptmx file descriptor open).
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Various tiny issues.
Solution: Update comments, white space, etc.
https://github.com/vim/vim/commit/89eaa4185efacab253b23a182c1c8a7bbf1096c9
|
| | |
|
| |
| |
| |
| | |
Closes #6054
|
| |
| |
| |
| |
| |
| | |
So getcwd() works correctly during DirChanged event.
Closes #6260
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
Dispense with the FuncUndefined/CmdUndefined quasi-optimization.
If there are no rplugins, plugin/rplugin.vim takes less than 1ms.
Closes #5821
Closes #6250
Helped-by: Qiming zhao <chemzqm@gmail.com>
|
|
|
| |
Regression test coverage for #6070.
|
|\
| |
| | |
vim-patch:7.4.2051,7.4.2068,7.4.2097
|
| |
| |
| |
| |
| |
| |
| | |
Problem: No proper testing of trunc_string().
Solution: Add a unittest for message.c.
https://github.com/vim/vim/commit/502ae4ba63561c98ac69af26cd9883bfd18d225f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the buffer that nvim_buf_set_lines() is changing is not in any vim
window, fix_cursor() leads to calling ml_get_buf() with an invalid line
number. The condition that fix_cursor() was called on was (buf ==
curbuf), but this is always true because of the call to
switch_to_win_for_buf() earlier in the function.
Instead this should be predicated on (save_curbuf.br_buf == NULL)
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
After using 'termopen("echo") the current buffer content is changed,
but the cursor position of the current window is not updated.
Because of this, a call to 'mb_adjust_cursor()' can lead to a
heap-buffer-overflow.
Fix this by resetting the cursor for the current window.
Fixes #3161
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a problem when filtering manually folded lines
When foldMarkAdjustRecurse() is called to adjust folds that start inside
the range of lines that are being moved and end outside that range, it
calculates `amount_after` for its recursive call incorrectly.
The calculation assumes that folds inside the changed range are being
deleted, but this is not always the case.
This means nested folds that start after the changed range of lines are
shifted an incorrect amount.
We fix this by calculating the `amount_after` differently if the folds
inside the changed range are not being deleted.
|
|
|
|
|
| |
We pull luacheck HEAD, so this is a "catch up" commit to fix
newly-discovered errors.
|
|
|
|
|
|
| |
Let the terminal dictate the normal-mode cursor position. This will be
disorienting sometimes, but it is closer to what users expect vs always
going to the last line.
|
|\
| |
| | |
vim-patch:42ebd06,7.4.2098,6f1d9a0,7.4.2095
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Man test fails when run with the GUI.
Solution: Adjust for different behavior of GUI. Add assert_inrange().
https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Only changes related to assert_inrange() were included, since we have a
distinct man plugin.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Default Vim behavior of i_CTRL-<Space> is to insert the last-inserted
text and exit insert mode. :help i_CTRL-@
Before this commit that did not happen because insert_handle_key()
checks for NUL instead of checking for ' ' with a CTRL `mod_mask`.
I'm leaving the check for NUL despite the fact that at the moment that
key is never seen when using the terminal UI (not for C-Space, nor C-@).
This is because I assume it's still allowed for other front-ends to pass
NUL, but at the moment the terminal UI isn't.
|
|
|
|
|
|
|
|
| |
Problem: Cannot get all information about a quickfix list.
Solution: Add an optional argument to get/set loc/qf list(). (Yegappan
Lakshmanan)
https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
|
|\
| |
| | |
Better b:changedtick support
|
| | |
|
| |
| |
| | |
Fixes #6147
|
| | |
|
| |
| |
| | |
Port of vim-patch:8.0.0343
|
| |
| |
| | |
Port of vim-patch:8.0.0345
|
| | |
|
| | |
|
| | |
|
| |
| |
| | |
If I am not mistaking, this commit should not change any functionality.
|