Skip to content

feat: windows support#902

Draft
godnight10061 wants to merge 8 commits intoskim-rs:masterfrom
godnight10061:fix/windows-support
Draft

feat: windows support#902
godnight10061 wants to merge 8 commits intoskim-rs:masterfrom
godnight10061:fix/windows-support

Conversation

@godnight10061
Copy link

@godnight10061 godnight10061 commented Jan 21, 2026

Checklist

check the box if it is not applicable to your changes

  • I have updated the README with the necessary documentation
  • I have added unit tests
  • I have added integration tests (tests/)
  • I have linked all related issues or PRs

Description of the changes

Summary:

  • Improve Windows compatibility by gating unix-only deps and keeping tmux integration unix-only (module + --tmux flag).
  • Execute commands via a platform shell (cmd.exe /C on Windows, sh -c on Unix).
  • Use cmd-friendly quoting for placeholder expansion on Windows (double quotes).
  • Use a platform-specific default command for filter mode (dir /s /b on Windows, find . on Unix).
  • Add a filter-mode E2E regression test for --cmd / --filter.

Testing (local, Windows):

  • cargo fmt --check
  • cargo clippy
  • cargo nextest run --release --features test-utils

Testing (fork CI):

  • Build & Test workflow passed.

Fixes #293

@godnight10061 godnight10061 marked this pull request as draft January 21, 2026 07:41
@LoricAndre LoricAndre changed the title fix: improve Windows support feat: windows support Jan 21, 2026
@LoricAndre
Copy link
Contributor

Don't sell yourself short, this is definitely a feature. Thanks for taking a look !

In the meantime, I'll try to think about some way to run tests without needing tmux, probably using cargo-insta and Ratatui's TestBackend

@godnight10061
Copy link
Author

Made tmux support Unix-only (module gated with cfg(unix) and the --tmux clap flag hidden on non-Unix). On Windows, passing --tmux is rejected, and tests/e2e_filter.rs asserts both behaviors.

@ibhagwan
Copy link

In the meantime, I'll try to think about some way to run tests without needing tmux, probably using cargo-insta and Ratatui's TestBackend

@LoricAndre, out of curiosity, do you use tmux to also test colored output?

@LoricAndre
Copy link
Contributor

Yes, but the tests involving ANSI coloring are very tedious and prone to break quite easily, since the actual escape codes will vary depending on the platform and/or terminal emulator. I migrated most of our tests to use ratatui's testbackend and cargo-insta but those cannot capture colors AFAIK unfortunately

@LoricAndre
Copy link
Contributor

Please make sure to rebase, I've made pretty heavy changes to the tests and they might impact you (in particular, most tests files are now cross-platform)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows support

3 participants