Files
zellij/default-plugins/strider
divensanddivens 3fa7744906 Add windows support in strider (#4854)
* Add Windows path support to strider plugin

Strider is a WASM plugin where std::path::PathBuf uses Unix semantics,
so Windows backslash paths break parent(), join(), strip_prefix(), etc.

Fix by normalizing all incoming paths to forward slashes at plugin
boundaries and converting back to native backslashes for display. A new
platform.rs module detects the host OS at runtime from the initial_cwd
format and centralizes all platform-aware logic.

Also fix scan_host_folder on the server side: canonicalize
plugin_host_folder so the starts_with security check works on Windows,
where canonicalize() adds the \?\ prefix.

* Add virtual root view for drive and WSL navigation in strider

On Windows, navigating up from a drive root (e.g. C:\) now shows a
"Computer" view listing all available drives and WSL distributions.
Drives are enumerated via GetLogicalDriveStringsW and WSL distros
via `wsl -l -q` (since read_dir on \wsl.localhost fails with OS
error 64/67). Drive letters appear before WSL entries, which are
displayed as "Ubuntu-24.04 (WSL)" etc. On non-Windows platforms,
behavior is unchanged.

* Rename ListHostEntries to ListWindowsVolumes and gate behind FullHdAccess

The old name was misleading — on Unix it just returned `/`, which isn't
"listing host entries." Rename to ListWindowsVolumes to make the
Windows-specific intent explicit, gate behind FullHdAccess permission,
and replace the Unix implementation with a log::error since the command
is not meaningful on non-Windows platforms.

* Replace direct array indexing with .get() in strider platform detection

Use safe accessors and matches! macro instead of direct byte indexing
for bounds-checked access patterns.

---------

Co-authored-by: divens <divens.dev@gmail.com>
2026-03-21 19:20:32 +01:00
..