2.11.0 (2024-12-15)
- 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)
- dashboard: telescope can't be run from a
vim.schedule
for some reason (dcc5338) - indent:
opts.indent.blank
now defaults tolistchars.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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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 fromexpr
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)
- 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)
- 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
<cr>
(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)
- 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)
2.6.0 (2024-11-29)
- 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)
- 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)
- statuscolumn: some small optims (985be4a)
2.5.0 (2024-11-22)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- docs: typo in README.md (#78) (dc0f404)
- example: rename file. Closes #76 (00c7a67)
- notifier: no gap in border without title/icon (#85) (bc80bdc)
- win: delay when closing windows (#81) (d3dc8e7)
2.0.0 (2024-11-14)
- config: plugins are no longer enabled by default. Pass any options, or set
enabled = true
.
- 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)
- 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)
- 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
andset_jump_point
config options (#31) (5dc749b)
- 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)
- 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)
- bufdelete: optional filter and shortcuts to delete
all
andother
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 thefiletype
(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)
- 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)
- 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)
- 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)
- 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)
- win: set options with eventignore and handle ft manually (80d9a89)