diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-10-14 11:43:58 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-10-14 11:43:58 -0400 |
| commit | c4452903e37bce5bc80d2b582d8ba54fa1edf89b (patch) | |
| tree | 6c64925a21923f2618489221c6a9bce0bdae610a /runtime/lua/vim/_meta/vimfn.gen.lua | |
| parent | 613988b5aa6ef3cc465135838b163849e3b386cc (diff) | |
| download | rneovim-c4452903e37bce5bc80d2b582d8ba54fa1edf89b.tar.gz rneovim-c4452903e37bce5bc80d2b582d8ba54fa1edf89b.tar.bz2 rneovim-c4452903e37bce5bc80d2b582d8ba54fa1edf89b.zip | |
fix(api): nvim_buf_call() from expression for window in non-current tabpage #42352
Problem:
- nvim_buf_call() aborts (assert) when called from an expression evaluated
for a window in another tabpage ('foldexpr', 'statusline'), because
`curwin` is not in `curtab`.
- After it returns, `curwin` is wrong if it switched windows.
- `vim._with{win=…, keepcwd=true}` does not undo `:lcd` if `win` is in
another tabpage.
Solution:
- Allow `curwin` outside `curtab`, and restore if it was outside
`curtab` at `ctx_switch()`.
- Find the target window in any tabpage when restoring its dirs.
Diffstat (limited to 'runtime/lua/vim/_meta/vimfn.gen.lua')
0 files changed, 0 insertions, 0 deletions