All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Allow negative sizes (closes #1040) (#1043)
- Add border none (closes #1041) (#1044)
- Add more info variants (closes #1042) (#1048)
- Theme not being set with multiple values (#1049)
- Ignore missing files for ssh completion (closes #1054)
- Remove breaking change introduced with 7375d30b
- Unpin wide-used dependencies (closes #1050)
- @leaty made their first contribution in #1049
- Show popup border unless --no-border (closes #1032)
- Add bench graphs [skip ci]
- (ci/deps) Bump codecov/codecov-action from 5 to 6 (#1035)
- (ci/deps) Bump actions/create-github-app-token from 1 to 3 (#1034)
- (ci/deps) Bump actions/checkout from 4 to 6 (#1033)
- Rename tmux -> popup and add zellij (#1027)
- Better performance on small datasets
- Deps: Only use frizbee on x86_64 and aarch64 (#1028)
- @Xeonacid made their first contribution in #1028
- Add scrollbar
- Better CI caching (#1026)
- Improve matcher & reader performance (#1020)
- Add multiline item rendering (#999)
This release brings initial windows support !
Please open an issue or even a PR with any bug or potential improvements you may spot.
- Windows support (#1010)
- Broken pipe in bash alt-c (closes #1018)
- Trim whitespace in zsh hist widget (closes #1019)
- Refactor engine building
- Minor perf
- (keybindings) Make sure we use the correct filtering fields
- Add benchmarks to README.md [skip ci]
- Clippy pedantic
- Correct typos in code, comments and documentation (#1002)
- Add sonar analysis (#1009)
- (ci) Add sonar directly to test workflow
- Set rust msrv (closes #1017)
- Remove sonar
sk is now beating fzf in interactive matching for time, peak memory usage and CPU usage ! See the benchmarks below for details, including a brief explanation of the benchmark itself.
This release brings multiple breaking changes, please read the following if you have doubts about the update.
The biggest change of them all is that the default algorithm is now Arinae, skim's latest and most performant algorithm, featuring typo-resistance. If you want to keep using SkimV2, pass --algo skim_v2 and please take the time to open an issue explaining why if possible.
This also makes the --scheme option available to the default matcher, allowing for more refined matching scenarii.
Typo-resistant behavior is now disable by default, add --typos to your skim invocation or SKIM_DEFAULT_OPTIONS to get it back. Unless you were using the frizbee, fzy or arinae matcher, this should not impact you.
The SkimV1 algorithm, skim's initial algorithm, has been deprecated for years now, and it has now been removed.
SkimItem::get_index and SkimItem::set_index are gone, and all index handling is now done internally.
This benchmarks runs the interactive interface in a tmux session, and waits for the UI to stabilize.
It uses a 10 million path-like ASCII items input file, and the query test.
=== Results: sk v4.0.0 [baseline] ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782)
Average time: 3.827s (min: 3.576s, max: 4.090s)
Average items/second: 2615767 (min: 2445033, max: 2796365)
Average peak memory usage: 1589.2 MB (min: 1518.6 MB, max: 1661.2 MB)
Average peak CPU usage: 528.9% (min: 457.0%, max: 740.0%)
=== Results: sk v3.7.0 ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782) +0.0%
Average time: 3.930s (min: 3.565s, max: 4.226s) +2.7%
Average items/second: 2548674 (min: 2366263, max: 2804816) -2.6%
Average peak memory usage: 1618.8 MB (min: 1539.1 MB, max: 1680.6 MB) +1.9%
Average peak CPU usage: 696.8% (min: 608.0%, max: 875.0%) +31.7%
=== Results: fzf 0.70.0 ===
Completed runs: 50 / 50
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782) +0.0%
Average time: 5.421s (min: 4.814s, max: 6.111s) +41.7%
Average items/second: 1848269 (min: 1636444, max: 2077385) -29.3%
Average peak memory usage: 2015.3 MB (min: 1860.7 MB, max: 2173.9 MB) +26.8%
Average peak CPU usage: 1301.1% (min: 1229.0%, max: 1431.0%) +146.0%
=== Comparison Summary (vs baseline: sk v4.0.0) ===
Binary Avg time Ξ time Avg rate Ξ rate
------------------------------------------------------------------------------
sk v4.0.0 3.827s baseline 2615767 baseline
sk v3.7.0 3.930s +2.7% 2548674 -2.6%
fzf 0.70.0 5.421s +41.7% 1848269 -29.3%
- [breaking] Internally compute indexes at match time (removes get/set_index) (#1001)
- [breaking] Use Arinae as default algorithm
- [breaking] Default to disabled typos
- Use python for bench script for comparison
This adds a new library API: Skim::run_items. Using this, you don't need to send the items, the library handles it for you.
Instead of writing this:
use skim::prelude::*;
let (rx, tx) = unbounded();
// We need MySkimItem to override the set_index/get_index methods
struct MySkimItem {
value: String,
index: usize
}
impl SkimItem for MySkimItem {
// Implement the default members
}
tx.send(MySkimItem { value: String::from("foo"), index: 0 });
tx.send(MySkimItem { value: String::from("bar"), index: 1 });
let res = Skim::run_with(options, Some(rx));You can simply write this:
use skim::prelude::*;
let res = Skim::run_with(options, ["foo", "bar"]);It will automatically convert any iterator of by adding an index field and then send it, before running skim.
- Add
schemefor better filepath matching in Arinae - Add Skim::run_items API
- Use sum of scores in And engine
- Correctly init rank for and engine
- Add gungraun benchmark
- Review snapshots
- Refactor app layout computations to take them out of the hot loop (#996)
- Allow using flag or env vars for both log level and file
- Switch allocator to mimalloc for ~20% perf in some cases
- Add bench plot scripts
This version adds the Arinae algorithm as an option.
Arinae is designed to become skim's default algorithm in the future.
Technically, it uses Smith-Waterman and a modified Levenshtein distance with affine gaps for scoring, as well as multiple optimizations (the main ones being a loose prefilter and checks for early dismissal of paths that cannot lead to the best match). It also forbids typos on the first char of the query.
In practice, it should feel close to FZY's scoring with typos disabled, but with a more natural behavior regarding typos as Frizbee or other algorithms.
These other algorithms usually work by allowing a set number of typos using 3D matrices for computations, the max-typos value being set based on the length of the query. In practice, that meant that tes will match exactly, but test will allow one typo, meaning that typing a single character will change the filtered items completely. This algorithm will instead penalize typos, not block them completely.
This algorithm does not aim to revolution anything, but it aims at making typo-resistant fuzzy matching feel more like an actual alternative to the current options (namely FZF and FZY), while maintaining per-item performance at least as good as the current algorithms.
- Merge ranks in AndOr engine matcher
- Add Arinae algorithm (#990)
- (shell) Colored history widgets & remove perl completely (#994)
- Make sure we drop Skim before returning the output
- Drop flake-utils, add formatter (#992)
- @faukah made their first contribution in #992
- Add fzy matcher and
--typos/--no-typosflag (#987)
- Correctly bind uppercase keys
- More precision on AndOr matches (closes #526)
- Respect the and & or priority
- (dep) Remove unused dependency 'beef' (#986)
- (dep) Frizbee 0.8.1 (#985)
- Add partial bench to measure the time it takes to setup skim
- Pin dependencies to the latest exact version
- @bitfehler made their first contribution in #985
- @Sisyphus1813 made their first contribution in #983
- Allow setting delimiters in
+expansions (closes #935) - Add set-header action (closes #768)
- Add
--print-current,--output-format(closes #981) - Add --ellipsis option
- Back to stable rust (#980)
- (ci) Do not run benches
- Add filter
- Benchmarks
- Add rust benchmark
- Use a separate thread pool for Matcher runs (#961)
- Event-driven re-render (#949)
- Allow run_with to be run within a tokio runtime (#979)
- Possible None unwrap if ansi enabled but not in item
- Unify filter mode & squeeze more perf (#974)
- Refactor Skim into its own file
- @figsoda made their first contribution in #979
- Further reduce DefaultSkimItem size (#967)
- Enhance PR template [skip ci]
- Republish crate
- (cli) Add SKIM_OPTIONS_FILE (#972)
- Add set-preview-cmd action to change preview (#969)
- Restart_matcher race condition (closes #970)
- Add link to sqlite_skim (#971) [skip ci]
- @tzachar made their first contribution in #971
Memory usage was optimized, bringing a ~25% reduction in memory usage in our benches. Thanks to @kimono-koans for the initial idea and help with this.
- Added a
:ptypreview-window flag that will make the preview run in a PTY. This allows for more interactive commands and more complicated display, including runningskitself insidesk's preview (runSKIM_DEFAULT_OPTIONS='--preview "sk" --preview-window ":pty"' skfor the extreme version). Note: theptypreview does not take input (for now). For instance, scrolling in paged output will not work. - Readded
--syncfunctionality after it was broken in v1
- A more fine-grained control over skim's event loop is now possible using
tokioand the new methods onSkim. Check them out if you want to interact with the skim instance while it is running. - [breaking] The
SkimOptionsBuilder's setter methods are back to taking raw&strs instead ofStrings. This should match the behavior pre-v1, sorry for the extra work that some of you already put in to migrate.
- Interactive pty preview & concurrency optimizations (#952)
- Optimize match_item to use ref and not Arc (#962)
- Reduce DefaultSkimItem memory footprint by around 25% by default (#966)
- [breaking] Use smarter setters, remove the need for Some(...) and String::from() in setters
- Readd
--syncfunctionality - (lib) Add fine-grained control over skim's event loop (#968)
- Manually patch modifiers (closes #945)
- Implement cursor_pos_from_tty ourselves (#963)
- Run preview on move after selection
- Specify nightly version in README
- Update nightly version [skip ci]
- Detail
ptypreview window flag [skip ci]
- Ignore coverage files [skip ci]
- Add coverage flag to README
- Test matchers
- Update frizbee and nightly version
- (ci) Make codecov less aggressive
- @kimono-koans made their first contribution in #962
- Fix preview_fn
- Update interactive mode examples (closes #943)
- (linux) Run preview in a PTY (closes #894) (#897)
- [breaking] library Send & receive items in batches (#938) This should not affect TUI users other than in improving the app's performance
- Add valgrind and thread sanitizer test profiles [skip ci]
- Always make ctrl-d abort (closes #941)
- Do not enter TUI early if the matcher needs restarting before ingestion done (closes #940)
- Add nix flake for dev [skip ci]
- Reduce FPS for better performance
- Add custom action for lib usage (closes #537)
- Add
--normalizeto ignore accents etc. when matching (closes #453) (#914)
- (frizbee) Correctly compute max_typos
- Make
-1reset highlights (#937) - Always display item_list (closes #939)
- Clear screen when not in fullscreenon bash & fish (#936)
- @phanen made their first contribution in #936
- (frizbee) Adaptive max_typos value
- (theme) Add catppuccin themes
- Correctly flush buffered stderr
- Parse ansi codes in prompt
- Header and header-lines order in reverse layout
- Correctly overlay header styles
- Make select-1 and exit-0 work again (closes #916) (#933)
- Fix cursor blinking (closes #932) (credits to @lilydjwg)
- Review snapshots
- Add matrix room to readme
- Correct cursor position when using reverse and border (closes #928)
- Y cursor pos in reverse mode (closes #931)
- Add borders to all widgets (#930)
- Correctly merge base styles
- Correctly display all header lines
- Correctly toggle prompt on ToggleInteractive (closes #925)
- Fix printf sometimes replacing recursively
- Interrupt the reader thread when stopping
- Replace {n} with an empty string when no item is selected
- Revert case-insensitive action_chain
- Re-enable query/cmd-query distinction and switching
- Correctly compute character width for cursor display (closes #929)
- Cleanup changelog [skip ci]
- Add
--remoteflag to call remote (--listen) instances (#915)
- Make no-sort work again
- Remove insta_ prefixes after finalizing tests migration
- Do not override {} with {q} in interactive mode
- Remove unnecessary clone in printf
- Correctly merge styles & do not reset them by default (#918)
- Translate frizbee's byte indices into char indices
- Customize man page
- Quote expanded items independently (#910)
- Escape last
;in env var value before passing to tmux (#912)
- @mathieu-lemay made their first contribution in #912
- Ignore
{+}expressions when splitting action chains (closes #910) - Strip ansi from expanded items (#910)
- Correctly expand
{+}to current when no items are selected (cl⦠(#913)
- Add
set-queryaction to update the input (closes #657) (#907)
- Make case option work with non-ascii input (closes #454)
- Fix tests link in PR template [skip ci]
- Split-match (#906)
- Reflect need for nightly rust in install section [skip ci]
- Better spinner debounce behavior to avoid flickering (closes #904)
- Update README install section
- Add details to interactive mode in manpage (closes #805) (#816)
- Use insta for applicable integration tests, making them cross-p⦠(#903)
- Allow layout to override reverse (closes #901)
- Allow multiple bench runs for better consistency
- More reproducible and more precise bench [skip ci]
- Optimized release builds
- Typo resistant matcher using frizbee from blink.cmp (#891)
- Add no-strip-ansi flag (#898)
- Run preview in a PTY (closes #894)
- Half page down scrolls down
- Use ansi-stripped raw item in preview expansion
- Use item text in printf
- Parse ansi codes in header
- Use item output for fields
- Fix preview_nul
- Update crossterm version requirement to pass crates.io publish checks
- Wrap items
- Delete outside char boundaries
- Preview on large binaries does not hang or mangle the tui
- Fix wrap test (#896)
- Disable compact_matcher feature
- Always use cursor/selector colors (#892)
- Fix flaky tests
- (changelog) Ignore release commits
- Only expand selection in {+} for commands
- Add pointer/marker as aliases for selector/multi-selector
- Matcher race condition at startup
- Add print-header flag (and readd print-score) (closes #470)
- (ui) Use current highlight for the current item (closes #889) (#890)
- Remove useless listen tests
- Add
listenflag (closes #719)
- Fix listen flag on macos (#888)
- Correctly parse wrap arg in preview options
- Add tests for listen flag
- Add cycle flag (closes #553)
- Add disabled flag (closes #500)
- Add nushell completion support (closes #459)
- Add --shell-bindings flag to get bindings at runtime
- Disable completions without cli feature
- Fix build without default features
- Add exhaustive_match macro for enum building from str
- (ui) Add selector and multi-selector options to set the itemlist icons
- (ui) Allow setting modifiers (closes #871)
- 120 FPS
- (cmd) [breaking] Always use
shfor all command executions
- Regenerate CHANGELOG.md
- Fix terminal height management
- Release v1.0.0-pre3
- (ci) Add crates.io publish to release CI
- Manually acquire cursor pos (closes #885) (#886)
- Remove unneeded deps (#884)
- Release
- (ui) [breaking] Ratatui migration (#864)
- Remove workspace (#883)
- @rusty-snake made their first contribution in #872
- @peccu made their first contribution in #845
- @azarmadr made their first contribution in #841
- Compile without the cli feature (#834)
- (release) Release (#835)
- (e2e) Add Dockerfile to run E2E
- (options) Allow border to be used without args
- (ci) Fetch whole history to avoid PR recreation
- (ci) Revert to a more vanilla release-plz config
- Remove unreleased section from changelog
- (release) Release (#831)
- (release) Release (#826)
- (e2e) Add contributing section (#817)
- (release) Release (#818)
- @azat made their first contribution in #783
- Min-query-length in interactive mode (#814)
- (release) Release (#815)
- (ui) Respect NO_COLOR environment variable (#804)
- (release) Release (#813)
- @saidelmark made their first contribution in #804
- Add min query length option (#806)
- (release) Release (#811)
- (shell) Improve shell completion with dynamic generation (#790)
- (ci) Remove version from pr name
- (contributing) Refine guidelines for GPT-assisted development
- Improve theming documentation (#788)
- Improve wording in README and options.rs (#789)
- Generate changelog
- (release) Release (#792)
- (shell) Fix zsh tmux args in key bindings (#777)
- (shell) Remove duplocate tmux height arg fixes #776 (#778)
- Set keybinding right before printing special character (#774)
- Generate changelog using git cliff
- (release) Release v0.17.3 (#782)
- @ajeetdsouza made their first contribution in #774
- (tmux) Force sh as shell for tmux mode (#765)
- (ci) Remove release commits filter
- (ci) Remove temp workflow
- (release) Release v0.17.2 (#766)
- (ci) Manually update versions
- (cargo) Fix tuikit re-export
- (ci) More generic pr name
- (ci) Split release pr and gh release
- (cargo) Fix tuikit readme path
- (ci) Fix broken ci after migration
- (ci) Show context
- (ci) Test trigger (#761)
- (ci) Only release after merge
- Release (#760)
- (cargo) Update to 2024 edition (#764)
- (ci) Update dependencies
- Fix local dependencies
- (tui) Add tuikit as workspace member and update (#741)
- (shell) Readd completions (#726) (#739)
- (cargo) Fix workspace packages
- (ci) Remove leftover package
- (ci) Add metadata to common package
- (tuikit) Bring skim-rs/tuikit#43 (#743)
- (ci) Back to manifest release
- (ci) Readd manifest manually
- (ci) Revert action
- (ci) Use linked changelog
- (ci) Disable skim prefix in tag
- (ci) Test without extra packages
- (ci) Readd all components
- (ci) Release every package at the same version
- (ci) Release whole workspace at once
- (ci) Update manifest
- (ci) Readd all packages as well as root
- (ci) Better handling of packages in release
- (ci) Unlink versions
- (ci) Set package names
- (ci) Explicitely set root component
- (ci) Explicitely set last release sha
- (ci) Use previous versions for packages
- (ci) Migrate to release-plz
- (ci) Update release-plz changelog format
- (ci) Update release-plz changelog format
- (ci) Split release actions
- Release (#756)
- (ci) Do not publish extra packages
- (ci) Release on all commits
- (ci) Make local packages publishable
- (zsh) [breaking] Sort history items by timestamp
- (tmux) Check if TMUX is set (closes #734) (#736)
- (filter) Fix broken pipe while writing results to locked stdout (closes #733) (#737)
- (tmux) Add note about env var (#732)
- (tmux) Fix docs formatting
- (ci) Try a simpler release-please config
- Move changelog to subdir (#740)
- (master) Release 0.16.2 (#738)
- Hasten deprecation of expect after #703
- Manually update release-please manifest after release
- (master) Release 0.16.1 (#712)
- Add preview callback (#407)
- (docs) Fix README lib example
- (term) Clamp height option (#690)
- (readme) Correct fzf library statement in README (#679)
- (ci) Test previous fixes
- (ci) Test previous fixes
- (ci) Try removing the packages altogether
- Remove lazy_static (#687)
- Fix clippy warning in rust 1.84 (#688)
- (ci) Try to fix release-please on extra packages
- (ci) Do not search commits on e2e & xtask
- (ci) Try releasing as 0.1.0
- Release master (#672)
- Release master (#691)
- Remove atty (#671)
- Release master (#670)
- @gallois made their first contribution in #671
- Fix non-functional vim plugin (#659)
- Update rank to follow the readded index tiebreak (#669)
- Release master (#656)
- @egrieco made their first contribution
- @dotdash made their first contribution in #659
- Revert README overwrite
- Fix --tmux quoting (#643)
- Missing backtick in install commands (#646)
- Add note about fuzziness of interactive examples (fixes #543)
- Release master (#647)
- Fix release-please config
- Fix release config
- Release master (#655)
- @genskyff made their first contribution in #646
- Fix token permissions for release file
- Clippy pedantic on lib.rs
- Cargo fmt
- Release master (#642)
- Fix missing var in CI
- Clippy pedantic on main.rs
- Remove cli feature from skim
- Cargo fmt
- Release master (#641)
- Do not run tests in release workflow
- Make item module public (closes #568)
- Release master (#640)
- @skim-rs-bot[bot] made their first contribution in #640
- Fix ci
- Fix urls in cargo.toml
- Generate files in PR (#638)
- Fix push
- Test push with explicit ref
- Use cache for xtask
- Simplify release ci
- Use PAT for release-please to trigger downstream ci
- Use gh app for token
- Use gh app for push
- Manually use gh app for push
- Skip ci on modified files
- Use token in checkout
- Exit success when nothing to commit
- Avoid duplicate test runs
- Cleanup
- Release master (#639)
- (tui) Add info hidden (#630)
- (ci) Fix clippy os
- (ci) Set release-please path
- Undo sk-tmux deprecation
- (ci) Release-please permissions on job level
- (ci) Use subpath for release-please outputs
- (ci) Remove needs in release-please condition
- (ci) Use different syntax for conditions
- (ci) Add intermediary step for release
- (ci) Use release-please in workspace root
- (ci) Test with different release-please config
- (ci) Set skim version
- (ci) Set skim changelog path
- (ci) Use absolute path for changelog
- (ci) Do not bump major
- (ci) Bump minor for feat
- (ci) Use correct tag
- (ci) Remove string from cond
- (ci) Fix templating
- (ci) Fix extra dot
- (ci) Use stable toolchain
- (ci) Remove extra modules
- (ci) Skip extra packages
- (ci) Replace underscore with dashes
- Set toolchain
- Migrate e2e to rust (#629)
- (ci) Try downgrading cargo.toml
- (ci) Test with crate root
- (ci) Test with subpath
- (ci) Add debug
- (ci) Fix dash in test
- (ci) Check for string
- Readd crate to release-please
- Fix release-please target branch
- Fix condition
- Release master (#632)
- Release master (#633)
- Cleanup failed releases
- Release master (#634)
- Release master (#635)
- Release master (#636)
- Release master (#637)
- @github-actions[bot] made their first contribution in #637
- Readd index tiebreak (#609)
- [breaking] Do not check for expect before printing the argument of accept⦠(#625)
- Add
--tmuxflag (deprecates sk-tmux, fixes #596) (#603)
- Allow combined multiple args (fixes #622) (#623)
- Update changelog from github releases (#620)
- Link all PRs, issues, commits and authors in CHANGELOG (#621)
- Add fzf-lua and nu_plugin_skim to the README (#626)
- Bump unicode-width from 0.1.14 to 0.2.0 (#616)
- Bump nix from 0.25.1 to 0.29.0 (#614)
- Bump env_logger from 0.9.3 to 0.11.5 (#615)
- Improve PR ci (#617)
- Remove ci dir (#627)
- @khafatech made their first contribution in #605
- @praveenperera made their first contribution in #621
- Allow more flexibility for use as a library (#613)
- Add pull request template (#608)
- Add reload action (#604)
- Remove index tiebreak from shell bindings (#611)
- Remove some platform-specific quirkinesses from e2e (#602)
- @crodjer made their first contribution in #413
- Readd version arg (#606)
- Fix github publish action
- Use clap & derive for options, manpage & completions (#586)
- "Package Managers": add Portage
- Remove unuseful entries (#382)
- (discord) Discord invitation link
- Fix clippy
- Remove atty (#587)
- Remove bitflags (#579)
- @LoricAndre made their first contribution in #586
- @otto-dev made their first contribution in #468
- @jgarte made their first contribution in #487
- @iamb4uc made their first contribution in #560
- @hellux made their first contribution in #563
- @reneegyllensvaan made their first contribution in #461
- @jirutka made their first contribution in #449
- @rspencer01 made their first contribution in #433
- @marcoieni made their first contribution in #382
- @ymnejmi made their first contribution in #551
- @sisrfeng made their first contribution
- @vitaly-zdanevich made their first contribution
- Print version from Cargo.toml with latest clap
- @anthraxx made their first contribution
- Update deps and fix lots of clippy lints
- @yazgoo made their first contribution in #472
- @EdenEast made their first contribution
- @grant0417 made their first contribution
- @mgttlinger made their first contribution
- @TD-Sky made their first contribution
- @dependabot[bot] made their first contribution
- @io12 made their first contribution
- @terror made their first contribution
- @PCouaillier made their first contribution
- @sweenu made their first contribution
- Update
- (cargo) Fix documentation link
- @x4121 made their first contribution
- @Mephistophiles made their first contribution
- @n8henrie made their first contribution
- @marcusbuffett made their first contribution
- @mb720 made their first contribution
- @pickfire made their first contribution
- @sirwindfield made their first contribution
- Ansi parse error for multi-bytes string
- Support initial scroll for preview window
- Ansi merge fragments (typo)
- Tiebreak should contains score by default
- Reduce flickering of preview window
- Multiple preview options won't merge
- Clippy
- Pre-select-items select '' by default
- Preview's scroll could be 0
- Unicode spinner
- Implement
--keep-right - Support skip-to-pattern
- Orderedvec won't preserve insertion order
- Upgrade fuzzy-matcher to fix wrong matching indices
- Ensure the matching range is within bound
- Some options are broken (introduced by 08bc067)
- Do no auto scroll for customized items
- Multiple selection (regression in 1d72fca)
- Ansi color were not shown for DefaultSkimItem
- Demangle lib and bin implementations
- Separate MatchResult from MatchedItem
- @pkubik made their first contribution
- @wucke13 made their first contribution
- Preview's fields should based on orig text
- Move filter function to binary
- Exit gracefully on SIGPIPE error(see PR#279)
- Handle print0 parameters correctly in filter mode
- DefaultSkimItem now accept string
- @marsam made their first contribution
- @caixiangyue made their first contribution
- @emmanueltouzery made their first contribution
- @BlindingDark made their first contribution
- @aldhsu made their first contribution
- Support left click event on selection list
- Ensure screen is rendered with item
- "enter" key not printed with expect keys
- Support case insensitive in exact mode
- Case insensitive + refactor engine
- (src/ansi.rs) Use pattern match to destruct Option wrapper.
- Add installation instructions for arch linux
- Update derive_builder to 0.9
- @ammgws made their first contribution
- @alexreg made their first contribution
- @cireu made their first contribution
- Use as a library: remove extraneous line in example code.
- Remove extraneous line.
- Remove extraneous line.
- Add crates.io svg.
- @chmp made their first contribution
- @ngirard made their first contribution
- Wrong matches on empty lines
- Number of matched items not show correctly
- Matcher is slow to kill
- Header-lines
- Compilation error of examples
- Rotate mode
- Create new variable for lines used by skim
- Update usage string.
- Return slice instead of new vector
- Draw status after query
- Return early if possible
- @dfreese made their first contribution
- @lilydjwg made their first contribution
- @RemiliaForever made their first contribution
- @bennyyip made their first contribution
- @Konfekt made their first contribution
- @Lompik made their first contribution
- @light4 made their first contribution
- Main window did not earse correctly
- Some lines now shown if too long
- Skim cannot show empty lines
- Alternate screen is not switched off on exit
- Ansi color not shown correctly in main area
- Toggle will panic if there is no item matched
- @tiziano88 made their first contribution
- @supermarin made their first contribution
- Use filter_map instead of map then filter
- @anchepiece made their first contribution
- @brookst made their first contribution
- @SirVer made their first contribution
- @akiradeveloper made their first contribution
- Model will not redraw from the 1 line
- Reader: reader and sender will lock each other.
- @leoyvens made their first contribution
- @mohamedhayibor made their first contribution
- #4 exit with non-zero status on cancel.
- Fields result in incorrect output with ANSI enabled.
- Remove debug code
- @lotabout made their first contribution
- @ made their first contribution