aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
| * 'inccommand': Do not trigger during scripts, feedkeys().Justin M. Keyes2016-11-08
| |
| * 'inccommand': test: scripts/feedkeys() should not trigger previewKillTheMule2016-11-08
| |
| * 'inccommand': rename 'incsubstitute'Justin M. Keyes2016-11-08
| | | | | | | | | | | | | | | | | | 'inccommand' allows us to expand the feature to other commands, such as: :cdo :cfdo :global Also rename "IncSubstitute" highlight group to "Substitute".
| * 'inccommand': format line numbers as "|123| "Justin M. Keyes2016-11-08
| | | | | | | | This matches what Quickfix traditionally does.
| * 'inccommand': set buffer name to [Preview]Justin M. Keyes2016-11-08
| | | | | | | | | | | | [inc_sub] is less obvious for users. Also, in the future we may want to generalize the idea of a "preview buffer", or "incremental commands" besides :substitute.
| * 'inccommand': disable 'cursorline', 'spell' in previewJustin M. Keyes2016-11-08
| |
| * 'inccommand': preserve b:changedtickJustin M. Keyes2016-11-08
| |
| * 'inccommand': reworkJustin M. Keyes2016-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Eliminate/isolate static/global variables - Remove special-case parameter from buflist_new() - Remove special-case ECMD_RESERVED_BUFNR - To determine when u_undo_and_forget() should be done, check b_changedtick instead of a heuristic. - use mb_string2cells() instead of strlen() to measure the :sub patterns - call ml_close() before buf_clear_file(). Avoids leaks caught by ASan. Original patch by: Robin Elrharbi-Fleury (Robinhola) Audrey Rayé (Adrey06) Philémon Hullot (DesbyP) Aymeric Collange (aym7) Clément Guyomard (Clement0)
| * Tests for incsubstitution featureKillTheMule2016-10-30
| |
* | encoding: update testsBjörn Linse2016-11-05
| | | | | | | | | | | | | | Change shada reencoding tests to check for correct handling of UTF-8 and binary strings. Delete enc=latin1 json tests.
* | ex_global: Catch CTRL-C even if it is mapped.Justin M. Keyes2016-10-30
|/ | | | | Problem: If CTRL-C is mapped, it does not interrupt :global output. Solution: clear `mapped_ctrl_c` during :global.
* test: Fix shada/marks_spec.lua failureJames McCoy2016-10-28
| | | | | | The 'dump and read back mark " from a closed tab' test needs to actually create a second tab. Since it wasn't doing so, the 'q!' command caused nvim to exit and the subsequent 'qall' command fails.
* api: api_info()['version']Justin M. Keyes2016-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | API level is disconnected from NVIM version. The API metadata holds the current API level, and the lowest backwards-compatible level supported by this instance. Release 0.1.6 is the first release that reports the Nvim version and API level. metadata['version'] = { major: 0, minor: 1, patch: 6, api_level: 1, api_compatible: 0, api_prerelease: false, } The API level may remain unchanged across Nvim releases if the API has not changed. When changing the API, - set NVIM_API_PRERELEASE to true - increment NVIM_API_LEVEL (at most once per Nvim version) - adjust NVIM_API_LEVEL_COMPAT if backwards-compatibility was broken api_level_0.mpack was generated from Nvim 0.1.5 with: nvim --api-info
* api: Nvim version, API level #5386Rui Abreu Ferreira2016-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API level is disconnected from the NVIM version. The API metadata holds the current API level, and the lowest backwards-compatible level supported by this instance. Release 0.1.6 will be the first release reporting the Nvim version and API level. metadata['version'] = { major: 0, minor: 1, patch: 6, prerelease: true, api_level: 1, api_compatible: 0, } The API level may remain unchanged across Neovim releases if the API has not changed. When changing the API the CMake variable NVIM_API_PRERELEASE is set to true, and NVIM_API_CURRENT/NVIM_API_COMPATIBILITY are incremented accordingly. The functional tests check the API table against fixtures of past versions of Neovim. It compares all the functions in the old table with the new one, it does ignore some metadata attributes that do not alter the function signature or were removed since 0.1.5. Currently the only fixture is 0.mpack, generated from Neovim 0.1.5 with nvim --api-info.
* Merge #5500Justin M. Keyes2016-10-26
|\ | | | | | | Closes #5246
| * vim-patch:7.4.2212Grzegorz Milka2016-10-22
| | | | | | | | | | | | | | | | 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
* | modeline: Handle version number overflow. #5450Florian Larysch2016-10-26
| | | | | | | | | | | | | | | | | | | | | | 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.
* | CheckHealth: more checksJustin M. Keyes2016-10-25
| |
* | version: Allow has("nvim-x"), has("nvim-x.y")Justin M. Keyes2016-10-25
| |
* | version: has("nvim-1.2.3")Justin M. Keyes2016-10-25
| | | | | | | | Helped-by: Daniel Hahler <git@thequod.de>
* | test/api: Specify handling of VimL errors, v:errmsg.Justin M. Keyes2016-10-24
| | | | | | | | TODO: Also spec behavior of Press-Enter prompt for these API functions.
* | test: system(): Avoid indeterminism.Justin M. Keyes2016-10-23
| |
* | api: documentationJustin M. Keyes2016-10-23
|/ | | | Clarify behavior of v:errmsg and the Error object.
* vim-patch:8.0.0041Tommy Allen2016-10-22
| | | | | | 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.
* Merge pull request #4568 from bfredl/multirequestBjörn Linse2016-10-22
|\ | | | | atomic multi request for async remote plugins
| * api: call multiple methods atomically (useful in async contexts)Björn Linse2016-10-22
| | | | | | | | remove unused response_id parameter of handle_nvim_... helpers
* | os_nodetype: open fd with O_NONBLOCK (#5515)Justin M. Keyes2016-10-21
| | | | | | | | | | Closes #5267 Helped-by: oni-link <knil.ino@gmail.com>
* | test: :terminal should not interrupt Press-ENTERJustin M. Keyes2016-10-20
| | | | | | | | References #2748
* | Merge pull request #5441 from Shougo/vim-7.4.1588James McCoy2016-10-20
|\ \ | | | | | | | | | vim-patch:7.4.1588
| * | vim-patch:7.4.1588Shougo Matsushita2016-10-15
| | | | | | | | | | | | | | | | | | | | | Problem: Old style test for quickfix. Solution: Turn test 96 into a new style test. https://github.com/vim/vim/commit/1ff2b64b11e7d263c6853745d5e594bd8f94b91e
* | | Merge pull request #5440 from Shougo/vim-7.4.1565James McCoy2016-10-20
|\ \ \ | | | | | | | | vim-patch:7.4.1565
| * | | vim-patch:7.4.1565Shougo Matsushita2016-10-15
| |/ / | | | | | | | | | | | | | | | | | | 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
* | / tests: fix racyness in terminal/api_spec.luaBjörn Linse2016-10-19
| |/ |/| | | | | | | Previously, the nvim_input from the socket channels could be processed before the input from stdin in rare cases.
* | system('foo &', 'bar'): Show error, don't crash.Justin M. Keyes2016-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | test: system(): backgrounded shell commandJustin M. Keyes2016-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | test: execute_spec: Adjust screen assertion.Justin M. Keyes2016-10-15
| | | | | | | | | | | | 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.
* | Merge pull request #5424 from jamessan/win-tab-nrJames McCoy2016-10-15
|\ \ | | | | | | api: Support getting the number of a window/tabpage
| * | api: Support getting the number of a window/tabpageJames McCoy2016-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge pull request #5384 from bfredl/getchar_eventBjörn Linse2016-10-15
|\ \ \ | |_|/ |/| | allow event processing in getchar()
| * | events: allow event processing in getchar()Björn Linse2016-10-15
| | | | | | | | | | | | | | | | | | 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.
* | | test/tui_spec: Force LANG=CJustin M. Keyes2016-10-13
|/ / | | | | | | References #5455
* | Merge #5257 from jbradaric/vim-7.4.1893Justin M. Keyes2016-10-13
|\ \ | | | | | | vim-patch:7.4.{1893,1895}
| * | server_requests_spec: Expect correct window ID.Jurica Bradaric2016-10-07
| |/
* | main.c: "BufReadCmd term://": Skip existing terminal.Justin M. Keyes2016-10-12
| | | | | | | | | | | | | | | | | | 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.
* | terminal: Move re-edit detection to do_ecmd(). #5445Harm te Hennepe2016-10-12
| | | | | | | | Closes #4784
* | test/terminal: Cover race when :term shell process exits.Justin M. Keyes2016-10-12
|/ | | | | | References #5445 See https://github.com/neovim/neovim/pull/5445#issuecomment-252529766
* Merge pull request #5366 from NovaDev94/vim-7.4.1740James McCoy2016-10-04
|\ | | | | vim-patch:7.4.1740
| * vim-patch:7.4.1740Nova2016-09-22
| | | | | | | | | | | | | | | | 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
* | event/multiqueue.c: Rename "queue" to "multiqueue".Justin M. Keyes2016-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `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).
* | Correct logic for setting NormalState.toplevelJames McCoy2016-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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