14 KiB
Change Log
0.10.0: 2022-12-28
Features:
- transparency on start
- add light colors parsing support
- Update --tiebreak options with length
Fixes:
- fix ci.yml
- update deps and fix lots of clippy lints
0.9.4: 2021-02-15
Feature:
- Upgrade dependency versions
- use Github Actions for CI
- Support bracketed paste
- #384 support ctrl-left/right for cursor movement between words
Fix:
0.9.3: 2020-11-02
Fix:
- #370 Ansi parse error for multi-byte strings
- #372 Can't bind
Enterkey withexpectspecified - #369
--select-1and--exit-0still take effect after all items are read and matched.
0.9.2: 2020-10-24
Feature:
- new action
refresh-cmd: call the interactive command and refresh the items accordingly. - new action
refresh-preview: call the preview command and refresh the preview display. Will only refresh if the preview window is shown.
Fix:
- zsh corrupt
REPORTTIMEsettings. - #359 panic with multi-byte and regex
- #361 support literal space by
\ - #365 new option
--show-cmd-errorto retrieve error message of failed interactive command and display as items. Served as a debug helper.
0.9.1: 2020-10-20
Feature:
- Support preview scroll offset relative to window height
git grep --line-number '' | sk --delimiter : \ --preview 'bat --style=numbers --color=always --highlight-line {2} {1}' \ --preview-window +{2}-/2
Fix:
- #356 panic on ANSI enabled.
tiebreakwould now includescorein the front of criterion if not specified.- Reduce preview window flicking when moving cursor fast.
- Multiple preview window options weren't merged.
pre-select-itemsshould not contain empty string by default.- click/wheel events's row weren't correct if
--heightis specified.
0.9.0: 2020-10-18
Breaking Change to the Library:
SkimItem::displaynow accepts aDisplayContextthat provide more information such as container width, score, matches, etc.SkimItem::previewnow accepts aPreviewContextthat provide more information such as query, width, selections, etc.Skim::run_asnow returnsSomeon bothAcceptandAbort, so that user could collect and react on abort events.SkimOutputnow provides the final key received before return.
Features:
- Reduce memory usage
- Defer drops of items, to improve interaction speed
- support
--tacand--nosort - new action:
half-page-upandhalf-page-down - support tiebreak by
length - #344 expose preview context
in
preview()function - #341 support multiline header
- use unicode spinner
- #324 support option
--no-clearto keep the content drawn on screen - #300 library: move reader options to default reader
- support new option
--keep-rightto show the right most text if it is too long. - support negative horizontal scroll
- support
--skip-to-patternto start item display with the pattern matched - support
--select-1that automatically select the only match - support
--exit-0that exit automatically if no item matched - support
--syncthat waits for all inputs to be ready and then starts the selection UI - #309 support pre-selection
pre-select-n: select firstnitemspre-select-pat: select items that matches regexpre-select-items: select items from a presetpre-select-file: select items from a preset that's loaded from file
- #328 support
--no-clear-if-emptythat preserve selection if the new command query returns nothing. Was designed to reduce flicking.
Fixes:
- #326 preview not updated anymore
- #349 kill-line and discard-line in interactive mode
- #344 implement
text()anddisplay()correctly - #312 mouse click and page up/down out of bound
- Do not auto-scroll for customized items
- #321 fix annoyance through ZSH's REPORTTIME
0.8.2: 2020-06-26
Bug fixes:
- fix skim executable in bash completion
- fix #291 hide scroll in when content fit
- fix #308 hangs on initialization
0.8.1: 2020-02-23
Feature:
- #63 could save to and read
from history for query and command query via
--historyand--cmd-history - #273 inline-info now has spinner
- #276 new action:
if-non-matchedwill execute if non of the items matches - reduce memory footprint
- #248 implement
{n}placeholder, used to refer to current items's index(zero based).
Bug fixes:
- PR #279 exit gracefully on SIGPIPE error. (e.g. Ctrl-C on pipes)
- #276
executepanic on zero results - #278
NULcharacter not working in preview command - handle
print0correctly in filter mode - Preview's fields now based on original text, not transformed.
- #295 skim not exits sometimes (occasionally happens on Ubuntu)
0.8.0: 2020-02-23
Breaking Changes in API
Skim::run_withnow accept a stream ofSkimIteminstead of aBufRead.
Feature:
- #233 support mouse scroll/click event
- #254 support
{+}in preview and execute command - #226 support exact match
combination(e.g.
^abc$) - #216 support item specific preview hook method
- #219 support case insensitive match
Bug fixes:
- #252 Deal with
\bcorrectly - #210 exclude current item in multi-selection
- #225 disable score in filter output
0.7.0: 2020-01-15
Feature:
- New fuzzy matching algorithm, should be more precise and faster.
Bug fixes:
- PR #227
Fix
isattycheck on more OS. - Fix various cases where ANSI code not behave correctly.
0.6.9: 2019-09-22
Bug fixes:
- PR #171 search with more than one multi-byte condition would crash skim.
- #194 color not working with ag
- #196
+in execute expression was eaten by skim - bind
Homekey tobegining-of-lineby default. - #192 Prompt was eaten in shell completion
- #205
tabstop of selection was initialized to
0, now to8. - #207 color config not working for header
0.6.8: 2019-06-23
Feature:
- New action:
if-query-empty,if-query-not-empty. Execute actions on certain query conditions. - New action:
append-and-selectallows you to append current query to the item pool and select it. It would help to turn skim into a tag manager where new tags could be added to the candidate list.
Bug fixes:
- Fix #188: crates.io breaks on 0.6.7
- Fix:
run_withwill break if called multiple times from the same process. - Update nix to 0.14
0.6.7: 2019-05-31
Feature:
- Refer to query and command query with
{q}and{cq}in preview command. - Support fzf's theme strings, e.g.
bg+for current line's background. - Support customizing styles of query strings.
Bug fixes:
- skim would crash if multiple CJK items are matched in an
ORquery. - SKIM_DEFAULT_COMMAND not correctly recognized in
sk-tmux - UI responses are slow on large input
0.6.6: 2019-04-03
fix #158: preview window not udpate correctly.
0.6.5: 2019-04-01
Bug Fixes:
- #155: screen is not fully cleared upon resize
- #156: preview dies on large chunk of input
- #157: cursor overflow on empty input
- #154: reduce CPU usage on idle
- wrong matches on empty input lines
0.6.4: 2019-03-26
Fix: #153 build fail with rust 2018 (1.31.0)
0.6.3: 2019-03-25
Feature:
- support action:
execute - support action chaining
- preview window actions:
toggle-preview-wrap,preview-[up|down|left|right],preview-page-[up|down] - support
--filtermode, it will print out the screen and matched item - support more (alt) keys
Bug Fixes:
- wrong cursor position after item changed
- #142: NULL character was dropped with
--ansi - regression:
--marginnot working - #148: screen won't clear in interactive mode
- number of matched item not showing correctly (during matching)
- lag in changing query on large collection of inputs
0.6.2: 2019-03-19
Feature:
- Support
--header-lines - Support
--layout - Update the latest fzf.vim
0.6.1: 2019-03-17
Fix:
- compile fail with rust 2018 (1.31.0)
- reduce the time on exit. It took time to free memories on large collections.
0.6.0: 2019-03-17
Performance improvement.
This is a large rewrite of skim, previously there are 4 major components of skim:
- reader: for reading from command or piped input
- sender: will cache the lines from reader and re-send all lines to matcher on restart
- matcher: match against the lines and send the matched items to model
- model: handle the selection of items and draw on screen.
They are communicated using rust's channel which turned out to be too slow
in skim's use case. Now we use SpinLock for sharing data. The performance on
large collections are greatly improved.
Besides, use tuikit for buferred rendering.
0.5.5: 2019-02-23
Bug fixes:
- fix: regression on
--with-nthfeature - fix: 100% CPU on not enough printing area
0.5.4: 2019-02-20
Emergency release that fix test failures which breaks APKBUILD. Check out #128.
0.5.3: 2019-02-20
Features:
--headerfor adding header line--inline-infofor displaying info besides query- run preview commands asynchronizely
- implement action
delete-charEOF - support key:
ctrl+space
More bug fixes, noticable ones are:
- Panic on reading non-utf8 characters
- 100% CPU when input is not ready
0.5.2: 2018-10-22
- fix: stop command immediately on accept or abort.
- minor optimization over ASCII inputs.
- #90: escape quotes in specified preview command
0.5.1: 2018-06-24
Use cross to build targets.
0.5.0: 2018-06-12
Change the field syntax to be fzf compatible.
- Previously it was git style
- fields starts with
0 1..3results in2, 3(which is0, 1, 2, 3minus0, 1)
- fields starts with
- Now it is
cutstyle- fields starts with
1 1..3results in1, 2, 3
- fields starts with
0.4.0: 2018-06-03
Refactor skim into a library. With minor bug fixes:
- support multiple arguments, to be a drop-in replacement of fzf.
- support negative range field. (e.g.
-1to specify the last field) - respond to terminal resize event on Mac.
0.3.2: 2018-01-18
Some minor enhancements that might comes handy.
- Reserve all fzf options, so that skim can be a drop-in replacement of fzf.
- Fix: the number of columns a unicode character occupies
- Accept multiple values for most options. So that you can safely put them
in
$SKIM_DEFAULT_OPTIONSand override it in command line.
Thanks to @magnetophon for the bug report and feature requests.
0.3.1: 2017-12-04
Support more options, and reserve several others. The purpose is to reuse
fzf.vim as much as possible.
--print0: use NUL(\0) as field separator for output.--read0: read input delimited by NUL(\0) characters--tabstop: allow customizing tabstop (default to 8).--no-hscroll: disable hscroll on match.- reserve several other options, skim will do nothing on them instead of throwing errors.
0.3.0: 2017-09-21
This release starts from adding --height featuren, ends up a big change in
the code base.
- feature:
--bindaccept character keys. Only Ctrl/Alt/F keys were accepted. - feature: support multiple
--bindoptions. (replace getopts with clap.rs) - feature:
--tacto reverse the order of input lines. - feature:
--previewto show preview of current selected line. - feature:
--heightto use only part instead of full of the screen. - test: use tmux for integration test
- replace ncurses-rs with termion, now skim is fully rust, no C bindings.