aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin/zip_spec.lua
Commit message (Collapse)AuthorAge
* fix(zip): missed "password:" prompt if output trails it #41364Justin M. Keyes2026-08-18
| | | | | | | | | | | | | | Problem: Flaky test: RUN T1158 nvim.zip reports an incorrect archive password: 11092.84 ms FAIL The prompt is detected only if the pty output *ends* with "password: ", but a read may return the prompt plus following bytes. Solution: - Match anywhere in the output since the last password was sent. The buffer is cleared before each send, so won't match stale text. - Assert on the reported message, so a failure shows what was reported.
* test: unreliable "nvim.zip … incorrect password" #41159Justin M. Keyes2026-08-04
| | | | | | | | | | | | | | | Problem: FAILED …/plugin/zip_spec.lua @ 442: nvim.zip reports an incorrect archive password Expected values to be equal. Expected: true Actual: false stack traceback: …/plugin/zip_spec.lua:453: in function <…/plugin/zip_spec.lua:442> Solution: The message is scheduled, so poll for it.
* fix(zip): only refuse a cwd unzip on WindowsBarrett Ruth2026-08-03
|
* refactor(zip)!: address entries with zip:// pathsBarrett Ruth2026-08-03
| | | | | | | | | | | | | | | | | | Problem: `zipfile://{archive}::{entry}` is ambiguous: `::` is legal in both an archive path and an entry path, so the separator cannot be identified. Splitting at the last `::` reads archives correctly but breaks entries that contain it, and the plugin then emits buffer names it cannot read back. Solution: Address entries as `zip://{archive}/{entry}`, joining the two paths. Resolve the split by walking components: the first one that is a regular file is the archive, because a regular file cannot have children on disk. Entry paths may then contain any character, and no escaping is needed. zipPlugin.vim keeps its own scheme, so the Java ftplugin emits whichever form matches the active plugin until the legacy package is removed.
* feat(zip): checkhealth and encrypted entriesBarrett Ruth2026-08-03
| | | | | | | | | | | | | | Problem: There is no health check. Encrypted entries cannot be read at all, since Info-ZIP takes a password only from a terminal and `-P` would expose it in the process arguments. Solution: Add `:checkhealth nvim.zip`, reporting the backend and which implementation is handling archives. Prompt for the password on a pty, extracting to a file so the entry's bytes stay off the terminal. Report Info-ZIP's exit code rather than inferring a cause, so an archive using AES is not reported as a failed decryption.
* fix(test): group zip tests and drop repeated setupBarrett Ruth2026-07-29
|
* test(zip): cover difficult member namesBarrett Ruth2026-07-29
|
* feat(zip): extract archive membersBarrett Ruth2026-07-29
|
* fix(zip): list a valid empty archive as emptyBarrett Ruth2026-07-29
|
* fix(zip): keep a leading dash from becoming a backend optionBarrett Ruth2026-07-29
|
* refactor(zip)!: builtin zip.lua plugin #40846Barrett Ruth2026-07-29
Problem: The bundled `zip` plugin is implemented in Vimscript, making it harder to maintain and build on with Nvim's Lua runtime infrastructure. Solution: Add an opt-out `zip.lua` browser backed by `nvim.dir`, and disable the legacy Vimscript implementation by moving it to `pack/dist/opt/zip/`. Load it with `:packadd zip`.