| Commit message (Collapse) | Author | Age |
|
|
|
| |
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) ...
|
| | |
|
| |
| |
| |
| | |
ref 773bdd41ec19
|
| |
| |
| |
| |
| | |
Problem: Cannot test if a command causes a beep.
Solution: Add assert_beeps().
https://github.com/vim/vim/commit/b48e96f61c87a64e38e3ac50732c92a84a4833b8
|
| |
| |
| | |
Remove <C-R> special char after reading following chars
|
|/
|
|
|
|
|
|
|
|
|
| |
Problem: Using `:stopinsert` while in normal mode in a terminal buffer
prevents neovim from entering insert mode.
Solution: Move `stop_insert_mode = false` from terminal_check to
terminal_enter to be consistent with edit.c, as suggested by bfredl in
#9889.
Closes https://github.com/neovim/neovim/issues/9889.
|
|\
| |
| | |
windows: float config changes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Allow floating windows of width 1. #9846
- For a new floating window the size must be specified. Later on we
might try to calculate a reasonable size by buffer contents
- Remember the configured size of a window, just like its position.
- Make get_config and set_config more consistent. Handle relative='' properly in set_config.
get_config doesn't return keys that don't make sense for a non-floating window.
- Don't use width=0 for non-changed width, just omit the key.
|
| |
| |
| |
| | |
closes #9777
|
|\ \
| | |
| | | |
API: emit nvim_error_event on failed async request
|
| |/
| |
| |
| |
| | |
We already do this for _invalid_ async requests #9300.
Now we also do it for failed invocation of valid requests.
|
|/
|
| |
Fixes https://github.com/neovim/neovim/issues/9892
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vim-patch:8.0.0714: when a timer causes a command line redraw " goes missing
Problem: When a timer causes a command line redraw the " that is displayed
for CTRL-R goes missing.
Solution: Remember an extra character to display.
https://github.com/vim/vim/commit/a92522fbf3a49d06e08caf010f7d7b0f58d2e131
vim-patch:8.0.0720: unfinished mapping not displayed when running timer
Problem: Unfinished mapping not displayed when running timer.
Solution: Also use the extra_char while waiting for a mapping and digraph.
(closes vim/vim#1844)
https://github.com/vim/vim/commit/6a77d2667e982655f6adacee774ee7aa2581bd8a
close #9835
|
|
|
|
|
|
|
|
| |
Using `:wincmd j` and friends doesn't make much sense to a floating window. For
convenience though, any direction will simply change to the previous window.
Make sure the previous window is valid, not the current window, and not another
floating window. Change to the first window (which is never a floating window)
otherwise.
|
|
|
|
| |
To use Nvim as a scripting engine the side-effects of swapfiles and user
config should be avoided by default.
|
|\
| |
| | |
api/window: validate cursor in nvim_win_set_buf
|
| |
| |
| |
| |
| |
| | |
validate_cursor() is called regularly, but only for the current window.
When changing the buffer for a non-current window, we need to invoke it
in the context of that window.
|
|/
|
|
|
|
|
|
|
| |
Problem: Calling :stopinsert from RPC while in terminal-mode does not
go back to normal-mode.
Solution: Implement a check() handler for state_enter(), adapted from
insert_check().
Fix #7807
|
|
|
|
|
|
|
|
| |
CA_COMMAND_BUSY in nv_event() was carried over from Vim nv_cursorhold()
(ref: e5165bae1139). It prevents :startinsert from working during a RPC
call, so remove it.
Helped-by: glacambre <me@r4>
closes #7254
|
|
|
|
| |
The deps cache does not work for MSVC builds because the MINGW builds
ovewrite it. Cache saves 10+ minutes on the build.
|
|
|
|
|
|
|
|
|
|
|
|
| |
confusing (#9816)
Problem: Extending sign and foldcolumn below the text is confusing.
Solution: Let the sign and foldcolumn stop at the last text line, just like
the line number column. Also stop the command line window leader.
(Christian Brabandt)
https://github.com/vim/vim/commit/8ee4c01b8c79a29065c1af05e5d9c0721069765f
Closes https://github.com/neovim/neovim/issues/9613
|
|\
| |
| | |
Improve executable() and exepath() on windows
|
| | |
|
| | |
|
| | |
|
|/
|
| |
fixes #9775
|