osfeed.dev
Release / / with v2.24.0, v2.25.0, v2.26.0, v2.27.0, v2.28.0, v2.29.0

snacks.nvim v2.30.0

Review GitHub pull requests and add or reply to inline comments without leaving Neovim.

Before you upgrade to v2.30.0

3 to fix

`grep_word` passes `--word-regexp` to ripgrep to match whole words.

Behavior changedSearch project text and open buffers and jump to matching lines.
Read the evidence

Live searches stop after `limit_live=10000` items by default; closed and unlisted buffers now appear in recent-file results.

Behavior changedFind files, buffers, projects, and editor history with fuzzy search.
Read the evidence

`show_delay` defaults to 5000 ms while waiting for initial results; buffer searches also match filetype and buffer type.

Behavior changedFind files, buffers, projects, and editor history with fuzzy search.
Read the evidence

Pasting through a picker started in insert mode returns to insert mode; a picker opened from terminal mode starts input.

Behavior changedFind files, buffers, projects, and editor history with fuzzy search.
Read the evidence

Diff previews default to the `fancy` renderer and show renames; stage, unstage, and restore are disabled for merge-base comparisons.

Behavior changedBrowse Git branches, commits, status, stashes, and diff hunks from Neovim.
Read the evidence

Replace `picker.previewers.diff.builtin` and `picker.previewers.git.builtin` with `picker.previewers.diff.style`: `syntax` for built-in syntax or `terminal` for an external renderer.

Action requiredBrowse Git branches, commits, status, stashes, and diff hunks from Neovim.Affects: Configurations overriding either former builtin previewer option.Inferred
Read the evidence

Use finder signature `function(opts, ctx)`, read filters from `ctx.filter`, and use `ctx.picker` and `ctx.async`; stop relying on the removed third finder argument and second async-result argument.

Action requiredCreate custom selection lists with configurable matching, previews, and layouts.Affects: Custom pickers using deprecated finder compatibility arguments or direct filter fields on ctx.Inferred
Read the evidence

Image conversion error notifications are disabled by default; set `image.convert.notify=true` to restore them.

Behavior changedView image files and render images and math inside supported documents.
Read the evidence

Large-file buffers disable mini.hipatterns highlighting.

Behavior changedOpen large files while disabling LSP and Tree-sitter attachment to those buffers.
Read the evidence

After deleting a buffer, prefer the alternate buffer, then the last used buffer.

Behavior changedDelete buffers while keeping the window layout and prompting for unsaved changes.
Read the evidence

Scratch metadata moves into `.meta` files with hashed filenames; opening or listing scratches migrates old files and saves originals under `bak`.

Behavior changedKeep persistent scratch notes and run Lua snippets with inline output.Inferred
Read the evidence

Single-line `j`/`k` scrolling is no longer animated; animation stops when the window's buffer or buffer contents change.

Behavior changedScroll editor windows with animation, including mouse scrolling.
Read the evidence

`center` defaults to true in Zen mode and false in Zoom mode, preserving the view when zooming.

Behavior changedHide distracting editor elements or zoom the current window while editing.
Read the evidence

Existing Snacks windows honor `vim.o.winborder`, falling back to rounded borders when unset.

Behavior changedDisplay content in configurable floating windows, splits, and window layouts.
Read the evidence

What changed in v2.30.0

The closely spaced v2.24.0–v2.30.0 releases add GitHub issue/PR views and inline reviews, plus stage/unstage/restore actions for Git hunks. Picker diff settings, path truncation, custom finder arguments, scratch storage, and several defaults change.

Also: Adds contextual keymaps and ctags navigation; extends Git hunks, scratch management, images, and file operations, with configuration migrations and changed defaults.

Install tag v2.30.0 with Neovim >= 0.9.4; GitHub operations require authenticated GitHub CLI and the Snacks picker.

New things you can do

Use `Snacks.keymap.set` and `Snacks.keymap.del` with `ft`, `lsp`, and conditional `enabled` options.

AddedApply keymaps only to matching filetypes or language-server capabilities.
Read the evidence

Fixed and improved

Toggle grep regular expressions with `<a-r>`; matching positions are highlighted and Git grep accepts a configurable pathspec.

ImprovedSearch project text and open buffers and jump to matching lines.
Read the evidence

Resume separate picker states, configure project search depth, and use `<c-g>` in the list to print the selected path.

ImprovedFind files, buffers, projects, and editor history with fuzzy search.
Read the evidence

Delete marks directly from the marks picker with `<c-x>`.

ImprovedFind files, buffers, projects, and editor history with fuzzy search.
Read the evidence

Search Git history live with pickaxe (`-S`), configure extra Git arguments, restore files from status, and compare against a merge base with `git_diff.base`.

ImprovedBrowse Git branches, commits, status, stashes, and diff hunks from Neovim.
Read the evidence

View staged diff hunks and stage, unstage, or restore individual hunks; `git_diff` lists hunks without file grouping by default.

ImprovedBrowse Git branches, commits, status, stashes, and diff hunks from Neovim.
Read the evidence

Browse incoming and outgoing calls with `lsp_incoming_calls` and `lsp_outgoing_calls`; `lsp_symbols.keep_parents` can retain parent symbols.

ImprovedJump to definitions, references, implementations, and symbols using language servers.
Read the evidence

LSP pickers handle Neovim 0.11 client access; `lsp_config` supports `vim.lsp.config` and excludes deprecated server entries.

Now worksJump to definitions, references, implementations, and symbols using language servers.
Read the evidence

Inspect server and dynamically registered capabilities in the LSP configuration preview.

ImprovedJump to definitions, references, implementations, and symbols using language servers.
Read the evidence

Configure `vim.ui.select` options by selection kind; selection layouts fit the number of items.

ImprovedCreate custom selection lists with configurable matching, previews, and layouts.
Read the evidence

Expand mounted directories and refresh file trees on systems whose file watcher omits filenames.

Now worksBrowse and manage project files in a tree inside Neovim.
Read the evidence

Windows deletion distinguishes files from directories; Git status refreshes across tabs and file reveal works when opening the explorer.

Now worksBrowse and manage project files in a tree inside Neovim.
Read the evidence

View ICNS and base64 URL images, and choose a page for an inline PDF.

ImprovedView image files and render images and math inside supported documents.
Read the evidence

`image.enabled=false` disables all image rendering, including picker previews.

Now worksView image files and render images and math inside supported documents.
Read the evidence

Terminal capability detection handles tmux extended keys, and reloading an image detaches its previous rendering.

Now worksView image files and render images and math inside supported documents.
Read the evidence

Large-file detection works with Windows paths.

Now worksOpen large files while disabling LSP and Tree-sitter attachment to those buffers.
Read the evidence

Filter the projects section with a custom `filter`; terminal widgets handle OSC11 and CSI6n requests.

ImprovedOpen recent files, projects, and sessions from a configurable startup dashboard.
Read the evidence

Recent-file filtering and opening a file at its stored location work with dashboard statusline and tabline restoration.

Now worksOpen recent files, projects, and sessions from a configurable startup dashboard.
Read the evidence

Configure spacing between notifications with `gap`; filtered notifications remain in history.

ImprovedRead, dismiss, and revisit editor notifications in a notification history.
Read the evidence

Search scratch buffers with grep and create or delete them from the scratch picker.

ImprovedKeep persistent scratch notes and run Lua snippets with inline output.
Read the evidence

Renaming a file creates its target directory when needed.

Now worksRename files with language-server notifications and file-explorer integrations.
Read the evidence

Terminals opened with `open()` appear in `list()`, and opening a terminal at `position='current'` sets its buffer correctly.

Now worksOpen and toggle shell terminals in floating windows or splits.
Read the evidence

Customize toggle notifications with a function.

ImprovedToggle editor settings with keymaps and optional which-key state indicators.
Read the evidence

Resize split layouts; static layouts shrink to their contents.

ImprovedDisplay content in configurable floating windows, splits, and window layouts.
Read the evidence

Customize input highlighting with a highlight function.

ImprovedEnter text in floating input prompts that replace Neovim input dialogs.
Read the evidence

Disable the module's default scope keymaps in configuration.

ImprovedSelect and jump between code scopes using Tree-sitter or indentation.
Read the evidence

Scope text objects use synchronous Tree-sitter parsing.

Now worksSelect and jump between code scopes using Tree-sitter or indentation.
Read the evidence

Seeded by @iluxav with Codex, from the release's public sources. Each change links to its evidence.