aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/ui_select_spec.lua
Commit message (Collapse)AuthorAge
* fix(spell): avoid invalid window state after async spell select (#41346)not_compiled2026-08-17
| | | | | | | | | | | | Problem: When `z=` delegates to `vim.ui.select()`, the picker may change the current window before returning. `spell_suggest()` then continues to the cursor restoration branch with the new window and assigns `prev_cursor`, which belongs to the original window. This can leave Normal mode with an invalid cursor position and produce E315. Solution: Clean up the spell suggestion state and return immediately after handing control to `vim.ui.select()`.
* test(harness): migrate away from magic globalsJustin M. Keyes2026-07-21
| | | | | | | | | | | | | | | | | | | | | Problem: The magic globals `it`, `describe`, etc., are more trouble than they are worth. - Hooking into `after_each` requires `getfenv()` hacks. - They confuse luals/emmylua, because the top-level `.luarc.json` isn't merged with `test/.luarc.json` (apparently a luals limitation?) - They totally defeat discoverability because the user just has to "know" about the various magic symbols. So they harm DX, which means they serve no purpose at all. Solution: - Expose the test API from `testutil`, so tests can call `t.it()`, `t.describe()`, etc., in the conventional way. - Drop `getfenv()` hacks. - Drop the `setfenv()` injection in `load_chunk`. - Drop `test/_meta.lua`.
* fix(ui): z=, tselect with async vim.ui.selectJustin M. Keyes2026-04-30
| | | | | | | | | | | Problem: After 55ceb31, z= and tselect don't work if `vim.ui.select` is an async provider (especially terminal buffers). Solution: Drop the `vim.wait()` approach, use an async approach. fix #39506
* feat(ui): use vim.ui.select for :oldfiles, :recoverJustin M. Keyes2026-04-30
| | | | | | | | | | | | Problem: followup to 55ceb314ca96 #39478 `:oldfiles` and swapfile `:recover` do not delegate to `vim.ui.select`. Solution: - Delegate to `vim.ui.select`. - Fix a long-standing `recover_names` bug where `concat_fnames(dir_name, files[i], true)` produced malformed `<dir>//<dir>/<file>` paths (also fixes `swapfilelist()`).
* feat(ui): use vim.ui.select for :tselect, z= #39478Justin M. Keyes2026-04-28
Problem: `:tselect` and `z=` (spell suggest) have their own bespoke select menus. Solution: - Delegate to `vim.ui.select` instead. - Bonus: - `:tselect` gains mouse support. `print_tag_list` didn't suport mouseclick. This causes some minor regressions, which are not blockers: - `z=` no longer draws the list right-left if 'rightleft' is set. - TODO: can/should `vim.ui.select` / `vim.fn.inputlist()` handle that? - `:tselect` - No "column" headings (`# pri kind tag file`). - No highlighting: (HLF_T: tag name, HLF_D: file, HLF_CM: extra fields). - TODO: can `vim.ui.select()` support highlighted chunks (`[[text, hl_id], ...]`) ? fix https://github.com/neovim/neovim/issues/25814 fix https://github.com/neovim/neovim/issues/31987