aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * paste: handle vim.paste() failureJustin M. Keyes2019-08-27
| | | | | | | | | | | | | | | | - Show error only once per "paste stream". - Drain remaining chunks until phase=3. - Lay groundwork for "cancel". - Constrain semantics of "cancel" to mean "client must stop"; it is unrelated to presence of error(s).
| * paste: tickle cursorJustin M. Keyes2019-08-27
| | | | | | | | | | | | | | | | | | | | HACK: The cursor does not get repositioned after the paste completes. Scheduling a dummy event seems to fix it. Test case: 0. Revert this commit. 1. Paste some text in Normal-mode. 2. Notice the cursor is still in the cmdline area.
| * paste: implement redo (AKA dot-repeat)Justin M. Keyes2019-08-27
| | | | | | | | | | | | - Normal-mode redo idiom(?): prepend "i" and append ESC. - Insert-mode only needs AppendToRedobuffLit(). - Cmdline-mode: only paste the first line.
| * paste: insert text "before" cursor in Insert-modeJustin M. Keyes2019-08-27
| |
| * API: nvim_pasteJustin M. Keyes2019-08-27
| |
| * paste: workaround typeahead raceJustin M. Keyes2019-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Workaround this failure: [ ERROR ] test/functional/terminal/tui_spec.lua @ 192: TUI paste: exactly 64 bytes test/functional/helpers.lua:403: retry() attempts: 478 test/functional/terminal/tui_spec.lua:201: Expected objects to be the same. Passed in: (table: 0x47cd77e8) { *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz endz' } Expected: (table: 0x47cd7830) { *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz end' } This happens because `curwin->w_cursor.col` is sometimes decremented at the end of `do_put`... because the editor is in Normal-mode instead of the expected Insert-mode. Caused by "typeahead race" (#10826): there may be queued input in the main thread not yet processed, thus the editor mode (`State` global) will be "wrong" during paste. Example: input "i" followed immediately by a paste sequence: i<start-paste>...<stop-paste> ^ "i" does not get processed in time, so the editor is in Normal-mode instead of Insert-mode while handling the paste. Attempted workarounds: - vim.api.nvim_feedkeys('','x',false) in vim._paste() - exec_normal() in tinput_wait_enqueue() - LOOP_PROCESS_EVENTS(&main_loop,…,0) in tinput_wait_enqueue() ref #10826
| * paste: phases, dotsJustin M. Keyes2019-08-27
| | | | | | | | | | | | - Send `phase` parameter to the paste handler. - Redraw at intervals and when paste terminates. - Show "..." throbber during paste to indicate activity.
| * API: nvim_put: "follow" parameterJustin M. Keyes2019-08-27
| |
| * API: nvim_put: always PUT_CURSENDJustin M. Keyes2019-08-27
| | | | | | | | | | | | | | | | | | Fixes strange behavior where sometimes the buffer contents of a series of paste chunks (vim._paste) would be out-of-order. Now the tui_spec.lua screen-tests are much more reliable. But they still sometimes fail because of off-by-one cursor (caused by "typeahead race" resulting in wrong mode; fixed later in this patch-series).
| * test/tui_spec: connect to child sessionJustin M. Keyes2019-08-27
| |
| * API: nvim_put: Avoid "N more lines" messageJustin M. Keyes2019-08-27
| |
| * paste: edge-case: handle EOL at end-of-bufferJustin M. Keyes2019-08-27
| | | | | | | | This is "readfile()-style", see also ":help channel-lines".
| * paste: testJustin M. Keyes2019-08-27
| |
| * paste: use nvim_put()Justin M. Keyes2019-08-27
| |
| * API: nvim_put #6819Justin M. Keyes2019-08-27
| |
| * API: nvim_put #6819: try to fix Insert, VisualBjörn Linse2019-08-27
| |
| * API: nvim_put #6819Björn Linse2019-08-27
| |
| * paste: use chansend() in Terminal-modeJustin M. Keyes2019-08-27
| |
| * paste: fixup testsJustin M. Keyes2019-08-27
| |
| * paste: abort paste if handler does not return trueJustin M. Keyes2019-08-27
| |
| * TUI/paste: always flush on paste mode-changeJustin M. Keyes2019-08-27
| | | | | | | | | | | | Flush input before entering, not only when leaving, paste mode. Else there could be pending input which will erroneously be sent to the paste handler.
| * TUI/paste: define paste function as Lua builtinJustin M. Keyes2019-08-27
| | | | | | | | | | | | | | - Define in Lua so that it is compiled-in (available with `-u NONE`). TODO: Eventually we will want a 'pastefunc' option or some other way to override the default paste handler.
| * lua/stdlib: cleanupJustin M. Keyes2019-08-27
| |
| * log: log_key()Justin M. Keyes2019-08-27
| |
| * TUI/paste: push bytes directly (avoid libtermkey)Justin M. Keyes2019-08-27
| |
| * TUI/paste: collect data, invoke user callback #4448ZyX2019-08-27
| |
| * paste: WIP #4448Justin M. Keyes2019-08-27
| |
* | doc: man.vim #10817Doron Behar2019-08-28
| | | | | | ref #10808
* | vim-patch:8.1.1932: ml_get errors after append() #10866Marco Hinz2019-08-27
| | | | | | | | | | | | | | | | Problem: Ml_get errors after using append(). (Alex Genco) Solution: Do not update the cursor twice. https://github.com/vim/vim/commit/d20070274c47668560e02db184e1f8e456c3c326 fix #10847
* | clang/"null pointer dereference" #10864Ihor Antonov2019-08-27
|/
* build: third-party: enable CXX language earlier (#10862)Daniel Hahler2019-08-27
| | | | | | | | This is required for `CMAKE_CXX_COMPILER` to be set already, not only after including third-party/cmake/BuildGperf.cmake. Closes https://github.com/neovim/neovim/pull/10860. Ref: 31f879983f
* Merge #10858 from janlazo/vim-8.1.1930Justin M. Keyes2019-08-27
|\ | | | | vim-patch:8.1.{1930,1931}
| * vim-patch:8.1.1931: syntax test failsJan Edmund Lazo2019-08-26
| | | | | | | | | | | | Problem: Syntax test fails. Solution: Add new javascriptreact type to completions. https://github.com/vim/vim/commit/ea7a08a53ea0e8b4fe1592d9ae4d8f581fef46f8
| * vim-patch:8.1.1930: cannot recognize .jsx and .tsx filesJan Edmund Lazo2019-08-26
|/ | | | | | | Problem: Cannot recognize .jsx and .tsx files. Solution: Recognize them as javascriptreact and typescriptreact. (closes vim/vim#4830) https://github.com/vim/vim/commit/92852cee3fcff1dc6ce12387b234634e73267b22
* clang/"dereference of null pointer" #10856Ihor Antonov2019-08-26
| | | In edit.c insert_execute calls ins_compl_addfrommatch
* timer_spec: shorter timeout with "doesn't mess up the cmdline" (#10769)Daniel Hahler2019-08-26
| | | | | It was increased in dd21cd2a4 to avoid flakiness, but takes 1s then always. This specifies a shorter timeout again, uisng `load_adjust`.
* vim-patch:8.1.1923: some source files are not in a normal encoding (#10852)Daniel Hahler2019-08-26
| | | | | | Problem: Some source files are not in a normal encoding. Solution: Convert hangulin.c from euc-kr to utf-8 and digraph.c from latin1 to utf-8. (Daniel Hahler, closes vim/vim#4731) https://github.com/vim/vim/commit/4119309d70c7fc32637e77f2e84c185ad1768892
* runnvim.sh: lint (shellcheck) (#10851)Daniel Hahler2019-08-26
|
* Merge pull request #10850 from blueyed/option-aliasDaniel Hahler2019-08-26
|\ | | | | findoption_len: treat viminfo/viminfofile as aliases
| * vim-patch:8.1.1790: :mkvimrc is not testedJan Edmund Lazo2019-08-26
| | | | | | | | | | | | Problem: :mkvimrc is not tested. Solution: Add a test. https://github.com/vim/vim/commit/8750026a7f6b445c43adc990141a3fe92d680b62
| * findoption_len: treat viminfo/viminfofile as aliasesDaniel Hahler2019-08-26
| | | | | | | | Ref: https://github.com/neovim/neovim/pull/10672#issuecomment-524716824
* | third-party: use neovim/unibilium (#10677)Daniel Hahler2019-08-26
| | | | | | | | Ref: https://github.com/neovim/neovim/issues/10302 Fixes https://github.com/neovim/neovim/issues/9071.
* | vim-patch:8.1.1926: redraw cursorline after putting line above #10849Jan Edmund Lazo2019-08-26
|/ | | | | Problem: Cursorline not redrawn when putting a line above the cursor. Solution: Redraw when the curor line is below a change. (closes vim/vim#4862) https://github.com/vim/vim/commit/c2b97643a82bb9fbd202312dac4aa995f92e9e5b
* Merge pull request #10841 from janlazo/vim-7.4.1407Daniel Hahler2019-08-25
|\ | | | | vim-patch:7.4.1407,8.1.1111
| * vim-patch:8.1.1111: it is not easy to check for infinityJan Edmund Lazo2019-08-24
| | | | | | | | | | | | Problem: It is not easy to check for infinity. Solution: Add isinf(). (Ozaki Kiichi, closes vim/vim#3787) https://github.com/vim/vim/commit/fda1bff39f89775b20a2d88ef3903656d52f66ad
| * vim-patch:7.4.1407Jan Edmund Lazo2019-08-24
| | | | | | | | | | | | | | | | Problem: json_encode() does not handle NaN and inf properly. (David Barnett) Solution: For JSON turn them into "null". For JS use "NaN" and "Infinity". Add isnan(). https://github.com/vim/vim/commit/f1b6ac72293e658bb6e68c5cfd926c405b1b6f34
* | vim-patch:8.1.1913: not easy to compute the space on the command line (#10845)Daniel Hahler2019-08-25
| | | | | | | | | | Problem: Not easy to compute the space on the command line. Solution: Add v:echospace. (Daniel Hahler, closes vim/vim#4732) https://github.com/vim/vim/commit/37f4cbd46f5a6f2dd3a48d5fa4324dce37e4bd6c
* | Merge #10840 from janlazo/vim-8.1.1757Justin M. Keyes2019-08-25
|\ \ | | | | | | vim-patch:8.1.{1757,1924}
| * | vim-patch:8.1.1924: using empty string for current buffer is unexpectedJan Edmund Lazo2019-08-24
| | | | | | | | | | | | | | | | | | Problem: Using empty string for current buffer is unexpected. Solution: Make the argument optional for bufname() and bufnr(). https://github.com/vim/vim/commit/a8eee21e75324d199acb1663cb5009e03014a13a
| * | vim-patch:8.1.1757: text added with appendbufline() isn't displayedJan Edmund Lazo2019-08-24
| |/ | | | | | | | | | | Problem: Text added with appendbufline() to another buffer isn't displayed. Solution: Update topline. (partly by Christian Brabandt, closes vim/vim#4718) https://github.com/vim/vim/commit/298466629119eda501cfdf7824797f05045e67ca