aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
* lua/shared: share deepcopy() with test/*Justin M. Keyes2019-05-19
| | | | deepcopy() was duplicated in test/helpers.lua
* lua/shared: move table util funcs to vim.sharedJustin M. Keyes2019-05-18
| | | | | Use `tbl_` prefix for all table-util functions. Specify in the function docstring if it expects a list-like or map-like table.
* test: remove use of require('test.helpers')Justin M. Keyes2019-05-18
| | | | | | 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').
* test: share implementation of testdir/load.vimJustin M. Keyes2019-05-18
| | | | | | | Also, don't compute load factor unless load_adjust() was called, it slows down the test suite. ref #9292
* lua/stdlib: Introduce vim.sharedJustin M. Keyes2019-05-18
| | | | | | | | | | 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
* test: Extend {unit,functional}.helpers with global helpersJustin M. Keyes2019-05-18
| | | | | | | | 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')
* Merge pull request #9883 from bfredl/termredrawBjörn Linse2019-05-14
|\ | | | | make terminal state redraw like any other state
| * ui/terminal: make terminal state redraw like any other stateBjörn Linse2019-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | Merge pull request #9985 from bfredl/shenanigansBjörn Linse2019-05-13
|\ \ | | | | | | Fix aucmd_win issues: crashes and redrawing errors.
| * | autocmd: fixes and tests for autocmd window issuesBjörn Linse2019-05-13
| | | | | | | | | | | | | | | | | | - 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.
* | | API/nvim_set_keymap: remove mode-shortname aliasesJustin M. Keyes2019-05-12
| | | | | | | | | | | | | | | Reduce the API surface-area a bit. No need to have aliases for a mode. ref #9924
* | | API/nvim_set_keymap: minor cleanupJustin M. Keyes2019-05-12
|/ / | | | | | | ref #9924
* | API: nvim_set_keymap, nvim_del_keymap #9924Yilin Yang2019-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | test/channels_spec: cleanupJustin M. Keyes2019-05-12
| | | | | | | | | | - Remove stray print() - Use uname() instead of system('uname')
* | UI/ext_messages: learn more message kindsJustin M. Keyes2019-05-11
| | | | | | | | ref #6201
* | UI/nvim_ui_attach(): add `override` optionJustin M. Keyes2019-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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();
* | API: fix cursor position when lines are added #9961hashinclude2019-05-07
| | | | | | | | Restore code removed in #9674.
* | test: cleanupJustin M. Keyes2019-05-05
| | | | | | | | | | Avoid hyper-granularity. Don't need subdirectories for every little thing.
* | tests: adjust to latest Vim patchesMarco Hinz2019-05-05
| |
* | vim-patch:8.0.1782: no simple way to label quickfix entriesMarco Hinz2019-05-05
| | | | | | | | | | | | | | | | 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
* | terminal: swap priority of terminal, editor highlightsJustin M. Keyes2019-05-02
| | | | | | | | closes #9964
* | ex_getln: fix statusline redraw logic #9967Carlo Abelli2019-05-02
| | | | | | fixes #9908
* | clipboard: setreg("*") with clipboard=unnamed #9954Justin M. Keyes2019-04-28
| | | | | | | | Helped-by: Björn Linse <bjorn.linse@gmail.com> fix #5646
* | win/defaults: Use "…/nvim-data/site" in 'runtimepath'Justin M. Keyes2019-04-28
| | | | | | | | | | | | | | | | | | | | 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
* | test: clear(): remove `opts.headless` parameterJustin M. Keyes2019-04-27
| | | | | | | | | | | | | | Callers can instead specify `args_rm={'--headless'}`. TODO: should `nvim_argv` have "--headless" by default? Need to inspect some uses of spawn(nvim_argv) ...
* | test: clear(): `args_rm` parameterJustin M. Keyes2019-04-27
| |
* | test: 'shadafile' defaultJustin M. Keyes2019-04-27
| | | | | | | | ref 773bdd41ec19
* | vim-patch:8.0.1510: cannot assert beep #9938Jan Edmund Lazo2019-04-25
| | | | | | | | | | Problem: Cannot test if a command causes a beep. Solution: Add assert_beeps(). https://github.com/vim/vim/commit/b48e96f61c87a64e38e3ac50732c92a84a4833b8
* | Spurious quote mark in command line when typing <C-R> (#9934)Gabriel Cruz2019-04-24
| | | | | | Remove <C-R> special char after reading following chars
* | Reset stop_insert_mode in terminal_enter rather than terminal_checkglacambre2019-04-20
|/ | | | | | | | | | | 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.
* Merge pull request #9898 from bfredl/floatwidthBjörn Linse2019-04-14
|\ | | | | windows: float config changes
| * windows: float config changesBjörn Linse2019-04-14
| | | | | | | | | | | | | | | | | | | | - 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.
* | inccommand: Ignore :redraw during previewJustin M. Keyes2019-04-14
| | | | | | | | closes #9777
* | Merge pull request #9896 from justinmk/api-async-errorJustin M. Keyes2019-04-13
|\ \ | | | | | | API: emit nvim_error_event on failed async request
| * | API: emit nvim_error_event on failed async requestJustin M. Keyes2019-04-13
| |/ | | | | | | | | We already do this for _invalid_ async requests #9300. Now we also do it for failed invocation of valid requests.
* / options: properly reset directories on 'autochdir' (#9894)Marco Hinz2019-04-13
|/ | | Fixes https://github.com/neovim/neovim/issues/9892
* vim-patch:8.0.0714: cmdline redraw during timer #9835Gabriel Cruz2019-04-12
| | | | | | | | | | | | | | | | 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
* float: always change to valid windows (#9878)Marco Hinz2019-04-11
| | | | | | | | 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.
* startup: -es/-Es (silent/batch mode): skip swapfile #8540Justin M. Keyes2019-04-10
| | | | To use Nvim as a scripting engine the side-effects of swapfiles and user config should be avoided by default.
* Merge pull request #9866 from bfredl/setbufcursorBjörn Linse2019-04-08
|\ | | | | api/window: validate cursor in nvim_win_set_buf
| * api/window: validate cursor in nvim_win_set_bufBjörn Linse2019-04-08
| | | | | | | | | | | | 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.
* | :stopinsert should leave terminal-mode #9856glacambre2019-04-08
|/ | | | | | | | | 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
* event-loop: do not set CA_COMMAND_BUSY #9853Justin M. Keyes2019-04-08
| | | | | | | | 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
* CI/AppVeyor: per-compiler deps cache #9852Justin M. Keyes2019-04-07
| | | | The deps cache does not work for MSVC builds because the MINGW builds ovewrite it. Cache saves 10+ minutes on the build.
* vim-patch:8.1.1072: extending sign and foldcolumn below the text is ↵Marco Hinz2019-04-03
| | | | | | | | | | | | 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
* Merge #9516 from erw7/improve-executable-on-windowsJustin M. Keyes2019-04-02
|\ | | | | Improve executable() and exepath() on windows
| * test: "$PATHEXT=::"Justin M. Keyes2019-04-02
| |
| * test/win: Remove unnecessary set shellerw72019-04-01
| |
| * test/win: executable(), exepath() #9516erw72019-04-01
| |
* | jumplist: avoid extra tail entry #9805Abdelhakeem Osama2019-04-02
|/ | | fixes #9775