Commit graph

12 commits

Author SHA1 Message Date
LoricAndre a08f6ac9b3
feat!: interactive pty preview & concurrency optimizations (#952)
This PR has grown beyond its initial scope due to me over-optimizing everything, but it leads to:

    Paving the way for future actually interactive previews
    Consistently better performance than fzf in our bench thanks to thread and concurrency optimizations as well as the use of kanal for the items channels

Given the scope, I'm marking this as breaking because:

    setting wrap in the preview window layout disables the pty since we don't want to manipulate the raw buffer to word-wrap it manually
    kanal channels work slightly differently and might break library usage, even though switching to them did not require any modifications of the examples so it's unlikely that users will see anything break


* fix: force cwd for preview

* fix: correctly set cwd & kill pty child in the right order

* fix: use std threads & reopen new pty for each preview

* feat: use tui-term for displaying

* feat: scroll in pty

* fix: make nested skim previews work

* fix: clippy mistake

* feat: reactive preview triggering

* chore: generate completions & manpage

* chore: optimizations & thread cleanup

* chore: use kanal for faster channels

* fix: tests

* fix: only send items if the matcher hasn't been killed in the meantime (#947)

* tests: add coverage

* tests: fix bin path with coverage

* tests: upload tests to codecov

* chore: make pty opt-in through preview-window

* chore: generate completions & manpage

---------

Co-authored-by: Skim bot <skim-bot@skim-rs.github.io>
2026-02-09 21:43:04 +00:00
phanium a99cae3ca2
fix: clear screen when not in fullscreenon bash & fish (#936)
* fix: clear screen when not in fullscreen

`SKIM_DEFAULT_OPTIONS= sk --height=90%` don't clear screen on exit.

It don't use alt screen so we clear the screen manually on exit.

* fixup! fix: clear screen when not in fullscreen

* test: use explicit escape key and move to platform-specific

---------

Co-authored-by: Loric ANDRE <loric.andre@pm.me>
2026-01-27 09:51:20 +00:00
Loric ANDRE 7ff7b01031 fix: correctly compute character width for cursor display (closes #929) 2026-01-25 10:41:57 +01:00
Loric ANDRE 96a4c69646 fix: correctly merge styles & do not reset them by default (#918) 2026-01-23 11:50:44 +01:00
LoricAndre 6d0c310bea
test: use insta for applicable integration tests, making them cross-p… (#903)
* test: use insta for applicable integration tests, making them cross-platform

* fix: remove @cmd from insta tests

* fix: remove @cmd from insta tests

* fix: use printf instead of echo
2026-01-21 15:41:20 +01:00
Loric ANDRE 102f7c79f2 test: fix preview_nul 2026-01-19 22:59:48 +01:00
Loric ANDRE 9d486b78fa fix: use item output for fields 2026-01-19 22:55:48 +01:00
Loric ANDRE d17f5bd95d test: fix flaky tests 2026-01-17 19:39:24 +01:00
LoricAndre e25e166003
fix(ui): use current highlight for the current item (closes #889) (#890)
* fix(ui): use current highlight for the current item (closes #889)

* fix: misc
2026-01-16 17:54:02 +01:00
Loric ANDRE c7ae5bf1a2 feat(ui): allow setting modifiers (closes #871) 2026-01-15 10:35:09 +01:00
LoricAndre bd7af947e3
fix: manually acquire cursor pos (closes #885) (#886)
* fix: manually acquire cursor pos (closes #885)

* chore: bump version

* chore: generate completions & manpage

* chore: revert crate upgrades

* chore: generate completions & manpage

---------

Co-authored-by: Loric André <loric.andre@noreply.me>
Co-authored-by: Skim bot <skim-bot@skim-rs.github.io>
2026-01-14 16:07:53 +01:00
LoricAndre c364c5f128
chore: remove workspace (#883)
* chore: remove workspace

* chore: regen dist config

* fix: readme path

* chore: extra-artifacts as files

* chore: generate dist CI

* chore: prepare for prerelease

* chore: switch to include + generate-files

* chore: use run step for generate-files

---------

Co-authored-by: Loric André <loric.andre@noreply.me>
2026-01-13 11:34:10 +01:00
Renamed from skim/tests/issues.rs (Browse further)