Folke Lemaitre
69417ac681
fix(picker): set min file width to 40
2025-10-24 16:26:52 +02:00
folke
4d9666ec65
chore(build): auto-generate docs
CI / ci (push) Waiting to run
2025-10-24 08:58:18 +00:00
folke
463e147f75
chore(build): auto-generate markdown docs
2025-10-24 08:56:55 +00:00
Folke Lemaitre
bbd6d42a97
fix(win): use sbuffer instead of split for split windows
2025-10-24 10:55:41 +02:00
folke
e6b253944a
chore(build): auto-generate markdown docs
2025-10-24 07:44:21 +00:00
Folke Lemaitre
56bdc78505
refactor(scroll): convert to object-oriented state management
...
Converted scroll state management from procedural to OO approach:
- State is now a proper class with methods (get, stop, wo, valid, update, reset)
- Window options now managed per-state (_wo field) instead of global wo_backup table
- Centralized cleanup in State:stop() method
- Consolidated validation in State:valid() method
- Added is_enabled() helper for enable checks
- Simplified code throughout by using state methods
Benefits:
- Clearer state lifecycle management
- Better encapsulation and ownership
- Less code duplication
- More maintainable
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 09:43:19 +02:00
Folke Lemaitre
9b22e97647
refactor(picker.preview): centralize builtin/pager git options
2025-10-24 08:30:22 +02:00
Folke Lemaitre
b029511abb
fix(image): let healthcheck wait till terminal detection is done
2025-10-24 07:38:39 +02:00
folke
d129bc8a4d
chore(build): auto-generate docs
2025-10-24 05:27:51 +00:00
Folke Lemaitre
c9ccbe5617
fix(picker): fix race condition causing "Finder yielded after done" error. Closes #2327
...
The old code had a race condition where:
1. R:request() scheduled LSP request setup but immediately suspended
2. R:wait() checked #self.requests (still 0) and returned immediately
3. Finder completed and set running = false
4. Then scheduled function ran and LSP responses came back
5. Callbacks tried to yield items but finder was already done → error
The fix uses a pending counter to track when the scheduled setup function
is running, ensuring we wait for both the setup to complete AND all LSP
responses before the finder completes.
Also improved error handling by checking the err parameter in callbacks.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 07:25:22 +02:00
folke
142c620703
chore(build): auto-generate docs
2025-10-24 05:01:42 +00:00
folke
dfe43e2abd
chore(build): auto-generate markdown docs
2025-10-24 05:00:17 +00:00
Folke Lemaitre
e93dcfdf39
fix(image): work around tmux extended-keys breaking TermResponse. Closes #2332
...
When tmux has extended-keys enabled, Neovim's TermResponse autocmd doesn't fire,
causing terminal response sequences to leak as literal text into buffers.
Workaround: Detect this configuration and query tmux directly for the terminal
name using `tmux display-message -p "#{client_termname}"` instead of sending
escape sequences.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 06:59:17 +02:00
folke
277ba028b3
chore(build): auto-generate markdown docs
CI / ci (push) Waiting to run
2025-10-23 19:31:26 +00: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
0075523148
chore(build): auto-generate docs
2025-10-23 19:27:09 +00:00
Folke Lemaitre
a42b3761f7
fix(scroll): stop animations when buf/changedtick changes
2025-10-23 21:24:33 +02:00
folke
1f2b8b765e
chore(build): auto-generate docs
2025-10-23 18:33:30 +00:00
folke
69606ad3a7
chore(build): auto-generate markdown docs
2025-10-23 18:32:03 +00:00
Folke Lemaitre
b1acbb0fcc
feat(notifier): added gap option. Closes #2331
2025-10-23 20:30:49 +02:00
folke
c4c644f483
chore(build): auto-generate docs
2025-10-23 18:16:08 +00:00
folke
14920dfc11
chore(build): auto-generate markdown docs
2025-10-23 18:14:41 +00:00
Folke Lemaitre
1a2b34dffd
fix(dashboard): fix issue with opening file at location due to splitkeep and restoring laststatus/showtabline
2025-10-23 20:13:20 +02:00
folke
7229dca7c2
chore(build): auto-generate docs
2025-10-23 16:55:53 +00:00
folke
b045aaaf1e
chore(build): auto-generate markdown docs
2025-10-23 16:54:29 +00:00
Folke Lemaitre
bca5b05838
feat(select): allow configuring options for specific vim.ui.select kinds
2025-10-23 18:53:23 +02:00
folke
8625e4bd72
chore(build): auto-generate markdown docs
CI / ci (push) Waiting to run
2025-10-23 13:43:55 +00:00
Folke Lemaitre
a283beb6dc
feat(snacks): added Snacks.version. auto updated by the release workflow
2025-10-23 15:35:33 +02:00
folke
987b2cf17c
chore(build): auto-generate docs
2025-10-23 09:45:42 +00:00
github-actions[bot]
daa3ddd8a1
chore(main): release 2.24.0 ( #2186 )
...
🤖 I have created a release *beep* *boop*
---
##
[2.24.0](https://github.com/folke/snacks.nvim/compare/v2.23.0...v2.24.0 )
(2025-10-23)
### Features
* **bigfile:** disable mini-hipatterns
([#2170 ](https://github.com/folke/snacks.nvim/issues/2170 ))
([3d4dd13 ](3d4dd13d2e ))
* **dashboard:** optional `filter` for projects. Closes
[#798 ](https://github.com/folke/snacks.nvim/issues/798 )
([fe88a07 ](fe88a07d53 ))
* **debug:** allow debug evaluation of block selections
([#1331 ](https://github.com/folke/snacks.nvim/issues/1331 ))
([231ffae ](231ffae08d ))
* **git:** allow configuring extra git args and git cmd args for all git
sources. See [#2178 ](https://github.com/folke/snacks.nvim/issues/2178 )
([5782b5c ](5782b5cda0 ))
* **image:** add icns support
([#2120 ](https://github.com/folke/snacks.nvim/issues/2120 ))
([9df47bc ](9df47bce6a ))
* **image:** added clear fun. Closes
[#1394 ](https://github.com/folke/snacks.nvim/issues/1394 )
([30687d1 ](30687d195b ))
* **image:** added support for base64 encoded images in url. Closes
[#2304 ](https://github.com/folke/snacks.nvim/issues/2304 )
([2c56e10 ](2c56e10b1d ))
* **image:** allow specifying a page number for inlined pdfs
([#1806 ](https://github.com/folke/snacks.nvim/issues/1806 ))
([3f0fe34 ](3f0fe34308 ))
* **indent:** pass win to filter func. Closes
[#2307 ](https://github.com/folke/snacks.nvim/issues/2307 )
([8116e0b ](8116e0b380 ))
* **input:** added support for a custom highlight functions. Closes
[#2216 ](https://github.com/folke/snacks.nvim/issues/2216 )
([9b80137 ](9b80137ace ))
* **layout:** height=0.7 for preview in vscode layout
([c3d6c01 ](c3d6c01916 ))
* **layout:** static (non-flex) layouts now shrink the root box to fit
the contents. See
[#2035 ](https://github.com/folke/snacks.nvim/issues/2035 )
([ba7845b ](ba7845bb85 ))
* **picker.finder:** added assertions that finder is still running when
receiving results
([a45503b ](a45503b957 ))
* **picker.git_diff:** add `base` option to show diff against a merge
base. Useful to see changes on a branch/PR
([7964f04 ](7964f040bf ))
* **picker.git:** allow passing extra args to git log command for file
renames ([#1964 ](https://github.com/folke/snacks.nvim/issues/1964 ))
([2aee35d ](2aee35d059 ))
* **picker.git:** use default previewer args in git_show
([#1736 ](https://github.com/folke/snacks.nvim/issues/1736 ))
([f324f96 ](f324f96bea ))
* **picker.layout:** added `config` hook for resolved layouts. See
[#2035 ](https://github.com/folke/snacks.nvim/issues/2035 )
([722f9ea ](722f9eac7c ))
* **picker.lsp_config:** added more info to lsp picker
([636be5c ](636be5c3d1 ))
* **picker.lsp:** added lsp_incoming_calls and lsp_outgoing_calls.
Closes [#1843 ](https://github.com/folke/snacks.nvim/issues/1843 )
([55d6670 ](55d6670a7e ))
* **picker.lsp:** added option `keep_parents` to `lsp_symbols` (default
`false`). See [#2083 ](https://github.com/folke/snacks.nvim/issues/2083 ).
closes [#2266 ](https://github.com/folke/snacks.nvim/issues/2266 )
([2b9d522 ](2b9d52258d ))
* **picker.projects:** make max_depth customizable
([#2253 ](https://github.com/folke/snacks.nvim/issues/2253 ))
([3e9e2e2 ](3e9e2e2d71 ))
* **picker.scratch:** add scratch picker with grep, new and delete
keybinds ([#1019 ](https://github.com/folke/snacks.nvim/issues/1019 ))
([ca0f8b2 ](ca0f8b2c09 ))
* **picker.select:** select now fits the list to the items independent
of the layout. Closes
[#2035 ](https://github.com/folke/snacks.nvim/issues/2035 )
([5c63614 ](5c63614880 ))
* **picker:** add author field to git log
([#2295 ](https://github.com/folke/snacks.nvim/issues/2295 ))
([2cf864a ](2cf864aaa1 ))
* **picker:** add exact match position highlighting for grep results
([3b54c8d ](3b54c8d3d1 ))
* **picker:** add git_restore action for git_status picker
([2b22fe7 ](2b22fe7861 ))
* **picker:** add toggle_regex for grep
([#1594 ](https://github.com/folke/snacks.nvim/issues/1594 ))
([bd6ee23 ](bd6ee23546 ))
* **picker:** added `Snacks.picker.tags()` a picker for ctags. Closes
[#1728 ](https://github.com/folke/snacks.nvim/issues/1728 )
([4290287 ](42902871f5 ))
* **picker:** added custom options to `vim.ui.select` that snacks can
use for a better select
([264cab1 ](264cab1380 ))
* **picker:** added live support to `git_log`, which uses `-S` (pickaxe)
to search. Closes
[#1544 ](https://github.com/folke/snacks.nvim/issues/1544 )
([c9fa6f7 ](c9fa6f7b07 ))
* **picker:** allow configuring pathspec for git grep
([#2311 ](https://github.com/folke/snacks.nvim/issues/2311 ))
([57fbda7 ](57fbda70d6 ))
* **picker:** also ignore dot bare git files
([#2058 ](https://github.com/folke/snacks.nvim/issues/2058 ))
([4bb0dae ](4bb0dae95d ))
* **picker:** enhanced resume with multi-state support and flexible API
([bc6c446 ](bc6c446c11 ))
* **picker:** flexible filename format
([#2294 ](https://github.com/folke/snacks.nvim/issues/2294 ))
([9ad5d53 ](9ad5d5374a ))
* **picker:** mapped `<c-g>` to `print_cwd` in list. See
[#2244 ](https://github.com/folke/snacks.nvim/issues/2244 )
([faa6aba ](faa6abacb4 ))
* **picker:** Support rmagatti/autosession session manager
([#1825 ](https://github.com/folke/snacks.nvim/issues/1825 ))
([fc06234 ](fc06234ce1 ))
* **picker:** updated Snacks.picker.lsp_config to work with
`vim.lsp.config`
([292d46f ](292d46f773 ))
* **picker:** when resuming a source that has nothing to resume, start a
picker with the source instead
([db3c13c ](db3c13c28e ))
* **terminal:** minor improvements for user experience
([#2276 ](https://github.com/folke/snacks.nvim/issues/2276 ))
([39b14c4 ](39b14c4006 ))
* **toggle:** allow notification customization via function
([#2247 ](https://github.com/folke/snacks.nvim/issues/2247 ))
([3ccab97 ](3ccab9736b ))
* **win:** added support for `vim.o.winborder`. Set win.border = true to
use it
([b30523c ](b30523c89f ))
* **win:** all existing snacks windows for all plugins now honor
`vim.o.winborder`. Defaults to `rounded` if not set.
([c1737d8 ](c1737d866e ))
* **win:** generalize footer options for keys
([#363 ](https://github.com/folke/snacks.nvim/issues/363 ))
([b8d1719 ](b8d17192b6 ))
* **win:** make split window "stacking" configurable
([e46a094 ](e46a09427c ))
### Bug Fixes
* **bigfile:** bigfile doesn't work on windows.
([#1969 ](https://github.com/folke/snacks.nvim/issues/1969 ))
([b4944ff ](b4944ff320 )),
closes [#1722 ](https://github.com/folke/snacks.nvim/issues/1722 )
* **bufdelete:** try alternate buffer first and otherwise last used
buffer
([914c900 ](914c9004be ))
* **dashboard:** fix path filtering for `recent_files` with `cwd` option
([#2201 ](https://github.com/folke/snacks.nvim/issues/2201 ))
([057d4ab ](057d4ab80e ))
* **dashboard:** oldfiles filter should return a boolean instead of the
result of find. Fixes
[#2283 ](https://github.com/folke/snacks.nvim/issues/2283 )
([fcd309f ](fcd309f9ea ))
* **dashboard:** pcall chansend for dashoard terminal widgets
([dc65ffd ](dc65ffd4f5 ))
* **dashboard:** recent cwd filter matching
([5c4365e ](5c4365e993 ))
* **dashboard:** recent_files section not displaying files without cwd
parameter ([#2284 ](https://github.com/folke/snacks.nvim/issues/2284 ))
([1ed737e ](1ed737e465 ))
* **dashboard:** replace deprecated AutoSession command
([#2288 ](https://github.com/folke/snacks.nvim/issues/2288 ))
([e9228d6 ](e9228d6b2f ))
* **dashboard:** restore showtabline/laststatus when entering another
non-float window. Closes
[#1774 ](https://github.com/folke/snacks.nvim/issues/1774 )
([cc69a93 ](cc69a9304b ))
* **dashboard:** set `border = "none"` on `terminal` sections
([#1643 ](https://github.com/folke/snacks.nvim/issues/1643 ))
([83f364f ](83f364f833 ))
* **dashboard:** update cursor on loading the dashboard. Closes
[#2004 ](https://github.com/folke/snacks.nvim/issues/2004 )
([29682a0 ](29682a0a72 ))
* **dashboard:** use fqn for icon. Closes
[#1496 ](https://github.com/folke/snacks.nvim/issues/1496 )
([24e92e0 ](24e92e0c94 ))
* **dim:** fixed the issue of dim's scope variable being nil and
outputting… ([#1938 ](https://github.com/folke/snacks.nvim/issues/1938 ))
([943a3c7 ](943a3c7d4a ))
* **explorer.git:** don't propagate deletes to parent dirs that don't
exist
([835c4cb ](835c4cbfc6 ))
* **explorer.watch:** handle systems where fs_event doesn't return file
names. Closes [#2190 ](https://github.com/folke/snacks.nvim/issues/2190 ).
Closes [#2032 ](https://github.com/folke/snacks.nvim/issues/2032 )
([d6e34b1 ](d6e34b158d ))
* **explorer:** mounted directories being detected as non-directories in
Tree:expand ([#2053 ](https://github.com/folke/snacks.nvim/issues/2053 ))
([7a5eb10 ](7a5eb1036a ))
* **explorer:** reset main when entering another window. Closes
[#1587 ](https://github.com/folke/snacks.nvim/issues/1587 )
([a5d45d5 ](a5d45d543e ))
* **git:** always check parents for git root to fix an issue with git
submodules. Closes
[#2143 ](https://github.com/folke/snacks.nvim/issues/2143 )
([14dd362 ](14dd362d5d ))
* **gitbrowse:** fixed urls for gitlab
([#2073 ](https://github.com/folke/snacks.nvim/issues/2073 ))
([9ebf052 ](9ebf052fef ))
* **gitbrowse:** send commit as a opt when calling gitbrowse
([#2289 ](https://github.com/folke/snacks.nvim/issues/2289 ))
([a466429 ](a4664298ba ))
* **git:** set `diff.noprefix=false` for `git diff` to ensure correct
format ([#2174 ](https://github.com/folke/snacks.nvim/issues/2174 ))
([93f43ca ](93f43ca10f ))
* **image.terminal:** do only terminal detection for now. Closes
[#2323 ](https://github.com/folke/snacks.nvim/issues/2323 )
([6c7ddae ](6c7ddae887 ))
* **image:** correct off by one issue in render fallback
([#1560 ](https://github.com/folke/snacks.nvim/issues/1560 ))
([441bdcd ](441bdcd210 ))
* **image:** correct render fallback to handle "editor" relative
position ([#2296 ](https://github.com/folke/snacks.nvim/issues/2296 ))
([c552cea ](c552cea131 ))
* **image:** correct render fallback to handle "editor" relative
position ([#2297 ](https://github.com/folke/snacks.nvim/issues/2297 ))
([1c3f15c ](1c3f15cb54 ))
* **image:** detect kitty image protocol through terminal capability
request. Closes
[#1695 ](https://github.com/folke/snacks.nvim/issues/1695 )
([43261ba ](43261baf87 ))
* **image:** do not save remote image if fetch fails
([#1915 ](https://github.com/folke/snacks.nvim/issues/1915 ))
([cb6bf05 ](cb6bf052da ))
* **image:** ENOENT on preview
([#2301 ](https://github.com/folke/snacks.nvim/issues/2301 ))
([5173e96 ](5173e96f33 ))
* **image:** hover close in insert mode
([#2215 ](https://github.com/folke/snacks.nvim/issues/2215 ))
([ef59af0 ](ef59af0ffc ))
* **image:** markdown inline link query for shortened urls
([#1481 ](https://github.com/folke/snacks.nvim/issues/1481 ))
([2daa1b2 ](2daa1b28b2 ))
* **image:** set winblend=0 for floatwin when use unicode placeholders
([#1615 ](https://github.com/folke/snacks.nvim/issues/1615 ))
([758e64c ](758e64c18f ))
* **image:** skip `\usepackage` in comments and body
([#2325 ](https://github.com/folke/snacks.nvim/issues/2325 ))
([90227af ](90227af497 ))
* **image:** work-around for sha256 not allowed to be a Blob
([92a08ce ](92a08cece7 ))
* **indent:** check that win is valid in step. Closes
[#1943 ](https://github.com/folke/snacks.nvim/issues/1943 )
([e409f31 ](e409f31cc9 ))
* **indent:** nil check before setting extmark
([#1635 ](https://github.com/folke/snacks.nvim/issues/1635 ))
([02bf7d2 ](02bf7d2205 ))
* **input:** schedule stopinsert. Fixes
[#1841 ](https://github.com/folke/snacks.nvim/issues/1841 )
([ad6cbc8 ](ad6cbc8d5d ))
* **input:** zindex
([67d690d ](67d690d362 ))
* **input:** zindex. Closes
[#2302 ](https://github.com/folke/snacks.nvim/issues/2302 )
([d491236 ](d491236941 ))
* **layout:** allocate at least 1 cell for a widget and enlarge/shrink
the root box when needed. Closes
[#2261 ](https://github.com/folke/snacks.nvim/issues/2261 )
([71d6d3c ](71d6d3cad4 ))
* **layout:** allow width/height to be a function. Closes
[#2184 ](https://github.com/folke/snacks.nvim/issues/2184 )
([c757d4d ](c757d4dc28 ))
* **lazygit:** allow extensible user args
([#789 ](https://github.com/folke/snacks.nvim/issues/789 ))
([da655a3 ](da655a3538 ))
* **lazygit:** check if default config file exists before adding to
LG_CONFIG_FILE
([#2256 ](https://github.com/folke/snacks.nvim/issues/2256 ))
([3731644 ](3731644e38 ))
* **main:** get correct winid for prev window
([db399b1 ](db399b1332 ))
* **notifier:** include icon in padding in minimal style
([#2239 ](https://github.com/folke/snacks.nvim/issues/2239 ))
([6daef52 ](6daef528c1 ))
* **notifier:** keep filtered notifications in history
([#2209 ](https://github.com/folke/snacks.nvim/issues/2209 ))
([ac61546 ](ac6154688b ))
* **picker.actions:** `<c-g>` in list view now prints file path instead
of cwd. Fallback to cwd
([0b0a58a ](0b0a58ae4a ))
* **picker.actions:** ensure the current window is updated after tabdrop
([#2326 ](https://github.com/folke/snacks.nvim/issues/2326 ))
([b30121b ](b30121bfce ))
* **picker.actions:** multi-action descriptions. Fixes
[#1501 ](https://github.com/folke/snacks.nvim/issues/1501 )
([4edf207 ](4edf207bfe ))
* **picker.actions:** take into account if source is `recent` explicitly
([#1920 ](https://github.com/folke/snacks.nvim/issues/1920 ))
([b9bd8ae ](b9bd8ae982 ))
* **picker.core:** respect camelCase for scoring when ignorecase is true
([#1601 ](https://github.com/folke/snacks.nvim/issues/1601 ))
([a32735b ](a32735b9e8 ))
* **picker.format:** added min_width for truncated paths
([b7f8116 ](b7f811613a ))
* **picker.format:** apply hidden file hl group last. Fixes
[#2127 ](https://github.com/folke/snacks.nvim/issues/2127 )
([0bf8fe4 ](0bf8fe4ece ))
* **picker.format:** correcter max_width for truncpath
([a5d2964 ](a5d29646e5 ))
* **picker.format:** simplified resolvable formatters and more correct
([d5b6d30 ](d5b6d30b5e ))
* **picker.git_diff:** use absolute path when adding buffer to avoid
duplicates ([#1819 ](https://github.com/folke/snacks.nvim/issues/1819 ))
([a012f39 ](a012f394c9 ))
* **picker.git:** add `ignorecase` for `git_grep`
([#1629 ](https://github.com/folke/snacks.nvim/issues/1629 ))
([7502e77 ](7502e77803 ))
* **picker.git:** use unmerged icon for unmerged. Fixes
[#1531 ](https://github.com/folke/snacks.nvim/issues/1531 )
([abee3c9 ](abee3c9eff ))
* **picker.grep:** better line/col parsing. Closes
[#2126 ](https://github.com/folke/snacks.nvim/issues/2126 ). Fixes
[#2123 ](https://github.com/folke/snacks.nvim/issues/2123 )
([1fee799 ](1fee799ad6 ))
* **picker.grep:** faulty rg cmd. Closes
[#2280 ](https://github.com/folke/snacks.nvim/issues/2280 )
([65a5c8b ](65a5c8b3d0 ))
* **picker.list:** resize when needed. Closes
[#2290 ](https://github.com/folke/snacks.nvim/issues/2290 )
([df018ed ](df018edfdb ))
* **picker.lsp_config:** cmd can be a function
([ba745ba ](ba745ba281 ))
* **picker.lsp:** don't process lsp request results when aborted. Closes
[#2327 ](https://github.com/folke/snacks.nvim/issues/2327 )
([4e10708 ](4e1070867a ))
* **picker.lsp:** move get_clients inside vim.schedule to prevent issues
on Neovim 0.11. Closes
[#2320 ](https://github.com/folke/snacks.nvim/issues/2320 )
([79f3a8d ](79f3a8d8b3 ))
* **picker.lsp:** trigger docs workflow
([6f1158f ](6f1158fe9b ))
* **picker.man:** make tab/split/vsplit work. Closes
[#2171 ](https://github.com/folke/snacks.nvim/issues/2171 )
([f39d114 ](f39d1144e7 ))
* **picker.marks:** fix buffer checking
([#2287 ](https://github.com/folke/snacks.nvim/issues/2287 ))
([ca0858a ](ca0858a30a ))
* **picker.preview:** better hack to deal with buffer local option
weirdness
([c968d4d ](c968d4def4 ))
* **picker.preview:** directory preview should use cwd. Closes
[#2212 ](https://github.com/folke/snacks.nvim/issues/2212 ). Fixes
[#2093 ](https://github.com/folke/snacks.nvim/issues/2093 )
([d050712 ](d05071255c ))
* **picker.preview:** don't record previeww searches in history and
prevent scrolling from the top. Closes
[#2305 ](https://github.com/folke/snacks.nvim/issues/2305 )
([080320b ](080320bb82 ))
* **picker.preview:** dont do win-local hack for floating windows
([12b2f0d ](12b2f0d2bd ))
* **picker.qflist:** error with qflist picker when the list contains
invalid items
([#2293 ](https://github.com/folke/snacks.nvim/issues/2293 ))
([6af1e76 ](6af1e76758 ))
* **picker.recent:** include closed / unlisted buffers in recent. Closes
[#1745 ](https://github.com/folke/snacks.nvim/issues/1745 )
([5959631 ](595963140e ))
* **picker:** add type field to qflist item
([#1538 ](https://github.com/folke/snacks.nvim/issues/1538 ))
([#1539 ](https://github.com/folke/snacks.nvim/issues/1539 ))
([125978b ](125978b57a ))
* **picker:** added show_delay to config max ms to wait to show if no
results found yet. Closes
[#2206 ](https://github.com/folke/snacks.nvim/issues/2206 )
([64583a0 ](64583a0386 ))
* **picker:** allow some sources to use the current window as main.
Closes [#2012 ](https://github.com/folke/snacks.nvim/issues/2012 ). See
[#1941 ](https://github.com/folke/snacks.nvim/issues/1941 )
([5cda953 ](5cda9532ca ))
* **picker:** correct z-index for preview="main" layout
([e796aef ](e796aef0fa ))
* **picker:** do not record consecutive duplicate history
([#2040 ](https://github.com/folke/snacks.nvim/issues/2040 ))
([d0a5310 ](d0a5310417 ))
* **picker:** fixup for pickers that dont display files
([1b4205e ](1b4205eb1a ))
* **picker:** load correct actions in list of action names. Closes
[#1501 ](https://github.com/folke/snacks.nvim/issues/1501 )
([b064be2 ](b064be2882 ))
* **picker:** lsp_config now includes any configfured LSP and excludes
deprecated servers
([a0d6eba ](a0d6eba1a2 ))
* **picker:** prevent WinEnter handling during startup
([756a791 ](756a791131 ))
* **picker:** show_delay config value
([67bb3a7 ](67bb3a7ba0 ))
* **picker:** show_delay is in ms. Also increase it to allow
auto_confirm to work properly
([924a930 ](924a9304e9 ))
* **picker:** use nvim_paste instead of nvim_put. Closes
[#1941 ](https://github.com/folke/snacks.nvim/issues/1941 )
([021e04f ](021e04fa6f ))
* **projects:** normalize item.text for correct Windows support
([#2275 ](https://github.com/folke/snacks.nvim/issues/2275 ))
([457596b ](457596be6d ))
* **rename:** made rename more robust and make sure target directory
exists. Closes [#2252 ](https://github.com/folke/snacks.nvim/issues/2252 )
([c494447 ](c494447737 ))
* **scope:** allow user to disable keys
([#1918 ](https://github.com/folke/snacks.nvim/issues/1918 ))
([bebf0bd ](bebf0bd38e ))
* **scratch:** branch fallback for detached head
([#1519 ](https://github.com/folke/snacks.nvim/issues/1519 ))
([98345c7 ](98345c7012 ))
* **scratch:** hide buffer after formatting when close
([#1523 ](https://github.com/folke/snacks.nvim/issues/1523 ))
([4379085 ](4379085616 ))
* **scratch:** use icon[1] when icon is a table to avoid table.concat
error ([#2242 ](https://github.com/folke/snacks.nvim/issues/2242 ))
([ba90011 ](ba90011a14 ))
* **scroll:** don't animate 1 line scrolls (jk). Closes
[#1620 ](https://github.com/folke/snacks.nvim/issues/1620 )
([d293b21 ](d293b21fe1 ))
* **scroll:** stop anim and reset state when win has new buf, or buf was
changed. Closes
[#1820 ](https://github.com/folke/snacks.nvim/issues/1820 ). Closes
[#2221 ](https://github.com/folke/snacks.nvim/issues/2221 )
([766f7b8 ](766f7b87aa ))
* **statuscolumn:** show open folds in consecutive levels
([#1534 ](https://github.com/folke/snacks.nvim/issues/1534 ))
([7bcd3ba ](7bcd3baaf8 ))
* **terminal:** check win valid before creating a new terminal
([#1927 ](https://github.com/folke/snacks.nvim/issues/1927 ))
([ba7bbcd ](ba7bbcd0df ))
* **terminal:** make sure terminals opend with `open()` can be found
with `list()`. Closes
[#2172 ](https://github.com/folke/snacks.nvim/issues/2172 ). Closes
[#2173 ](https://github.com/folke/snacks.nvim/issues/2173 )
([13f3006 ](13f3006dbf ))
* **terminal:** set buffer when opening terminal with position='current'
([#2162 ](https://github.com/folke/snacks.nvim/issues/2162 ))
([2aacf55 ](2aacf55082 )),
closes [#2148 ](https://github.com/folke/snacks.nvim/issues/2148 )
* **terminal:** stack only terminal splits by default. Closes
[#2137 ](https://github.com/folke/snacks.nvim/issues/2137 )
([8c50196 ](8c501965be ))
* **util:** fix invalid window error
([#1996 ](https://github.com/folke/snacks.nvim/issues/1996 ))
([32e5bf1 ](32e5bf1730 ))
* **util:** only use mini.icons if it has been setup. Closes
[#2199 ](https://github.com/folke/snacks.nvim/issues/2199 )
([774bf9d ](774bf9d8c8 ))
* **win:** check parent win is valid before getting size
([#2315 ](https://github.com/folke/snacks.nvim/issues/2315 ))
([471eb03 ](471eb036c4 ))
* **zen:** make zoom and minimizing work in terminal mode
([#1912 ](https://github.com/folke/snacks.nvim/issues/1912 ))
([fb54927 ](fb54927ab0 ))
### Performance Improvements
* **dashboard:** add basic OSC11 and CSI6n support to terminal sections
(gh 10 seconds faster)
([fb016d2 ](fb016d20c2 ))
* **git:** invoke `git status` with `--no-optional-locks`
([#2175 ](https://github.com/folke/snacks.nvim/issues/2175 ))
([e441c64 ](e441c641eb ))
* **grep:** move match parsing to resolve and fix an issue with `.*`
results. Closes
[#2308 ](https://github.com/folke/snacks.nvim/issues/2308 )
([1417701 ](1417701af6 ))
* **picker:** set `limit_live=10000` by default. Makes no sense to load
millions of matches when doing live searches.
([04990d0 ](04990d042c ))
---
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 11:43:00 +02:00
folke
b28a7d5455
chore(build): auto-generate docs
2025-10-23 09:39:50 +00:00
Folke Lemaitre
a0f86ad027
ci: added release-please-config
2025-10-23 11:37:00 +02:00
folke
95031b3a8e
chore(build): auto-generate docs
2025-10-23 09:34:33 +00:00
Folke Lemaitre
4db3d158cb
ci: added release please manifest
2025-10-23 11:31:57 +02:00
Daniel Wennberg
90227af497
fix(image): skip \usepackage in comments and body ( #2325 )
...
## Description
Here are some small and hopefully uncontroversial tweaks to package
extraction from LaTeX preambles:
* Don't consider anything in comments
* Make sure that the extracted names are actually the arguments of
`\usepackage` and not some other macro on the same line
* Stop looking for packages at `\begin{document}`, where the preamble
ends and the body of the document begins (you can't load packages after
this, so any `\usepackage` beyond this point is content, not code. Also
saves a huge amount of work in large documents.)
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-23 11:14:32 +02:00
folke
5ef4c0b421
chore(build): auto-generate docs
2025-10-23 08:55:23 +00:00
maskudo
ca0f8b2c09
feat(picker.scratch): add scratch picker with grep, new and delete keybinds ( #1019 )
...
## Description
The scratch module uses `vim.ui.select` which misses the nice things
about the picker.
This implementation adds scratch picker with ability to create, grep and
delete scratch buffers.
Couldn't figure out how to prettify the scratch buffer's name so any
help would be appreciated.
## 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. -->
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-23 10:53:02 +02:00
Folke Lemaitre
4e1070867a
fix(picker.lsp): don't process lsp request results when aborted. Closes #2327
CI / ci (push) Waiting to run
2025-10-23 09:45:28 +02:00
folke
cc33bb819f
chore(build): auto-generate docs
2025-10-23 07:28:35 +00:00
Folke Lemaitre
7964f040bf
feat(picker.git_diff): add base option to show diff against a merge base. Useful to see changes on a branch/PR
2025-10-23 09:25:56 +02:00
folke
b4e2384da9
chore(build): auto-generate docs
2025-10-23 07:12:11 +00:00
David
b30121bfce
fix(picker.actions): ensure the current window is updated after tabdrop ( #2326 )
...
## Description
Update the winid (in the `win` variable) after `tab drop`.
## Related Issue(s)
Without this patch, when the user set `confirm` to `{ action =
"confirm", cmd = "tabdrop" }` and jump to a location in a different tab,
since the `win` is still pointing to the original window (tab), there'd
be a `Cursor position outside buffer` error.
2025-10-23 09:09:24 +02:00
folke
de2a8f94e5
chore(build): auto-generate docs
2025-10-23 05:05:01 +00:00
Folke Lemaitre
6c7ddae887
fix(image.terminal): do only terminal detection for now. Closes #2323
2025-10-23 07:02:17 +02:00
folke
4236c8b772
chore(build): auto-generate docs
CI / ci (push) Waiting to run
2025-10-22 21:09:10 +00:00
Folke Lemaitre
c1737d866e
feat(win): all existing snacks windows for all plugins now honor vim.o.winborder. Defaults to rounded if not set.
2025-10-22 23:06:35 +02:00
Folke Lemaitre
b30523c89f
feat(win): added support for vim.o.winborder. Set win.border = true to use it
2025-10-22 23:06:35 +02:00
folke
c958a6a379
chore(build): auto-generate docs
2025-10-22 20:38:55 +00:00
Valentin Degenne
b8d17192b6
feat(win): generalize footer options for keys ( #363 )
...
#fixes https://github.com/folke/snacks.nvim/issues/361
---------
Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2025-10-22 22:36:09 +02:00
Folke Lemaitre
766f7b87aa
fix(scroll): stop anim and reset state when win has new buf, or buf was changed. Closes #1820 . Closes #2221
2025-10-22 22:10:38 +02:00