Skip to content

v2.13.0

Compare
Choose a tag to compare
@github-actions github-actions released this 19 Jan 17:25
c0b11f8

2.13.0 (2025-01-19)

Features

  • picker.actions: added support for action options. Fixes #598 (8035398)
  • picker.buffers: del buffer with ctrl+x (2479ff7)
  • picker.buffers: delete buffers with dd (2ab18a0)
  • picker.commands: added builtin commands. Fixes #634 (ee988fa)
  • picker.frecency: cleanup old entries from sqlite3 database (320a4a6)
  • picker.git: added git_diff picker for diff hunks (#519) (cc69043)
  • picker.git: git diff/show can now use native or neovim for preview. defaults to neovim. Closes #500. Closes #494. Closes #491. Closes #478 (e36e6af)
  • picker.git: stage/unstage files in git status with <tab> key (0892db4)
  • picker.grep: added ft (rg's type) and regex (rg's --fixed-strings) options (0437cfd)
  • picker.list: added debug option to show scores (821e231)
  • picker.list: added select_all action mapped to ctrl+a (c9e2695)
  • picker.list: better way of highlighting field patterns (924a988)
  • picker.list: make conceallevel configurable. Fixes #635 (d88eab6)
  • picker.lsp: added lsp_workspace_symbols. Supports live search. Closes #473 (348307a)
  • picker.matcher: added opts.matcher.sort_empty and opts.matcher.filename_bonus (ed91078)
  • picker.matcher: better scoring algorithm based on fzf. Closes #512. Fixes #513 (e4e2e88)
  • picker.matcher: integrate custom item scores (7267e24)
  • picker.matcher: moved length tiebreak to sorter instead (d5ccb30)
  • picker.recent: include open files in recent files. Closes #487 (96ffaba)
  • picker.score: prioritize matches in filenames (5cf5ec1)
  • picker.smart: better frecency bonus (74feefc)
  • picker.sort: default sorter can now sort by len of a field (6ae87d9)
  • picker.sources: lines just sorts by score/idx. Smart sorts on empty (be42182)
  • picker: add qflist_all action to send all even when already sel… (#600) (c7354d8)
  • picker: add some source aliases like the Telescope / FzfLua names (5a83a8e)
  • picker: added {preview} and {flags} title placeholders. Closes #557, Closes #540 (2e70b7f)
  • picker: added git_branches picker. Closes #614 (8563dfc)
  • picker: added inspect action mapped to <c-i>. Useful to see what search fields are available on an item. (2ba165b)
  • picker: added smart picker (772f3e9)
  • picker: added exclude option for files and grep. Closes #581 (192fb31)
  • picker: added jump options jumplist(true for all), reuse_win & tagstack (true for lsp). Closes #589. Closes #568 (84c3738)
  • picker: added preliminary support for combining finder results. More info coming soon (000db17)
  • picker: added spelling picker. Closes #625 (b170ced)
  • picker: added support for live args for grep and files. Closes #601 (50f3c3e)
  • picker: added toggle/flag/action for follow. Closes #633 (aa53f6c)
  • picker: allow disabling file icons (76fbf9e)
  • picker: allow setting a custom opts.title. Fixes #620 (6001fb2)
  • picker: custom icon for unselected entries (#588) (6402687)
  • picker: restore cursor / topline on resume (ca54948)
  • pickers.format: added opts.picker.formatters.file.filename_first (98562ae)
  • picker: use an sqlite3 database for frecency data when available (c43969d)
  • scroll: faster animations for scroll repeats after delay. (replaces spamming handling) (d494a9e)
  • snacks: added snacks.picker (#445) (559d6c6)
  • toggle: allow toggling global options. Fixes #534 (b50effc)
  • win: warn on duplicate keymaps that differ in case. See #554 (a71b7c0)

Bug Fixes

  • animate: never animate stopped animations (197b0a9)
  • bigfile: check existence of NoMatchParen before executing (#561) (9b8f57b)
  • config: better vim.tbl_deep_extend that prevents issues with list-like tables. Fixes #554 (75eb16f)
  • config: dont exclude metatables (2d4a0b5)
  • grep: explicitely set --no-hidden because of the git filter (ae2de9a)
  • indent: dont redraw when list/shiftwidth/listchars change. Triggered way too often. Fixes #613. Closes #627 (d212e3c)
  • input: bring back <c-w>. Fixes #426. Closes #429 (5affa72)
  • layout: allow root with relative=cursor. Closes #479 (f06f14c)
  • layout: don't trigger events during re-layout on resize. Fixes #552 (d73a4a6)
  • layout: open/update windows in order of the layout to make sure offsets are correct (034d50d)
  • layout: use eventignore when updating windows that are already visible to fix issues with synatx. Fixes #552 (f7d967c)
  • lsp: use treesitter highlights for LSP locations (fc06a36)
  • notifier: content width. Fixes #631 (0e27737)
  • picker.actions: added hack to make folds work. Fixes #514 (df1060f)
  • picker.actions: close existing empty buffer if it's the current buffer (0745505)
  • picker.actions: full path for qflist and loclist actions (3e39250)
  • picker.actions: only delete empty buffer if it's not displayed in a window. Fixes #566 (b7ab888)
  • picker.actions: return action result. Fixes #612. See #611 (4a482be)
  • picker.colorscheme: nil check. Fixes #575 (de01907)
  • picker.config: allow merging list-like layouts with table layout options (706b1ab)
  • picker.config: better config merging and tests (9986b47)
  • picker.config: normalize keys before merging so you can override &lt;c-s&gt; with <C-S> (afef949)
  • picker.db: remove tests (71f69e5)
  • picker.diagnostics: sort on empty pattern. Fixes #641 (c6c76a6)
  • picker.files: ignore errors since it's not possible to know if the error isbecause of an incomplete pattern. Fixes #551 (4823f2d)
  • picker.format: filename (a194bbc)
  • picker.format: use forward slashes for paths. Closes #624 (5f82ffd)
  • picker.git: git log file/line for a file not in cwd. Fixes #616 (9034319)
  • picker.git: git_file and git_line should only show diffs including the file. Fixes #522 (1481a90)
  • picker.git: use Snacks.git.get_root instead vim.fs.root for backward compatibility (a2fb70e)
  • picker.highlight: properly deal with multiline treesitter captures (27b72ec)
  • picker.input: don't set prompt interrupt, but use a &lt;c-c&gt; mapping instead that can be changed (123f0d9)
  • picker.input: leave insert mode when closing and before executing confirm. Fixes #543 (05eb22c)
  • picker.input: statuscolumn on resize / re-layout. Fixes #643 (4d8d844)
  • picker.input: strip newllines from pattern (mainly due to pasting in the input box) (c6a9955)
  • picker.input: use Snacks.util.wo instead of vim.wo. Fixes #643 (d6284d5)
  • picker.list: disable folds (5582a84)
  • picker.list: include search filter for highlighting items (live search). See #474 (1693fbb)
  • picker.list: newlines in text. Fixes #607. Closes #580 (c45a940)
  • picker.list: possible issue with window options being set in the wrong window (f1b6c55)
  • picker.list: scores debug (9499b94)
  • picker.lsp: added support for single location result (79d27f1)
  • picker.matcher: initialize matcher with pattern from opts. Fixes #596 (c434eb8)
  • picker.matcher: inverse scores (1816931)
  • picker.minheap: clear sorted on minheap clear. Fixes #492 (79bea58)
  • picker.preview: don't show line numbers for preview commands (a652214)
  • picker.preview: pattern to detect binary files was incorrect (bbd1a08)
  • picker.preview: scratch buffer filetype. Fixes #595 (ece76b3)
  • picker.proc: correct offset for carriage returns. Fixes #599 (a01e0f5)
  • picker.qf: better quickfix item list. Fixes #562 (cb84540)
  • picker.select: allow main to be current. Fixes #497 (076259d)
  • picker.util: cleanup func for key-value store (frecency) (bd2da45)
  • picker: add alias for oldfiles (46554a6)
  • picker: add keymaps for preview scratch buffers (dc3f114)
  • picker: always stopinsert, even when picker is already closed. Should not be needed, but some plugins misbehave. See #579 (29becb0)
  • picker: better buffer edit. Fixes #593 (716492c)
  • picker: better normkey. Fixes #610 (540ecbd)
  • picker: changed inspect mapping to &lt;a-d&gt; since not all terminal differentiate between <a-i> and <tab> (8386540)
  • picker: correctly normalize path after fnamemodify (f351dcf)
  • picker: deepcopy before config merging. Fixes #554 (7865df0)
  • picker: don't throttle preview if it's the first item we're previewing (b785167)
  • picker: dont fast path matcher when finder items have scores (2ba5602)
  • picker: format: one too many spaces for default icon in results … (#594) (d7f727f)
  • picker: picker:items() should return filtered items, not finder items. Closes #481 (d67e093)
  • picker: potential issue with preview winhl being set on the main window (34208eb)
  • picker: preview / lsp / diagnostics positions were wrong; Should all be (1-0) indexed. Fixes #543 (40d08bd)
  • picker: properly handle opts.layout being a string. Fixes #636 (b80c9d2)
  • picker: select_and_prev should use list_up instead of list_down (#471) (b993be7)
  • picker: set correct cwd for git status picker (#505) (2cc7cf4)
  • picker: show all files in git status (#586) (43c312d)
  • scope: make sure to parse the ts tree. Fixes #521 (4c55f1c)
  • scratch: autowrite right buffer. Fixes #449. (#452) (8d2e26c)
  • scroll: don't animate for new changedtick. Fixes #384 (ac8b3cd)
  • scroll: don't animate when recording or executing macros (7dcdcb0)
  • statuscolumn: return "" when no signs and no numbers are needed. Closes #570. (c4980ef)
  • util: normkey (cd58a14)
  • win: clear syntax when setting filetype (c49f38c)
  • win: correctly deal with initial text containing newlines. Fixes #542 (825c106)
  • win: duplicate keymap should take mode into account. Closes #559 (097e68f)
  • win: exclude cursor from redraw. Fixes #613 (ad9b382)
  • win: fix relative=cursor again (5b1cd46)
  • win: relative=cursor. Closes #427. Closes #477 (743f8b3)
  • win: special handling of &lt;C-J&gt;. Closes #565. Closes #592 (5ac80f0)
  • win: win position with border offsets. Closes #413. Fixes #423 (ee08b1f)
  • words: added support for new name of the namespace used for lsp references. Fixes #555 (566f302)

Performance Improvements

  • notifier: skip processing during search. See #627 (cf5f56a)
  • picker.matcher: fast path when we already found a perfect match (6bbf50c)
  • picker.matcher: only use filename_bonus for items that have a file field (fd854ab)
  • picker.matcher: yield every 1ms to prevent ui locking in large repos (19979c8)
  • picker.util: cache path calculation (7117356)
  • picker: dont use prompt buffer callbacks (8293add)
  • picker: matcher optims (5295741)