Problem: Preferred cursor column not set in interfaces.
Solution: Set w_set_curswant when setting the cursor. (David Hotham,
closesvim/vim#3060)
53901442f3
When run via `test_alot.vim` `Test_tagfiles` gets run after `set tags&`,
and might therefore pick up "tags" from Neovim's source directory.
This patch makes it use Vim's default always (which is different from
Neovim's).
- Introduce TRY_WRAP() until we have an *architectural* solution.
- TODO: bfredl idea: prepare error-handling at "top level" (nv_event).
- nvim_paste(): Revert luaeval() hack (see parent commit).
- With TRY_WRAP() in nvim_put(), 'nomodifiable' error now correctly
"bubbles up".
- nvim_paste(): Marshal through luaeval() instead of nvim_execute_lua()
because the latter seems to hide some errors.
- Handle 'nomodifiable' in `nvim_put()` explicitly.
- Require explicit `false` from `vim.paste()` in order to "cancel",
otherwise assume true ("continue").
- 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).
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.
- Send `phase` parameter to the paste handler.
- Redraw at intervals and when paste terminates.
- Show "..." throbber during paste to indicate activity.
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).
- 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.
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, closesvim/vim#4731)
4119309d70
Problem: Cursorline not redrawn when putting a line above the cursor.
Solution: Redraw when the curor line is below a change. (closesvim/vim#4862)
c2b97643a8