| Commit message (Collapse) | Author | Age |
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
closes #6035
closes #9250
|
| |
| |
| |
| |
| |
| |
| | |
Otherwise vim will think that ml_append() needs to "enter" the buffer,
which emits unexpected autocommands.
ref https://github.com/vim-airline/vim-airline/issues/1930
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
* Fix wildmode=list and display+=msgsep interaction
* Add test to check ext_messages behaviour is unchanged
|
| |
|
|
|
|
| |
Accidentally removed in 34f9e72af9c9.
ref #6201
|
|\
| |
| | |
vim-patch:8.1.0614,8.1.0632,8.1.0644,8.1.0658,8.1.0660,8.1.0669,8.1.0673,8.1.0679,8.1.0697,8.1.0701,8.1.0702,8.1.0709,8.1.0717,8.1.0750,8.1.0767,8.1.0772,8.1.0039
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Sign message not translated and inconsistent spacing.
Solution: Add _() for translation. Add a space. (Ken Takata) Also use
MSG_BUF_LEN instead of BUFSIZ.
https://github.com/vim/vim/commit/d730c8e2974609034016ca66db09d2ef78784343
|
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Placing signs can be complicated.
Solution: Add functions for defining and placing signs. Introduce a group
name to avoid different plugins using the same signs. (Yegappan
Lakshmanan, closes vim/vim#3652)
https://github.com/vim/vim/commit/162b71479bd4dcdb3a2ef9198a1444f6f99e6843
|
|/
|
| |
fixes #8490
|
|\
| |
| | |
messages: use proper multiline errors for rpcrequest and API wrappers
|
| | |
|
|/
|
|
|
|
| |
Problem: Expanding a file name "~" results in $HOME. (Aidan Shafran)
Solution: Change "~" to "./~" before expanding. (closes vim/vim#3072)
https://github.com/vim/vim/commit/00136dc321586800986e8f743c2f108f5eecbf92
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately we cannot indiscriminately replace xfree() with
XFREE_CLEAR(), because comparing pointers after freeing them is a common
pattern. Example in `tv_list_remove_items()`:
xfree(li);
if (li == item2) {
break;
}
Instead we can do it selectively/explicitly.
ref #1375
|
| |
|
|\
| |
| |
| | |
ref #8288
|
| | |
|
| | |
|
| |
| |
| |
| | |
deepcopy() was duplicated in test/helpers.lua
|
| |
| |
| |
| |
| | |
Use `tbl_` prefix for all table-util functions. Specify in the function
docstring if it expects a list-like or map-like table.
|
| |
| |
| |
| |
| |
| | |
The test.functional.helpers and test.unit.helpers modules now include
all of the public functions from test.helpers, so there is no need to
separately require('test.helpers').
|
| |
| |
| |
| |
| |
| |
| | |
Also, don't compute load factor unless load_adjust() was called, it
slows down the test suite.
ref #9292
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is where "pure functions" can live, which can be shared by Nvim and
test logic which may not have a running Nvim instance available.
If in the future we use Nvim itself as the Lua engine for tests, then
these functions could be moved directly onto the `vim` Lua module.
closes #6580
|
| |
| |
| |
| |
| |
| |
| |
| | |
Automatically include all "global helper" util functions in the
unit.helpers and functional.helpers and modules. So tests don't need to
expicitly do:
local global_helpers = require('test.helpers')
|
|\ \
| | |
| | | |
make terminal state redraw like any other state
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, ordinary redraws were missing from terminal mode. Instead,
there was an async callback that invoked update_screen() on terminal
data regardless of mode (as if :redraw! was invoked by a timer).
This created some issues:
- async changes to an unrelated ordinary buffer were not always redrawn in
terminal mode
- screen cursor position was not properly updated in terminal mode (partial
fix, will be properly fixed in a follow up PR)
- ad-hoc logic was needed for interaction with special states such as
inccommand or horizontal wildmenu.
Instead redraw terminal mode just like any other state. This disables forced
redraws in cmdline mode, which were inconisent which async changes to
normal buffers (which are not redrawn in cmdline mode).
|
|\ \ \
| | | |
| | | | |
Fix aucmd_win issues: crashes and redrawing errors.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- redraw! in an invisible buffer rendered the screen unusable.
- storing the autocmd window handle and using it in API function could lead
to crashes. Unregister the handle when the window is not active.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Reduce the API surface-area a bit. No need to have aliases for a mode.
ref #9924
|
|/ / /
| | |
| | |
| | | |
ref #9924
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
closes #9136
- Treat empty {rhs} like <Nop>
- getchar.c: Pull "repl. MapArg termcodes" into func
The "preprocessing code" surrounding the replace_termcodes calls needs
to invoke replace_termcodes, and also check if RHS is equal to "<Nop>".
To reduce code duplication, factor this out into a helper function.
Also add an rhs_is_noop flag to MapArguments; buf_do_map_explicit
expects an empty {rhs} string for "<Nop>", but also needs to distinguish
that from something like ":map lhs<cr>" where no {rhs} was provided.
- getchar.c: Use allocated buffer for rhs in MapArgs
Since the MAXMAPLEN limit does not apply to the RHS of a mapping (or
else an RHS that calls a really long autoload function from a plugin
would be incorrectly rejected as being too long), use an allocated
buffer for RHS rather than a static buffer of length MAXMAPLEN + 1.
- Mappings LHS and RHS can contain literal space characters, newlines, etc.
- getchar.c: replace_termcodes in str_to_mapargs
It makes sense to do this; str_to_mapargs is, intuitively, supposed to
take a "raw" command string and parse it into a totally "do_map-ready"
struct.
- api/vim.c: Update lhs, rhs len after replace_termcodes
Fixes a bug in which replace_termcodes changes the length of lhs or rhs,
but the later search through the mappings/abbreviations hashtables
still uses the old length value. This would cause the search to fail
erroneously and throw 'E31: No such mapping' errors or 'E24: No such
abbreviation' errors.
- getchar: Create new map_arguments struct
So that a string of map arguments can be parsed into a more useful, more
portable data structure.
- getchar.c: Add buf_do_map function
Exactly the same as the old do_map, but replace the hardcoded references
to the global `buf_T* curbuf` with a function parameter so that we can
invoke it from nvim_buf_set_keymap.
- Remove gettext calls in do_map error handling
|
| | |
| | |
| | |
| | |
| | | |
- Remove stray print()
- Use uname() instead of system('uname')
|
| | |
| | |
| | |
| | | |
ref #6201
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before now, Nvim always degrades UI capabilities to the lowest-common
denominator. For example, if any connected UI has `ext_messages=false`
then `ext_messages=true` requested by any other connected UI is ignored.
Now `nvim_ui_attach()` supports `override=true`, which flips the
behavior: if any UI requests an `ext_*` UI capability then the
capability is enabled (and the legacy behavior is disabled).
Legacy UIs will be broken while a `override=true` UI is connected, but
it's useful for debugging: you can type into the TUI and observe the UI
events from another connected (UI) client. And the legacy UI will
"recover" after the `override=true` UI disconnects.
Example using pynvim:
>>> n.ui_attach(2048, 2048, rgb=True, override=True, ext_multigrid=True, ext_messages=True, ext_popupmenu=True)
>>> while True: n.next_message();
|
| | |
| | |
| | |
| | | |
Restore code removed in #9674.
|
| | |
| | |
| | |
| | |
| | | |
Avoid hyper-granularity. Don't need subdirectories for every little
thing.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: No simple way to label quickfix entries.
Solution: Add the "module" item, to be used instead of the file name for
display purposes. (Martin Szamotulski)
https://github.com/vim/vim/commit/d76ce852668635d81778cedacc2d3f021ed4e475
|
| | |
| | |
| | |
| | | |
closes #9964
|
| | |
| | |
| | | |
fixes #9908
|
| | |
| | |
| | |
| | | |
Helped-by: Björn Linse <bjorn.linse@gmail.com>
fix #5646
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
On Windows we store non-config data in "$XDG_DATA_HOME/nvim-data". But
the "…/site" items in 'runtimepath' did not correctly point to that
location, they used "…/nvim/site".
Fix the init logic to use "…/nvim-data/site".
closes #9910
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Callers can instead specify `args_rm={'--headless'}`.
TODO: should `nvim_argv` have "--headless" by default? Need to inspect
some uses of spawn(nvim_argv) ...
|
| | | |
|