aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/nvim/zip.lua
Commit message (Collapse)AuthorAge
* fix(lua): enable param-type-mismatch diagnosticLewis Russell2026-09-28
| | | | | | | | | Problem: Argument type mismatches are excluded from EmmyLua checks. Solution: Correct runtime annotations and calls, document local checker workarounds, and enable the diagnostic. AI-assisted
* fix(zip): detect encryption without letting unzip prompt #41422Barrett Ruth2026-08-22
|
* fix(zip): lost password if sent before unzip disables echo #41377Barrett Ruth2026-08-19
|
* 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.
* fix(zip): preserve alternate file #41178Barrett Ruth2026-08-05
|
* 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.
* fix(zip): do not run unzip from the current directoryBarrett Ruth2026-08-03
| | | | | | | | | | Problem: Windows searches the current directory before $PATH, so opening an archive in a directory that also contains an `unzip` executable runs that one. The legacy plugin refused this; the port dropped the check. Solution: Refuse to run `unzip` when it resolves to the current directory.
* 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: reviewBarrett 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`.