github-actions[bot]
fc84ed42a4
chore(main): release 2.26.0 ( #2335 )
...
🤖 I have created a release *beep* *boop*
---
##
[2.26.0](https://github.com/folke/snacks.nvim/compare/v2.25.0...v2.26.0 )
(2025-10-25)
### Features
* **explorer:** add cross-platform trash support
([ed08ef1 ](ed08ef1a63 ))
* **keymap:** add filetype and LSP-aware keymap management
([0bf34af ](0bf34afe34 ))
* **util:** add LSP utility module with dynamic capability handlers
([7a63ba5 ](7a63ba5d37 ))
* **win:** add `SnacksWinSeparator` to default `win.wo.winhighlight`
([#2340 ](https://github.com/folke/snacks.nvim/issues/2340 ))
([869709d ](869709dd65 )),
closes [#2336 ](https://github.com/folke/snacks.nvim/issues/2336 )
* **win:** add default *Snacks* prefixed `WinSeparator`
([#2338 ](https://github.com/folke/snacks.nvim/issues/2338 ))
([381265b ](381265b543 )),
closes [#2336 ](https://github.com/folke/snacks.nvim/issues/2336 )
### Bug Fixes
* **dahboard:** do full terminal reset when receiving first output and
displayed cached contents
([c952834 ](c9528341a6 ))
* **dashboard:** don't write to closed terminal buffer
([f75eaf1 ](f75eaf1e18 ))
* **dashboard:** work-around for jobstart+pty issue where not all output
is processed before exit. Closes
[#1706 ](https://github.com/folke/snacks.nvim/issues/1706 )
([4d776bd ](4d776bdd1d ))
* **explorer:** macos has `trash` pre-installed, so no need to try
`osascript` and move to first. Closes
[#2349 ](https://github.com/folke/snacks.nvim/issues/2349 )
([d569072 ](d569072b2e ))
* **image:** detach image when reloading image file. Closes
[#2343 ](https://github.com/folke/snacks.nvim/issues/2343 )
([7bf4175 ](7bf4175588 ))
* **image:** increase timeout for querying the terminal. Closes
[#2344 ](https://github.com/folke/snacks.nvim/issues/2344 )
([4122143 ](4122143240 ))
* **image:** let healthcheck wait till terminal detection is done
([b029511 ](b029511abb ))
* **image:** only attach to a buffer once. Closes
[#2343 ](https://github.com/folke/snacks.nvim/issues/2343 )
([6f72643 ](6f72643323 ))
* **image:** work around tmux extended-keys breaking TermResponse.
Closes [#2332 ](https://github.com/folke/snacks.nvim/issues/2332 )
([e93dcfd ](e93dcfdf39 ))
* **layout:** provide parent win width/height when relative to win
([#2346 ](https://github.com/folke/snacks.nvim/issues/2346 ))
([602393a ](602393aed2 ))
* **picker:** fix race condition causing "Finder yielded after done"
error. Closes [#2327 ](https://github.com/folke/snacks.nvim/issues/2327 )
([c9ccbe5 ](c9ccbe5617 ))
* **picker:** set min file width to 40
([69417ac ](69417ac681 ))
* **win:** use `sbuffer` instead of `split` for split windows
([bbd6d42 ](bbd6d42a97 ))
### Performance Improvements
* **picker:** don't use treesitter string parser, since a change in
nightly creates thousands of unlisted buffers in that case
([ad6c0a5 ](ad6c0a5e54 ))
* **picker:** re-use existing string parsers per language to prevent
needing to create new parsers
([efa304a ](efa304a078 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-25 16:54:50 +02:00
github-actions[bot]
d1eaa30b1b
chore(main): release 2.25.0 ( #2329 )
...
🤖 I have created a release *beep* *boop*
---
##
[2.25.0](https://github.com/folke/snacks.nvim/compare/v2.24.0...v2.25.0 )
(2025-10-23)
### Features
* **notifier:** added `gap` option. Closes
[#2331 ](https://github.com/folke/snacks.nvim/issues/2331 )
([b1acbb0 ](b1acbb0fcc ))
* **select:** allow configuring options for specific vim.ui.select kinds
([bca5b05 ](bca5b05838 ))
* **snacks:** added `Snacks.version`. auto updated by the release
workflow
([a283beb ](a283beb6dc ))
### Bug Fixes
* **dashboard:** fix issue with opening file at location due to
splitkeep and restoring laststatus/showtabline
([1a2b34d ](1a2b34dffd ))
* **scroll:** stop animations when buf/changedtick changes
([a42b376 ](a42b3761f7 ))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please ). See
[documentation](https://github.com/googleapis/release-please#release-please ).
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-23 21:30:03 +02:00
Folke Lemaitre
a283beb6dc
feat(snacks): added Snacks.version. auto updated by the release workflow
2025-10-23 15:35:33 +02:00
Sassan Haradji
9df47bce6a
feat(image): add icns support ( #2120 )
...
## Description
Add support for icns using sips
## Screenshots
<img width="708" height="910" alt="image"
src="https://github.com/user-attachments/assets/9ca85b23-e020-4b05-9aeb-6d40666d71b6 "
/>
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-21 08:37:14 +02:00
Folke Lemaitre
448a55a0e3
fix(compat): correct Neovim 0.11 check
2025-02-20 07:00:42 +01:00
Folke Lemaitre
63277f96c9
refactor(compat): use svim.islist
2025-02-20 07:00:05 +01:00
Folke Lemaitre
bc902f7032
feat(compat): added svim, a compatibility layer for Neovim. Closes #1321
2025-02-20 06:59:44 +01:00
Folke Lemaitre
39bf5131c4
feat(image): enabled pdf previews
2025-02-17 17:17:56 +01:00
Folke Lemaitre
b5b0995e8b
style(image): luals
2025-02-17 16:09:41 +01:00
Folke Lemaitre
001f3002ca
feat(image): markdown inline image preview. opts.image must be enabled and terminal needs support
2025-02-13 18:03:33 +01:00
Folke Lemaitre
7d655fe09d
feat(image): use kitty's unicode placeholder images
2025-02-10 08:49:47 +01:00
Folke Lemaitre
4e4e63048e
feat: added new image snacks plugin for the kitty graphics protocol
2025-02-09 22:35:13 +01:00
Folke Lemaitre
670c67366f
feat(explorer): new explorer module with shortcut to start explorer picker and netrw replacement functionlity
2025-01-31 08:31:49 +01:00
Folke Lemaitre
9986b47707
fix(picker.config): better config merging and tests
2025-01-17 20:36:33 +01:00
Folke Lemaitre
2d4a0b594a
fix(config): dont exclude metatables
2025-01-16 22:16:32 +01:00
Folke Lemaitre
75eb16fd9c
fix(config): better vim.tbl_deep_extend that prevents issues with list-like tables. Fixes #554
2025-01-16 21:42:04 +01:00
Folke Lemaitre
559d6c6bf2
feat(snacks): added snacks.picker ( #445 )
...
## Description
More info coming tomorrow.
In short:
- very fast. pretty much realtime filtering/sorting in huge repos (like
1.7 million files)
- extensible
- easy to customize the layout (and lots of presets) with
`snacks.layout`
- simple to create custom pickers
- `vim.ui.select`
- lots of builtin pickers
- uses treesitter highlighting wherever it makes sense
- fast lua fuzzy matcher which supports the [fzf
syntax](https://junegunn.github.io/fzf/search-syntax/ ) and additionally
supports field filters, like `file:lua$ 'function`
There's no snacks picker command, just use lua.
```lua
-- all pickers
Snacks.picker()
-- run files picker
Snacks.picker.files(opts)
Snacks.picker.pick("files", opts)
Snacks.picker.pick({source = "files", ...})
```
<!-- Describe the big picture of your changes to communicate to the
maintainers
why we should accept this pull request. -->
## Todo
- [x] issue with preview loc not always correct when scrolling fast in
list (probably due to `snacks.scroll`)
- [x] `grep` (`live_grep`) is sometimes too fast in large repos and can
impact ui rendering. Not very noticeable, but something I want to look
at.
- [x] docs
- [x] treesitter highlights are broken. Messed something up somewhere
## Related Issue(s)
<!--
If this PR fixes any issues, please link to the issue here.
- Fixes #<issue_number>
-->
## Screenshots
<!-- Add screenshots of the changes if applicable. -->
2025-01-14 22:53:59 +01:00
Valentin Degenne
c11b74c676
feat(styles): exportable styles ( #306 )
...
To allow syntax like:
```lua
local mystyle = Snacks.config.style('...')
-- somewhere else
Snacks.win({
style = mystyle
})
```
and improve code navigation (e.g. jumping using `gd`, as opposed to
searching string, or not being sure of the exact name, ...)
2024-12-15 19:08:04 +01:00
Folke Lemaitre
b41320c6b4
test: added scope tests
2024-12-14 21:50:19 +01:00
Folke Lemaitre
b0f5b74f4a
style: annotations
2024-12-13 23:57:50 +01:00
Folke Lemaitre
2a664b615f
ci: try making config options optional
2024-12-13 15:58:54 +01:00
Folke Lemaitre
8faafb3483
feat(scope): text objects and jumping for scopes. Closes #231
2024-12-11 22:17:59 +01:00
Folke Lemaitre
acf743fcfc
fix(input): health check. Fixes #239
2024-12-10 19:38:40 +01:00
Folke Lemaitre
e9d099322f
fix(init): set input disabled by default. Fixes #227
2024-12-10 14:26:22 +01:00
Folke Lemaitre
614df63acf
perf(input): lazy-load vim.ui.input
2024-12-10 13:55:51 +01:00
Folke Lemaitre
70902eee9e
feat(input): added input snack
2024-12-10 13:55:51 +01:00
Folke Lemaitre
72eba84180
fix(health): health checks
2024-12-10 13:55:51 +01:00
Folke Lemaitre
01ab0fce21
refactor(init): cleanup code
2024-12-10 13:55:51 +01:00
Folke Lemaitre
519a45bfe5
fix(init): enabled check
2024-12-10 13:55:51 +01:00
Folke Lemaitre
38a5ccc3a6
feat(scroll): added smooth scrolling plugin
2024-12-10 13:55:51 +01:00
Folke Lemaitre
2c4021c466
feat(indent): added indent plugin
2024-12-10 13:55:51 +01:00
Folke Lemaitre
0194f18cfa
refactor: auto-gen plugin types
2024-12-10 13:55:51 +01:00
Folke Lemaitre
1cec695fef
feat(snacks): added new scratch snack
2024-12-01 09:08:03 +01:00
Folke Lemaitre
d0794dcf8e
fix(init): use rawget when loading modules to prevent possible recursive loading with invalid module fields
2024-11-29 07:37:49 +01:00
Folke Lemaitre
45fd0efe41
fix(config): check correct var for single config result. Fixes #167
2024-11-27 23:56:56 +01:00
Folke Lemaitre
d730a13b55
feat(config): allow overriding resolved options for a plugin. See #164
2024-11-27 21:43:15 +01:00
Folke Lemaitre
6e3cb7e53c
feat(config): make it easier to use examples in your config
2024-11-27 21:27:56 +01:00
Folke Lemaitre
deb00d0ddc
feat: added dashboard health checks
2024-11-18 19:16:54 +01:00
Folke Lemaitre
d540fa607c
feat(dashboard): added new dashboard snack ( #77 )
...
## Description
A new dashboard plugin that comes with sane defaults, and can be fully
customized to your liking.
## Screenshots





2024-11-18 16:25:17 +01:00
Folke Lemaitre
797708b038
feat(config)!: plugins are no longer enabled by default. Pass any options, or set enabled = true.
2024-11-14 23:56:37 +01:00
Folke Lemaitre
4f99818b0a
fix: added compatibility with Neovim >= 0.9.4
2024-11-09 15:38:43 +01:00
Folke Lemaitre
6c76f91398
fix(config): deepcopy config where needed
2024-11-06 22:36:37 +01:00
Folke Lemaitre
0d91a4e364
fix(config): fix reading config during setup. Fixes #2
2024-11-06 22:36:37 +01:00
Folke Lemaitre
9341f730d9
refactor(notifier): make notify a mod method instead of class method
2024-11-06 13:38:51 +01:00
Folke Lemaitre
66810971b9
fix(win): better implementation of window styles (previously views)
2024-11-06 10:56:08 +01:00
Folke Lemaitre
b4bd12c0ea
docs: better docs
2024-11-05 23:16:08 +01:00
Folke Lemaitre
44011ddf0d
feat: added notifier
2024-11-05 16:54:58 +01:00
Folke Lemaitre
0209e95f6d
style(toggle): types
2024-11-05 16:54:58 +01:00
Folke Lemaitre
28c3029699
feat: added toggle
2024-11-05 00:20:26 +01:00
Folke Lemaitre
f5bbb446ed
fix(config): merging of possible nil values
2024-11-04 22:22:36 +01:00