aboutsummaryrefslogtreecommitdiffstats
path: root/default-plugins/strider/src (unfollow)
Commit message (Collapse)Author
2026-03-21Add windows support in strider (#4854)divens
* 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-16Warning and duplication cleanups (#4857)Aram Drevekenin
* cleanup compilation warnings * consolidate EditScrollbackRaw into EditScrollback
2026-03-05Click file paths to open in editor, allow plugins to change styles and hover ↵Aram Drevekenin
of viewport (#4802) * initial implementation * implement hover * add styles and foreground/background emphases, fix upsert hover collisions * initial implementation of link plugin * suppress highlighting + clicks on unfocused and mouse mode panes * also make italic * fix env var and ~ expansions * fix regex issues and add defensive validations * fix tests and add plugin assets * add tests * refactor all the things * add pr
2025-08-01style: some cleanups (#4329)Aram Drevekenin
* style: some cleanups * style(fmt): rustfmt
2025-07-15fix(plugins): forward CWD when opening new panes (#4290)Aram Drevekenin
* use plugin cwd as last focused pane cwd when starting plugins * fix strider to use the new change_host_folder method * start terminals in same cwd as plugin pane if focused * style(fmt): rustfmt
2025-02-20fix(ux): some filepicker improvements (#4007)Aram Drevekenin
* allow closing plugin pane after replacing it * start of strider improvements * improve strider's ux * fix selected text ui component * style(fmt): rustfmt * style(fmt): rustfmt
2024-07-29feat(plugins): allow opening command panes in the background (hidden) (#3530)Aram Drevekenin
* start background pane * open command and edit panes in the background * some cleanups * style(fmt): rustfmt * more cleanups
2024-05-27feat(keybindings): support multiple modifiers (eg. Ctrl+Alt) and the kitty ↵Aram Drevekenin
keyboard protocol (#3383) * parse kitty keys from STDIN * work * work * replace internal Key representation with the new KeyWithModifier in all the places * work * work * allow disabling with config * adjust ordering * handle enabling/disabling properly on the client * support multiple modifiers without kitty too * normalize uppercase keys * get tests to pass * various cleanups * style(fmt): rustfmt
2024-04-05fix(plugins): various pre-release issues (#3246)Aram Drevekenin
* fix(strider): close_self instead of close_focus * fix(plugins): populate caller_cwd for all aliases * fix(config): launch the session-manager alias rather than the explicit internal url * style(fmt): rustfmt * fix tests
2024-03-28style(fmt): remove plugin compilation warnings (#3231)Aram Drevekenin
2024-03-18feat(plugins): session manager cwd and new filepicker (#3200)Aram Drevekenin
* prototype * folder selection ui in session manager * overhaul strider * scan folder host command * get strider to work from the cli and some cli pipe fixes * some ux improvements to strider * improve strider's ui * make strider ui responsive * make session-manager new ui parts responsive * fix tests * style(fmt): rustfmt
2024-02-28fix(plugins): respect cwd and start filepicker at filesystem root (#3161)Aram Drevekenin
* allow padding cwd to plugins * improve strider performance and fix alias cwd issue * style(fmt): rustfmt
2024-02-26feat(plugins): introduce plugin aliases (#3157)Aram Drevekenin
* working prototype with passing tests * new tests and passing plugin tests as well * style(code): cleanups * cleanup strider from unused search feature * prototype of removing old plugin block from the config * aliases working from config file and all tests passing * fixups and cleanups * use aliases in layouts * update test snapshot * style(fmt): rustfmt
2024-02-08feat(panes): allow specifying coordinates for a new floating pane through ↵Aram Drevekenin
the CLI or plugins (#3122) * working * add tests * add coordinates to all the places * refactor: move things around: * style(fmt): rustfmt * style(code): cleanups
2023-08-24fix(ux): various ui/ux fixes (#2722)Aram Drevekenin
* force plugin render on permission request response * clear warnings * Revert "feat(ui): new status bar mode (#2619)" This reverts commit 27763d26ab83dd9f81c69c75601cbf6075f13790. * adjust status bar help * fix colors in session manager and shortcut in status-bar * adjust keybindings
2023-08-12feat: add plugin permission system (#2624)Jae-Heon Ji
* WIP: add exaple of permission ui * feat: add request permission ui * feat: add caching permission in memory * feat: add permission check * feat: add file caching * fix: changes request * feat(ui): new status bar mode (#2619) * supermode prototype * fix integration tests * fix tests * style(fmt): rustfmt * docs(changelog): status-bar supermode * fix(rendering): occasional glitches while resizing (#2621) * docs(changelog): resize glitches fix * chore(version): bump development version * Fix colored pane frames in mirrored sessions (#2625) * server/panes/tiled: Fix colored frames in mirrored sessions. Colored frames were previously ignored because they were treated like floating panes when rendering tiled panes. * CHANGELOG: Add PR #2625 * server/tab/unit: Fix unit tests for server. * fix(sessions): use custom lists of adjectives and nouns for generating session names (#2122) * Create custom lists of adjectives and nouns for generating session names * move word lists to const slices * add logic to retry name generation * refactor - reuse the name generator - iterator instead of for loop --------- Co-authored-by: Thomas Linford <linford.t@gmail.com> * docs(changelog): generate session names with custom words list * feat(plugins): make plugins configurable (#2646) * work * make every plugin entry point configurable * make integration tests pass * make e2e tests pass * add test for plugin configuration * add test snapshot * add plugin config parsing test * cleanups * style(fmt): rustfmt * style(comment): remove commented code * docs(changelog): configurable plugins * style(fmt): rustfmt * touch up ui * fix: don't save permission data in memory * feat: load cached permission * test: add example test (WIP) * fix: issue event are always denied * test: update snapshot * apply formatting * refactor: update default cache function * test: add more new test * apply formatting * Revert "apply formatting" This reverts commit a4e93703fbfdb6865131daa1c8b90fc5c36ab25e. * apply format * fix: update cache path * apply format * fix: cache path * fix: update log level * test for github workflow * Revert "test for github workflow" This reverts commit 01eff3bc5d1627a4e60bc6dac8ebe5500bc5b56e. * refactor: permission cache * fix(test): permission grant/deny race condition * style(fmt): rustfmt * style(fmt): rustfmt * configure permissions * permission denied test * snapshot * add ui for small plugins * style(fmt): rustfmt * some cleanups --------- Co-authored-by: Aram Drevekenin <aram@poor.dev> Co-authored-by: har7an <99636919+har7an@users.noreply.github.com> Co-authored-by: Kyle Sutherland-Cash <kyle.sutherlandcash@gmail.com> Co-authored-by: Thomas Linford <linford.t@gmail.com> Co-authored-by: Thomas Linford <tlinford@users.noreply.github.com>
2023-08-09feat(plugins): use protocol buffers for serializing across the wasm boundary ↵Aram Drevekenin
(#2686) * work * almost done with command protobuffers * done translating command data structures * mid transferring of every command to protobuff command * transferred plugin_command.rs, now moving on to shim.rs * plugin command working with protobufs * protobuffers in update * protobuf event tests * various TODOs and comments * fix zellij-tile * clean up prost deps * remove version mismatch error * fix panic * some cleanups * clean up event protobuffers * clean up command protobuffers * clean up various protobufs * refactor protobufs * update comments * some transformation fixes * use protobufs for workers * style(fmt): rustfmt * style(fmt): rustfmt * chore(build): add protoc * chore(build): authenticate protoc
2023-07-25feat(plugins): make plugins configurable (#2646)Aram Drevekenin
* work * make every plugin entry point configurable * make integration tests pass * make e2e tests pass * add test for plugin configuration * add test snapshot * add plugin config parsing test * cleanups * style(fmt): rustfmt * style(comment): remove commented code
2023-06-17feat(plugins): strider improvements (#2551)Aram Drevekenin
* fix(plugins): adjust debounce and smart file ignore in strider * style(comment): remove commented code * style(fmt): rustfmt
2023-06-17refactor(plugins): improve api (#2552)Aram Drevekenin
* refactor(plugins): improve shim API * style(fmt): rustfmt
2023-06-12fix(strider): clear search term on ESC (#2531)Aram Drevekenin
2023-06-09feat(plugins): extensive plugin api (#2516)Aram Drevekenin
* feat(plugins): add our entire API * style(fmt): rustfmt * fix(detach): make it work again
2023-06-07feat(wasm-plugin-system): major overhaul and some goodies (#2510)Aram Drevekenin
* strider resiliency * worker channel prototype * finalized ui * show hide plugin * fs events to plugins * tests for events and new screen instructions * various refactoringz * report plugin errors instead of crashing zellij * fix plugin loading with workers * refactor: move watch filesystem * some fixes and refactoring * refactor(panes): combine pane insertion logic * refactor(screen): launch or focus * refactor(pty): consolidate default shell fetching * refactor: various cleanups * initial refactoring * more initial refactoring * refactor(strider): search * style(fmt): rustfmt * style(pty): cleanup * style(clippy): ok clippy * style(fmt): rustfmt
2023-05-16feat(plugins): Plugin workers and strider (#2449)Aram Drevekenin
* mvp of strider fuzzy find * improve search ui * various refactoringz * moar refactoring * even more refactoring * tests and more refactoring * refactor: remove unused stuff * style(fmt): rustfmt * debug ci * debug ci * correct path for plugin system tests * fix plugin system ci tests * remove debugging statements from test * fix plugin worker persistence * add test for plugin worker persistence * style(fmt): rustfmt * final cleanups * remove outdated comments
2022-11-21performance(rendering): improve rendering performance (#1960)Aram Drevekenin
* refactor(plugins): plugins now need to explicitly ask to be rendered * performance(render): remove various needless renders * performance(render): cache boundaries * performance(render): adjust tests and cache cursor location/shape * style(comment): remove outdated * style(fmt): rustfmt
2022-11-15refactor(plugins): change the data flow (#1934)Aram Drevekenin
* refactor(plugins): do not block render loop * refactor(plugins): cleanup * style(fmt): rustfmt * fix(plugins): various rendering pipeline fixes
2022-06-10add(style): add trailing comma in match blocks (#1483)a-kenji
This makes it easier to distinguish from normal blocks
2022-05-22fix(strider): update out of range index in files (#1425)Jae-Heon Ji
2022-03-08refactor(tab): simplify mouse hold and release (#1185)Thomas Linford
2021-10-12fix(plugin): clean up the mouse PR a littleBrooks J Rady
2021-10-12feat(plugin): Add mouse events for plugins (#629)qepasa
* feat(plugin): Add mouse events for plugins * Add double click support in strider * Add support for mouse clicks in tab-bar and fix bug in strider with selecting past the list of files and random double click action * continue working on mouse support for tab bar * finish tab change * fix fmt and fix bug in strider double-click * fix clippy * cleanup dbgs and logs * fix clippy * noop change to rerun e2e tests * Rebase and fix mouse click behavior in tab-bar and strider after rebase * fix fmt * remove dbgs and and comment in tab-line/main.rs * cargo fmt * Code review suggestions * rebase fix * fix clippy * fix mouse selection for tabs in tab-bar
2021-09-30fix(strider): do not descend into host folder (#753)Aram Drevekenin
2021-09-19fix(strider): update host mount-pointBrooks J Rady
2021-08-12feat(ui): pane frames (new pane UI) (#643)Aram Drevekenin
* work * resize working * move focus working * close pane working * selection and fullscreen working * pane title line * titles and conditional scroll title * whole tab resize working * plugin frames working * plugin splitting working * truncate pane frame titles * cleanup * panes always draw their own borders - also fix gap * toggle pane frames * move toggle to screen and fix some bugs * fix plugin frame toggle * fix terminal window resize * fix scrolling and fullscreen bugs * unit tests passing * e2e tests passing and new test for new frames added * refactor: TerminalPane and PluginPane * refactor: Tab * refactor: moar Tab * refactor: Boundaries * only render and calculate boundaries when there are no pane frames * refactor: Layout * fix(grid): properly resize when coming back from alternative viewport * style: remove commented code * style: fmt * style: fmt * style: fmt + clippy * docs(changelog): update change
2021-07-13Apply code review suggestions. Rename decorating_pipe to logging_pipe. Add ↵Paweł Palenica
plugin_id to plugin log. Move logger init from file to in-code initialization and change logging file to zellij directory. Change format of timestamp.
2021-07-06Some progress on decorating pipe. Add some logic to handle endl in plugin ↵Paweł Palenica
messages. Basic logging from plugins works now.
2021-06-29feat: Add logger to ZellijPaweł Palenica
We add log4rs create for logging across Zellij. Additionally, we capture `stderr` output from plugins and log it the same log file as other Zellij logs.
2021-04-19fix(naming): made plugin terminology more consistentBrooks J Rady