Skip to content

Latest commit

 

History

History
782 lines (633 loc) · 102 KB

CHANGELOG.md

File metadata and controls

782 lines (633 loc) · 102 KB

Changelog

2.14.0 (2025-01-20)

Features

  • picker.buffer: add filetype to bufname for buffers without name (83baea0)
  • picker.debug: debug option to detect garbage collection leaks (b59f4ff)
  • picker.matcher: new opts.matcher.file_pos which defaults to true to support patterns like file:line:col or file:line. Closes #517. Closes #496. Closes #651 (5e00b0a)
  • picker: added args option for files and grep. Closes #621 (781b6f6)
  • picker: added undo picker to navigate the undo tree. Closes #638 (5c45f1c)
  • picker: added support for item.resolve that gets called if needed during list rendering / preview (b0d3266)
  • terminal: allow overriding default shell. Closes #450 (3146fd1)
  • terminal: close terminals on ExitPre. Fixes #419 (2abf208)

Bug Fixes

  • dashboard: added optional filter for recent files (32cd343)
  • debug.run: schedule only nvim_buf_set_extmark in on_print (#425) (81572b5)
  • indent: use correct hl based on indent. Fixes #422 (627af73)
  • input: put the cursor right after the default prompt (#549) (f904481)
  • notifier: added SnacksNotifierMinimal. Closes #410 (daa575e)
  • notifier: win:close instead of win:hide (f29f7a4)
  • picker.buffers: add buf number to text (70106a7)
  • picker.buffer: unselect on delete. Fixes #653 (0ac5605)
  • picker.grep: correctly insert args from pattern. See #601 (8601a8c)
  • picker.grep: debug (f0d51ce)
  • picker.lsp.symbols: only include filename for search with workspace symbols (eb0e5b7)
  • picker.lsp: backward compat with Neovim 0.95 (3df2408)
  • picker.lsp: lazy resolve item lsp locations. Fixes #650 (d0a0046)
  • picker.preview: disable relativenumber by default. Closes #664 (384b9a7)
  • picker.preview: off-by-one for cmd output (da5556a)
  • picker.preview: reset before notify (e50f2e3)
  • picker.undo: disable number and signcolumn in preview (40cea79)
  • picker.util: item.resolve for nil item (2ff21b4)
  • picker.util: relax pattern for args (6b7705c)
  • scope: parse treesitter injections. Closes #430 (985ada3)
  • statusline: fix status line cache key (#656) (af55934)
  • win: always close created scratch buffers when win closes (abd7e61)
  • zen: properly handle close (920a9d2)
  • zen: sync cursor with parent window (#547) (ba45c28), closes #539

Performance Improvements

  • picker: fixed some issues with closed pickers not always being garbage collected (eebf44a)

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)

2.12.0 (2025-01-05)

Features

  • debug: system & memory metrics useful for debugging (cba16bd)
  • input: disable completion engines in input (37038df)
  • scope: disable treesitter blocks by default (8ec6e6a)
  • statuscolumn: allow changing the marks hl group. Fixes #390 (8a6e5b9)
  • util: Snacks.util.ref (7383eda)
  • util: throttle (737980d)
  • win: Snacks.win:border_size (4cd0647)
  • win: Snacks.win:redraw (0711a82)
  • win: Snacks.win:scroll (a1da66e)
  • win: allow setting desc for window actions (402494b)
  • win: better dimension calculation for windows (use by upcoming layouts) (cc0b528)
  • win: top,right,bottom,left borders (320ecbc)

Bug Fixes

  • dashboard: hash dashboard terminal section caching key to support long commands (#381) (d312053)
  • debug: make debug.inpect work in fast events (b70edc2)
  • debug: make sure debug can be required in fast events (6cbdbb9)
  • indent: allow rendering over blank lines. Fixes #313 (766e671)
  • indent: better way to deal with breakindent. Fixes #329 (235427a)
  • indent: breakdinent (972c61c)
  • indent: correct calculation of partial indent when leftcol > 0 (6f3cbf8)
  • indent: do animate check in bufcall (c62e7a2)
  • indent: don't render scopes in closed folds. Fixes #352 (94ec568)
  • indent: off-by-one for indent guide hl group (551e644)
  • indent: repeat_linbebreak only works on Neovim >= 0.10. Fixes #353 (b93201b)
  • indent: simplify indent guide logic and never overwrite blanks. Fixes #334 (282be8b)
  • indent: typo for underline (66cce2f)
  • indent: use space instead of full blank for indent offset. See #313 (58081bc)
  • input: change buftype to prompt. Fixes #350 (2990bf0)
  • input: make sure to show input window with a higher zindex of the parent window (if float) (3123e6e)
  • input: refactor for win changes and ensure modified=false. Fixes #403. Fixes #402 (8930630)
  • input: use correct highlight group for input prompt (#328) (818da33)
  • lazygit: enable boolean values in config (#377) (ec34684)
  • notifier: open history window with correct style (#307) (d2b5680)
  • notifier: rename style notification.history -> notification_history (fd9ef30)
  • scope: allow treesitter scopes when treesitter highlighting is disabled. See #231 (58ae580)
  • scope: don't expand to invalid range. Fixes #339 (1244305)
  • scope: properly caluclate start indent when cursor=true for indent scopes. See #5068 (e63fa7b)
  • scope: use virtcol for calculating scopes at the cursor (6a36f32)
  • scroll: check for invalid window. Fixes #340 (b6032e8)
  • scroll: don't animate when leaving cmdline search with incsearch enabled. Fixes #331 (fc0a99b)
  • util: throttle now autonatically schedules when in fast event (9840331)
  • win: backdrop having bright cell at top right (#400) (373d0f9)
  • win: don't enter when focusable is false (ca233c7)
  • win: force-close any buffer that is not a file (dd50e53)
  • win: unset winblend when transparent (0617e28)
  • words: only check modes for is_enabled when needed (80dcb88)
  • zen: set zindex to 40, lower than hover (45). Closes #345 (05f4981)

2.11.0 (2024-12-15)

Features

  • indent: properly handle continuation indents. Closes #286 (f2bb7fa)
  • input: allow configuring position of prompt and icon (d0cb707)
  • notifier: notification history option (#297) (8f56e19)
  • scope: Scope:inner for indent based and treesitter scopes (8a8b1c9)
  • scope: added __tostring for debugging (94e0849)
  • scope: added opts.cursor to take cursor column into account for scope detection. (defaults to true). Closes #282 (54bc6ba)
  • scope: text objects now use treesitter scopes by default. See #231 (a953697)
  • statuscolumn: allow left/right to be a function. Closes #288 (cb42b95)
  • util: on_key handler (002d5eb)
  • win: win:line() (17494ad)

Bug Fixes

  • dashboard: telescope can't be run from a vim.schedule for some reason (dcc5338)
  • indent: opts.indent.blank now defaults to listchars.space. Closes #291 (31bc409)
  • indent: fixup (14d71c3)
  • indent: honor lead listchar (#303) (7db0cc9)
  • indent: honor listchars and list when blank is nil. Closes #296 (0e150f5)
  • indent: lower priorities of indent guides (7f66818)
  • input: check if parent win still exists. Fixes #287 (db768a5)
  • input: go back to insert mode if input was started from insert mode. Fixes #287 (5d00e6d)
  • input: missing padding if neither title nor icon positioned left (#292) (97542a7)
  • input: open input window with noautocmd=true set. Fixes #287 (26b7d4c)
  • scope: add indent to __eq (be2779e)
  • scope: better treesitter scope edge detection (b7355c1)
  • scroll: check mousescroll before spamming (3d67bda)
  • util: on_key compat with Neovim 0.9 (effa885)

2.10.0 (2024-12-13)

Features

  • animate: add done to animation object (ec73346)
  • lazygit: respect existing LG_CONFIG_FILE when setting config paths (#208) (ef114c0)
  • scroll: added spamming detection and disable animations when user is spamming keys :) (c58605f)
  • scroll: improve smooth scrolling when user is spamming keys (5532ba0)
  • zen: added on_open / on_close callbacks (5851de1)
  • zen: make zen/zoom mode work for floating windows. Closes #5028 (05bb957)

Bug Fixes

  • dashboard: set cursor to non-hidden actionable items. Fixes #273 (7c7b18f)
  • indent: fix rendering issues when only_scope is set for indent. Fixes #268 (370703d)
  • indent: only render adjusted top/bottom. See #268 (54294cb)
  • notifier: set modifiable=false for notifier history (12e68a3)
  • scope: change from/to selection to make more sense (e8dd394)
  • scope: possible loop? See #278 (ac6a748)
  • scratch: normalize filename (5200a8b)
  • scroll: don't animate scroll distance 1 (a986851)

2.9.0 (2024-12-12)

Features

  • animate: allow disabling all animations globally or per buffer (25c290d)
  • animate: allow toggling buffer-local / global animations with or without id (50912dc)
  • dashboard: add dashboard startuptime icon option (#214) (63506d5)
  • indent: animation styles out, up_down, up, down (0a9b013)
  • indent: don't animate indents when new scope overlaps with the previous one, taking white-space into account. See #264 (9b4a859)
  • indent: move animate settings top-level, since they impact both scope and chunk (baf8c18)
  • toggle: added zoom toggle (3367705)
  • toggle: return toggle after map (4f22016)
  • util: get var either from buffer or global (4243912)

Bug Fixes

  • indent: make sure cursor line is in scope for the out style. Fixes #264 (39c009f)
  • indent: when at edge of two blocks, prefer the one below. See #231 (2457d91)

2.8.0 (2024-12-11)

Features

  • animate: added animate plugin (971229e)
  • animate: added animation context to callbacks (1091280)
  • dim: added dim plugin (4dda551)
  • indent: added indent plugin (2c4021c)
  • indent: allow disabling indent guides. See #230 (4a4ad63)
  • indent: allow disabling scope highlighting (99207ee)
  • indent: optional rendering of scopes as chunks. Closes #230 (109a0d2)
  • input: added input snack (70902ee)
  • profiler: on_close can now be a function (48a5879)
  • scope: added scope plugin (63a279c)
  • scope: fill the range for treesitter scopes (38ed01b)
  • scope: text objects and jumping for scopes. Closes #231 (8faafb3)
  • scroll: added smooth scrolling plugin (38a5ccc)
  • scroll: allow disabling scroll globally or for some buffers (04f15c1)
  • scroll: use on_key to track mouse scrolling (26c3e49)
  • scroll: user virtual columns while scrolling (fefa6fd)
  • snacks: zen mode (c509ea5)
  • toggle: add which-key mappings when which-key loads (c9f494b)
  • toggle: add zen mode toggle (#243) (9454ba3)
  • toggle: added toggle for smooth scroll (aeec09c)
  • toggle: toggles for new plugins (bddae83)
  • util: added Snacks.util.on_module to execute a callback when a module loads (or immediately when already loaded) (f540b7b)
  • util: set_hl no longer sets default=true when not specified (d6309c6)
  • win: added actions to easily combine actions in keymaps (46362a5)
  • win: allow configuring initial text to display in the buffer (003ea8d)
  • win: allow customizing backdrop window (cdb495c)
  • win: col/row can be negative calculated on height/end of parent (bd49d2f)
  • words: added toggle for words (bd7cf03)
  • zen: zz when entering zen mode (b5cb90f)
  • zen: added zen plugin (afb89ea)
  • zen: added zoom indicator (8459e2a)

Bug Fixes

  • compat: fixes for Neovim < 0.10 (33fbb30)
  • dashboard: add filetype to terminal sections (#215) (9c68a54)
  • dashboard: don't open with startup option args (#222) (6b78172)
  • dashboard: override foldmethod (47ad2a7)
  • debug: schedule wrap print (3a107af)
  • dim: check if win still exist when animating. Closes #259 (69018d0)
  • health: health checks (72eba84)
  • indent: always align indents with shiftwidth (1de6c15)
  • indent: always render underline regardless of leftcol (4e96e69)
  • indent: always use scope hl to render underlines. Fixes #234 (8723945)
  • indent: better way of dealing with indents on blank lines. See #246 (c129683)
  • indent: expand scopes to inlude end_pos based on the end_pos scope. See #231 (897f801)
  • indent: gradually increase scope when identical to visual selection for text objects (bc7f96b)
  • indent: properly deal with empty lines when highlighting scopes. Fixes #246. Fixes #245 (d04cf1d)
  • indent: set max_size=1 for textobjects and jumps by default. See #231 (5f217bc)
  • indent: set shiftwidth to tabstop when 0 (782b6ee)
  • indent: underline. See #234 (51f9569)
  • indent: use correct config options (5352198)
  • init: enabled check (519a45b)
  • init: set input disabled by default. Fixes #227 (e9d0993)
  • input: health check. Fixes #239 (acf743f)
  • input: set current win before executing callback. Fixes #257 (c17c1b2)
  • input: set current win in vim.schedule so that it works properly from expr keymaps. Fixes #257 (8c2410c)
  • input: update window position in the context of the parent window to make sure position=cursor works as expected. Fixes #254 (6c27ff2)
  • input: various minor visual fixes (#252) (e01668c)
  • notifier: toggle show history. Fixes #197 (8b58b55)
  • scope: better edge detection for treesitter scopes (6b02a09)
  • scope: return nil when buffer is empty for indent scope (4aa378a)
  • scope: take edges into account for min_size (e2e6c86)
  • scope: typo for textobject (0324125)
  • scroll: better toggle (3dcaad8)
  • scroll: disable scroll by default for terminals (7b5a78a)
  • scroll: don't animate invalid windows (41ca13d)
  • scroll: don't bother setting cursor when scrolloff is larger than half of viewport. Fixes #240 (0ca9ca7)
  • scroll: move scrollbind check to M.check (7211ec0)
  • scroll: only animate the current window when scrollbind is active (c9880ce)
  • scroll: set cursor to correct position when target is reached. Fixes #236 (4209929)
  • scroll: use actual scrolling to perform the scroll to properly deal with folds etc. Fixes #236 (280a09e)
  • win: ensure win is set when relative=win (5d472b8)
  • words: incorrect enabled check. Fixes #247 (9c8f3d5)
  • zen: properly close existing zen window on toggle (14da56e)
  • zen: return after closing. Fixes #259 (b13eaf6)
  • zen: when Normal is transparent, show an opaque transparent backdrop. Fixes #235 (d93de7a)

Performance Improvements

  • animate: check for animation easing updates ouside the main loop and schedule an update when needed (03c0774)
  • input: lazy-load vim.ui.input (614df63)
  • util: redraw helpers (9fb88c6)

2.7.0 (2024-12-07)

Features

  • bigfile: disable matchparen, set foldmethod=manual, set conceallevel=0 (891648a)
  • dashbard: explude files from stdpath data/cache/state in recent files and projects (b99bc64)
  • dashboard: allow items to be hidden, but still create the keymaps etc (7a47eb7)
  • dashboard: allow terminal sections to have actions. Closes #189 (78f44f7)
  • dashboard: hide title if section has no items. Fixes #184 (d370be6)
  • dashboard: make buffer not listed (#191) (42d6277)
  • dashboard: when a section has a title, use that for action and key. If not put it in the section. Fixes #189 (045a17d)
  • debug: added Snacks.debug.run() to execute the buffer or selection with inlined print and errors (e1fe4f5)
  • gitbrowse: added line_count. See #186 (f03727c)
  • gitbrowse: opts.notify (a856952)
  • gitbrowse: url pattern can now also be a function (0a48c2e)
  • notifier: reverse notif history by default for show_history (5a50738)
  • scratch: opts.ft can now be a function and defaults to the ft of the current buffer or markdown (652303e)
  • scratch: change keymap to execute buffer/selection to &lt;cr&gt; (7db0ed4)
  • scratch: use Snacks.debug.run() to execute buffer/selection (32c46b4)
  • snacks: added Snacks.profiler (8088799)
  • snacks: added new scratch snack (1cec695)
  • toggle: toggles for the profiler (999ae07)
  • util: encode/decode a string to be used as a filename (e6f6397)
  • util: simple function to get an icon (7c29848)
  • win: added opts.fixbuf to configure fixed window buffers (1f74d1c)
  • win: backdrop can now be made opaque (681b9c9)
  • win: width/height can now be a function (964d7ae)

Bug Fixes

  • dashboard: calculate proper offset when item has no text (6e3b954)
  • dashboard: prevent possible duplicate recent files. Fixes #171 (93b254d)
  • dashboard: take hidden items into account when calculating padding. Fixes #194 (736ce44)
  • dashboard: take indent into account when calculating terminal width (cda695e)
  • dashboard: truncate file names when too long. Fixes #183 (4bdf7da)
  • debug: better way of getting visual selection. See #190 (af41cb0)
  • gitbrowse: opts.notify (2436557)
  • gitbrowse: removed debug (f894952)
  • gitbrowse: use line_start and line_end directly in patterns. Closes #186 (adf0433)
  • profiler: startup opts (85f5132)
  • scratch: always set filetype on the buffer. Fixes #179 (6db50cf)
  • scratch: floating window title/footer hl groups (6c25ab1)
  • scratch: make sure win.opts.keys exists. See #190 (50bd510)
  • scratch: sort keys. Fixes #193 (0df7a08)
  • scratch: weirdness with visual selection and inclusive/exclusive. See #190 (f955f08)
  • statuscolumn: add virtnum and relnum to cache key. See #198 (3647ca7)
  • statuscolumn: don't show signs on virtual ligns. See #198 (f5fb59c)
  • util: better support for nvim-web-devicons (ddaa2aa)
  • util: make sure to always return an icon (ca7188c)
  • win: allow resolving nil window option values. Fixes #179 (0043fa9)
  • win: don't force close modified buffers (d517b11)
  • win: update opts.wo for padding instead of vim.wo directly (446f502)
  • win: update window local options when the buffer changes (630d96c)

Performance Improvements

  • dashboard: properly cleanup autocmds (8e6d977)
  • statuscolumn: optimize caching (d972bc0)

2.6.0 (2024-11-29)

Features

  • config: allow overriding resolved options for a plugin. See #164 (d730a13)
  • config: make it easier to use examples in your config (6e3cb7e)
  • dashboard: allow passing win=0, buf=0 to use for the dashboard instead of creating a new window (417e07c)
  • dashboard: always render cache even when expired. Then refresh when needed. (59f8f0d)
  • gitbrowse: add Bitbucket URL patterns (#163) (53441c9)
  • gitbrowse: open commit when word is valid hash (#161) (59c8eb3)
  • health: check that snacks.nvim plugin spec is correctly setup (2c7b4b7)
  • notifier: added history opts.reverse (bebd7e7)
  • win: go back to the previous window, when closing a snacks window (51996df)

Bug Fixes

  • config: check correct var for single config result. Fixes #167 (45fd0ef)
  • dashboard: fixed mini.sessions.read. Fixes #144 (4e04b70)
  • dashboard: terminal commands get 5 seconds to complete to trigger caching (f83a7b0)
  • git: make git.get_root work for work-trees and cache git root checks. Closes #136. Fixes #115 (9462273)
  • init: use rawget when loading modules to prevent possible recursive loading with invalid module fields (d0794dc)
  • notifier: always show notifs directly when blocking (0c7f7c5)
  • notifier: gracefully handle E565 errors (0bbc9e7)
  • statuscolumn: bad copy/paste!! Fixes #152 (7564a30)
  • statuscolumn: never error (in case of E565 for example). Fixes #150 (cf84008)
  • win: handle E565 errors on close (0b02044)

Performance Improvements

  • statuscolumn: some small optims (985be4a)

2.5.0 (2024-11-22)

Features

  • dashboard: added Snacks.dashboard.update(). Closes #121 (c770ebe)
  • debug: profile title (0177079)
  • notifier: show indicator when notif has more lines. Closes #112 (cf72c06)
  • terminal: added Snacks.terminal.get(). Closes #122 (7f63d4f)
  • util: get hl color (b0da066)
  • util: set_hl managed (9642695)

Bug Fixes

  • dashboard: vim.pesc for auto keys. Fixes #134 (aebffe5)
  • dashboard: align should always set width even if no alignment is needed. Fixes #137 (54d521c)
  • dashboard: better git check for advanced example. See #126 (b4a293a)
  • dashboard: open fullscreen on relaunch (853240b)
  • dashboard: randomseed needs argument on stable (c359164)
  • debug: include main in caller (33d31af)
  • git: get_root should work for non file buffers (723d8ea)
  • notifier: hide existing nofif if higher prio notif arrives and no free space for lower notif (7a061de)
  • quickfile: don't load when bigfile detected. Fixes #116 (978424c)
  • sessions: change persisted.nvim load session command (#118) (26bec4b)
  • terminal: hide on q instead of close (30a0721)

2.4.0 (2024-11-19)

Features

  • dashboard: hide tabline and statusline when loading during startup (75dc74c)
  • dashboard: when an item is wider than pane width and only one pane, then center it. See #108 (c15953e)
  • gitbrowse: open also visual selection range (#89) (c29c0d4)
  • win: detect alien buffers opening in managed windows and open them somewhere else. Fixes #110 (9c0d2e2)

Bug Fixes

  • dashboard: always hide cursor (68fcc25)
  • dashboard: check session managers in order (1acea8b)
  • dashboard: fix race condition when sending data while closing (4188446)
  • dashboard: minimum one pane even when it doesn't fit the screen. Fixes #104 (be8feef)
  • dashboard: only check for piped stdin when in TUI. Ignore GUIs (3311d75)
  • dashboard: remove weird preset.keys function override. Just copy defaults if you want to change them (0b9e09c)

2.3.0 (2024-11-18)

Features

  • added dashboard health checks (deb00d0)
  • dashboard: added support for mini.sessions (c8e209e)
  • dashboard: allow opts.preset.keys to be a function with default keymaps as arg (b7775ec)
  • dashboard: automatically detect streaming commands and don't cache those. tty-clock, cmatrix galore. Fixes #100 (082beb5)
  • notifier: timeout=0 keeps the notif visible till manually hidden. Closes #102 (0cf22a8)

Bug Fixes

  • dashboard: check uis for headless and stdin_tty. Fixes #97. Fixes #98 (4ff08f1)
  • dashboard: debug output (c0129da)
  • dashboard: disable vim.wo.colorcolumn (#101) (43b4abb)
  • dashboard: notify on errors. Fixes #99 (2ae4108)
  • debug: MYVIMRC is not always set (735f4d8)
  • notifier: also handle timeout = false / timeout = true. See #102 (99f1f49)

2.2.0 (2024-11-18)

Features

  • dashboard: added new dashboard snack (#77) (d540fa6)
  • debug: Snacks.debug.trace and Snacks.debug.stats for hierarchical traces (like lazy profile) (b593598)
  • notifier: global keep when in cmdline (73b1e20)

2.1.0 (2024-11-16)

Features

  • notifier: allow specifying a minimal level to show notifications. See #82 (ec9cfb3)
  • terminal: when terminal terminates too quickly, don't close the window and show an error message. See #80 (313954e)

Bug Fixes

2.0.0 (2024-11-14)

⚠ BREAKING CHANGES

  • config: plugins are no longer enabled by default. Pass any options, or set enabled = true.

Features

  • config: plugins are no longer enabled by default. Pass any options, or set enabled = true. (797708b)
  • health: added health checks to plugins (1c4c748)
  • terminal: added Snacks.terminal.colorize() to replace ansi codes by colors (519b684)

Bug Fixes

  • lazygit: not needed to use deprecated fallback for set_hl (14f076e)
  • notifier: disable colorcolumn by default (#66) (7627b81)
  • statuscolumn: ensure Snacks exists when loading before plugin loaded (97e0e1e)
  • terminal: properly deal with args in vim.o.shell. Fixes #69 (2ccb70f)
  • win: take border into account for window position (#64) (f0e47fd)

1.2.0 (2024-11-11)

Features

  • bufdelete: added wipe option. Closes #38 (5914cb1)
  • lazygit: allow overriding extra lazygit config options (d2f4f19)
  • notifier: added refresh option configurable (df8c9d7)
  • notifier: added backward compatibility for nvim-notify's replace option (9b9777e)
  • words: add fold_open and set_jump_point config options (#31) (5dc749b)

Bug Fixes

  • added compatibility with Neovim >= 0.9.4 (4f99818)
  • bufdelete: opts.wipe. See #38 (0efbb93)
  • notifier: take title/footer into account to determine notification width. Fixes #54 (09a6f17)
  • notifier: update layout on vim resize (7f9f691)
  • terminal: gf properly opens file (#45) (340cc27)
  • terminal: pass a list of strings to termopen to prevent splitting. Fixes #59 (458a84b)

Performance Improvements

  • notifier: only force redraw for new windows and for updated while search is not active. Fixes #52 (da86b1d)
  • win: don't try highlighting snacks internal filetypes (eb8ab37)
  • win: prevent treesitter and syntax attaching to scratch buffers (cc80f6d)

1.1.0 (2024-11-08)

Features

  • bufdelete: optional filter and shortcuts to delete all and other buffers. Closes #11 (71a2346)
  • debug: simple log function to quickly log something to a debug.log file (fc2a8e7)
  • docs: docs for highlight groups (#13) (964cd6a)
  • gitbrowse: choose to open repo, branch or file. Closes #10. Closes #17 (92da87c)
  • notifier: added history to notifier. Closes #14 (65d8c8f)
  • notifier: added option to show notifs top-down or bottom-up. Closes #9 (080e0d4)
  • notifier: allow overriding hl groups per notification (8bcb2bc)
  • notifier: allow setting dynamic options (36e9f45)
  • win: added default hl groups for windows (8c0f10b)
  • win: allow setting ft just for highlighting without actually changing the filetype (cad236f)
  • win: disable winblend when colorscheme is transparent. Fixes #26 (12077bc)
  • win: equalize splits (e982aab)
  • win: util methods to handle buffer text (d3efb92)
  • win: win:focus() (476fb56)
  • words: jump optionally shows notification with reference count (#23) (6a3f865)
  • words: configurable mode to show references. Defaults to n, i, c. Closes #18 (d079fbf)

Bug Fixes

  • config: deepcopy config where needed (6c76f91)
  • config: fix reading config during setup. Fixes #2 (0d91a4e)
  • notifier: re-apply winhl since level might have changed with a replace (b8cc93e)
  • notifier: set default conceallevel=2 (662795c)
  • notifier: try to keep layout when replacing notifs (9bdb24e)
  • terminal: dont overwrite user opts (0b08d28)
  • terminal: user options (334895c)
  • win: better winfixheight and winfixwidth for splits (8be14c6)
  • win: disable sidescroloff in minimal style (107d10b)
  • win: dont center float when relative="cursor" (4991e34)
  • win: properly resolve user styles as last (cc5ee19)
  • win: set border to none for backdrop windows (#19) (f5602e6)
  • win: simpler way to add buffer padding (f59237f)
  • win: update win/buf opts when needed (5fd9c42)
  • words: disable notify_jump by default (9576081)

Performance Improvements

  • notifier: index queue by id (5df4394)
  • notifier: optimize layout code (8512896)
  • notifier: skip processing queue when free space is smaller than min height (08190a5)
  • win: skip events when setting buf/win options. Trigger FileType on BufEnter only if needed (61496a3)

1.0.0 (2024-11-06)

Features

  • added debug (6cb43f6)
  • added git (f0a9991)
  • added gitbrowse (a638d8b)
  • added lazygit (fc32619)
  • added notifier (44011dd)
  • added notify (f4e0130)
  • added toggle (28c3029)
  • better buffer/window vars for terminal and float (1abce78)
  • bigfile (8d62b28)
  • bigfile: show message when bigfile was detected (fdc0d3d)
  • bufdelete (cc5353f)
  • config & setup (c98c4c0)
  • config: get config for snack with defaults and custom opts (b3d08be)
  • debug: added simple profile function (e1f736d)
  • docs: better handling of overloads (038b283)
  • ensure Snacks global is available when not using setup (f0458ba)
  • float (d106107)
  • float: added support for splits (977a3d3)
  • float: better key mappings (a171a81)
  • initial commit (63a24f6)
  • notifier: add 1 cell left/right padding and make wrapping work properly (efc9699)
  • notifier: added global keep config option (f32d82d)
  • notifier: added minimal style (b29a6d5)
  • notifier: allow closing notifs with q (97acbbb)
  • notifier: allow config of default filetype (8a96888)
  • notifier: enable wrapping by default (d02aa2f)
  • notifier: keep notif open when it's the current window (1e95800)
  • quickfile (d0ce645)
  • rename (fa33688)
  • statuscolumn (99b1700)
  • terminal (e6cc7c9)
  • terminal: allow to override the default terminal implementation (like toggleterm) (11c9ee8)
  • terminal: better defaults and winbar (7ceeb47)
  • terminal: better double esc to go to normal mode (a4af729)
  • win: better api to deal with sizes (ac1a50c)
  • win: custom views (12d6f86)
  • words (73445af)

Bug Fixes

  • config: don't change defaults in merge (6e825f5)
  • config: merging of possible nil values (f5bbb44)
  • debug: exclude vimrc from callers (8845a6a)
  • float: don't use backdrop for splits (5eb64c5)
  • float: only set default filetype if no ft is set (66b2525)
  • float: proper closing of backdrop (a528e77)
  • notifier: modifiable (fd57c24)
  • notifier: modifiable = false (9ef9e69)
  • notifier: show notifier errors with nvim_err_writeln (e8061bc)
  • notifier: sorting (d9a1f23)
  • simplify setup (787b53e)
  • win: backdrop (71dd912)
  • win: better implementation of window styles (previously views) (6681097)
  • win: dont error when augroup is already deleted (8c43597)
  • win: dont update win opt noautocmd (a06e3ed)
  • win: no need to set EndOfBuffer winhl (7a7f221)
  • win: use syntax as fallback for treesitter (f3b69a6)

Performance Improvements

  • win: set options with eventignore and handle ft manually (80d9a89)