g, diff formatting
- Layout: Window allocation, dimension calculations
- Terminal: Buffer handling, split stacking
- Input: z-index issues
- Scroll: Animation edge cases
## Stats
- 50+ new features
- 80+ bug fixes
- Closes 60+ issues
For the complete changelog, see <https://github.com/folke/snacks.nvim/blob/main/CHANGELOG.md>
https://redd.it/1odyzcy
@r_neovim
- Layout: Window allocation, dimension calculations
- Terminal: Buffer handling, split stacking
- Input: z-index issues
- Scroll: Animation edge cases
## Stats
- 50+ new features
- 80+ bug fixes
- Closes 60+ issues
For the complete changelog, see <https://github.com/folke/snacks.nvim/blob/main/CHANGELOG.md>
https://redd.it/1odyzcy
@r_neovim
GitHub
snacks.nvim/CHANGELOG.md at main · folke/snacks.nvim
🍿 A collection of QoL plugins for Neovim. Contribute to folke/snacks.nvim development by creating an account on GitHub.
snacks.nvim v2.24.0 was just released (repost: previous post was deleted)
(Plugin)
This is a repost, since my other post got deleted by Reddit's filters.
The only reason I could think of is the nickname that most people use for the
---
Just made a new release of snacks.nvim including quite a lot of fixes and new features.
A big shout-out to all the contributors that provided PRs for this release!
# Snacks.nvim v2.24.0 Release
## Highlights
### Picker Enhancements
- New Pickers:
-
-
-
- Git Improvements:
-
-
-
- Author filtering for git logs
- Better delta integration via diff previewer
- Configurable extra git args for all git sources
- Enhanced Features:
- Regex toggling for grep (
- Exact match highlighting in grep results
- Flexible filename formatting
- Enhanced resume with multi-state support
- Better LSP symbols with
- Customizable projects max depth
- Improved session manager support (AutoSession)
-
- Better vim.ui.select integration
### Image Rendering
- New Features:
- ICNS format support
- Base64 encoded images in URLs
- PDF page-specific rendering
-
- Bug Fixes:
- Better terminal detection
- Render fallback improvements for editor-relative positioning
- ENOENT handling in preview
- Hover close behavior in insert mode
- Markdown inline link queries
- LaTeX package parsing (skip comments and body)
### Window Layout
- Support for
- Static layouts now shrink to fit contents
- Configurable split window stacking
- Better layout configuration hooks
- Improved window allocation (at least 1 cell per widget)
- Width/height can now be functions
### Dashboard
- Optional
- Better recent files filtering with
- Improved terminal widget handling
- AutoSession command updates
- Better showtabline/laststatus restoration
- Improved cursor positioning
### Git Features
- Configurable extra git args for all git sources
- Better submodule support (always check parents for git root)
- Proper diff prefix handling (
- GitBrowse: Fixed GitLab URLs and commit options
### Explorer
- Improved file system watching (better handling of systems without filename events)
- Better mounted directory detection
- Git deletion handling for non-existent parent dirs
- Reset main when entering another window
### Other Notable Changes
- Terminal: UX improvements, better window validation, fixed
- Toggle: Customizable notifications via function
- Input: Custom highlight function support, better z-index handling
- Indent: Window-aware filter functions, better validation
- Bigfile: Disable mini-hipatterns integration, Windows support
- Lazygit: Extensible user args, better config file handling
- Notifier: Minimal style padding fixes, keep filtered notifications in history
- Scratch: Better branch handling, icon fixes
- Scroll: Don't animate 1-line scrolls, better buffer change detection
- Bufdelete: Try alternate buffer first
## Bug Fixes
This release includes 80+ bug fixes across all modules, with particular focus on:
- Picker: 30+ fi
(Plugin)
This is a repost, since my other post got deleted by Reddit's filters.
The only reason I could think of is the nickname that most people use for the
git -S feature, so I removed that wording. Fingers crossed :)---
Just made a new release of snacks.nvim including quite a lot of fixes and new features.
A big shout-out to all the contributors that provided PRs for this release!
# Snacks.nvim v2.24.0 Release
## Highlights
### Picker Enhancements
- New Pickers:
-
scratch - Browse, grep, create and delete scratch files-
tags - Navigate ctags-
lsp_incoming_calls / lsp_outgoing_calls - Call hierarchy navigation- Git Improvements:
-
git_diff now supports base option for merge-base comparisons (great for viewing PR/branch changes)-
git_log now has live search with grep (-S)-
git_restore action for git_status picker- Author filtering for git logs
- Better delta integration via diff previewer
- Configurable extra git args for all git sources
- Enhanced Features:
- Regex toggling for grep (
toggle_regex action)- Exact match highlighting in grep results
- Flexible filename formatting
- Enhanced resume with multi-state support
- Better LSP symbols with
keep_parents option- Customizable projects max depth
- Improved session manager support (AutoSession)
-
<c-g> mapped to print file path/cwd- Better vim.ui.select integration
### Image Rendering
- New Features:
- ICNS format support
- Base64 encoded images in URLs
- PDF page-specific rendering
-
Snacks.image.clear() function- Bug Fixes:
- Better terminal detection
- Render fallback improvements for editor-relative positioning
- ENOENT handling in preview
- Hover close behavior in insert mode
- Markdown inline link queries
- LaTeX package parsing (skip comments and body)
### Window Layout
- Support for
vim.o.winborder - all Snacks windows now respect this setting- Static layouts now shrink to fit contents
- Configurable split window stacking
- Better layout configuration hooks
- Improved window allocation (at least 1 cell per widget)
- Width/height can now be functions
### Dashboard
- Optional
filter function for projects- Better recent files filtering with
cwd option- Improved terminal widget handling
- AutoSession command updates
- Better showtabline/laststatus restoration
- Improved cursor positioning
### Git Features
- Configurable extra git args for all git sources
- Better submodule support (always check parents for git root)
- Proper diff prefix handling (
diff.noprefix=false)- GitBrowse: Fixed GitLab URLs and commit options
### Explorer
- Improved file system watching (better handling of systems without filename events)
- Better mounted directory detection
- Git deletion handling for non-existent parent dirs
- Reset main when entering another window
### Other Notable Changes
- Terminal: UX improvements, better window validation, fixed
position='current'- Toggle: Customizable notifications via function
- Input: Custom highlight function support, better z-index handling
- Indent: Window-aware filter functions, better validation
- Bigfile: Disable mini-hipatterns integration, Windows support
- Lazygit: Extensible user args, better config file handling
- Notifier: Minimal style padding fixes, keep filtered notifications in history
- Scratch: Better branch handling, icon fixes
- Scroll: Don't animate 1-line scrolls, better buffer change detection
- Bufdelete: Try alternate buffer first
## Bug Fixes
This release includes 80+ bug fixes across all modules, with particular focus on:
- Picker: 30+ fi
GitHub
GitHub - folke/snacks.nvim: 🍿 A collection of QoL plugins for Neovim
🍿 A collection of QoL plugins for Neovim. Contribute to folke/snacks.nvim development by creating an account on GitHub.
xes including LSP request handling, preview scrolling, qflist items, marks buffer checking, and many more
- Image: Terminal detection, rendering fallbacks, hover behavior
- Dashboard: File filtering, cursor positioning, recent files display
- Explorer: File watching, mounted directories
- Git: Submodule handling, diff formatting
- Layout: Window allocation, dimension calculations
- Terminal: Buffer handling, split stacking
- Input: z-index issues
- Scroll: Animation edge cases
## Stats
- 50+ new features
- 80+ bug fixes
- Closes 60+ issues
For the complete changelog, see <https://github.com/folke/snacks.nvim/blob/main/CHANGELOG.md>
https://redd.it/1oe1qlr
@r_neovim
- Image: Terminal detection, rendering fallbacks, hover behavior
- Dashboard: File filtering, cursor positioning, recent files display
- Explorer: File watching, mounted directories
- Git: Submodule handling, diff formatting
- Layout: Window allocation, dimension calculations
- Terminal: Buffer handling, split stacking
- Input: z-index issues
- Scroll: Animation edge cases
## Stats
- 50+ new features
- 80+ bug fixes
- Closes 60+ issues
For the complete changelog, see <https://github.com/folke/snacks.nvim/blob/main/CHANGELOG.md>
https://redd.it/1oe1qlr
@r_neovim
GitHub
snacks.nvim/CHANGELOG.md at main · folke/snacks.nvim
🍿 A collection of QoL plugins for Neovim. Contribute to folke/snacks.nvim development by creating an account on GitHub.
I fixed zig diagnostics
(Discussion)
I was disappointed by inability of zls to report compile errors. No blame, the project is young and independant.
I don't know if it's the same case for the other compiled languages, but for young once like odin/c3 might be the same.
So I did compile watch in neovim terminal and read the error report, then put them to quickfix/diagnostics list.
By analogy you may create a plugin for another editor.
Appreciate feedback if I did a total dumbness.
https://github.com/dennypenta/home/blob/e9cef97ac752e233d293cfefdb6fdcea7004ae97/.config/nvim/lua/plugins/compile.lua#L295
https://redd.it/1odxnv0
@r_neovim
(Discussion)
I was disappointed by inability of zls to report compile errors. No blame, the project is young and independant.
I don't know if it's the same case for the other compiled languages, but for young once like odin/c3 might be the same.
So I did compile watch in neovim terminal and read the error report, then put them to quickfix/diagnostics list.
By analogy you may create a plugin for another editor.
Appreciate feedback if I did a total dumbness.
https://github.com/dennypenta/home/blob/e9cef97ac752e233d293cfefdb6fdcea7004ae97/.config/nvim/lua/plugins/compile.lua#L295
https://redd.it/1odxnv0
@r_neovim
GitHub
home/.config/nvim/lua/plugins/compile.lua at e9cef97ac752e233d293cfefdb6fdcea7004ae97 · dennypenta/home
The repository holds my setup: nvim, alacritty, zshrc, git - dennypenta/home
filler-begone.nvim - Prevent scrolling beyond buffer content
(Plugin)
Prevents neovim from scrolling past the bottom of the buffer and showing unnecessary
It's great for standard buffers, but especially useful for floating buffers (lists, git, completion menu, documentation, etc) where filler lines don't make any sense.
Special thanks to zeertzjq, justinmk, seandewar, and echasnovski for their help!
Note: When using
https://github.com/Saghen/filler-begone.nvim
> The lines after the last buffer line in a window are called filler lines. By
default, these lines start with a tilde (~) character. The "eob" item in the
'fillchars' option can be used to change this character. By default, these
characters are highlighted as NonText (|hl-NonText|). The EndOfBuffer
highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
the filler characters.
https://redd.it/1oeax19
@r_neovim
(Plugin)
Prevents neovim from scrolling past the bottom of the buffer and showing unnecessary
:h filler-lines. While debugging a blink.cmp issue, I discovered that the solution would be generic to all buffers, so I broke it out into an independent plugin. Plugin initializes itself automatically, just add it to your package manager.It's great for standard buffers, but especially useful for floating buffers (lists, git, completion menu, documentation, etc) where filler lines don't make any sense.
Special thanks to zeertzjq, justinmk, seandewar, and echasnovski for their help!
Note: When using
vim._extui, set vim.o.showcmd = false to prevent an issue with forced redrawing causing flickering. Thanks stefanboca for debugging this!https://github.com/Saghen/filler-begone.nvim
:h filler-lines:> The lines after the last buffer line in a window are called filler lines. By
default, these lines start with a tilde (~) character. The "eob" item in the
'fillchars' option can be used to change this character. By default, these
characters are highlighted as NonText (|hl-NonText|). The EndOfBuffer
highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
the filler characters.
https://redd.it/1oeax19
@r_neovim
GitHub
Scroll line jump out. · Issue #2107 · Saghen/blink.cmp
Make sure you have done the following Updated to the latest version of blink.cmp Searched for existing issues and documentation (try <C-k> on https://cmp.saghen.dev) Bug Description The first...
Install vim.pack plugins headless-ly?
(Need Help┃Solved)
I'm using 0.12 with vim.pack as "plugin manager", and every time I add my config to a docker image, I always have to press "Y" for "yes" or "A" for "always", to install all the plugins at startup. Is there any way to install all plugins non-interactively, something like "nvim --headless --installall" or something?
I could just clone all the repos manually and pit them in the correct directory, but I'd prefer it if it was more dynamic than that, such that it installs any new plugins I add to my config.
Another thing is to pipe "Y" to nvim, but I won't know how many would be needed if I want to keep it dynamic like stated above.
https://redd.it/1odx30r
@r_neovim
(Need Help┃Solved)
I'm using 0.12 with vim.pack as "plugin manager", and every time I add my config to a docker image, I always have to press "Y" for "yes" or "A" for "always", to install all the plugins at startup. Is there any way to install all plugins non-interactively, something like "nvim --headless --installall" or something?
I could just clone all the repos manually and pit them in the correct directory, but I'd prefer it if it was more dynamic than that, such that it installs any new plugins I add to my config.
Another thing is to pipe "Y" to nvim, but I won't know how many would be needed if I want to keep it dynamic like stated above.
https://redd.it/1odx30r
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
😁1
Casually Using Language Injections in Neovim
https://julienvincent.io/posts/treesitter-language-injections
(Blog Post)
https://redd.it/1oei1l6
@r_neovim
https://julienvincent.io/posts/treesitter-language-injections
(Blog Post)
https://redd.it/1oei1l6
@r_neovim
julienvincent.io
Julien Vincent
Personal website
Repeat last forward/backward target command
(Need Help)
If I'm using a plugin like Mini.Bracketed, how do I repeat the last command done to continue to the next target? For example, if I do
https://redd.it/1oeenf2
@r_neovim
(Need Help)
If I'm using a plugin like Mini.Bracketed, how do I repeat the last command done to continue to the next target? For example, if I do
]d to go to the next diagnostic, is there a shortcut to repeat that same command?https://redd.it/1oeenf2
@r_neovim
MINI
mini.bracketed – MINI
Modular Independent Neovim Improvements
The tools that I love: Vim
https://lervag.github.io/posts/how-i-vim/
(Blog Post)
https://redd.it/1oeqfqd
@r_neovim
https://lervag.github.io/posts/how-i-vim/
(Blog Post)
https://redd.it/1oeqfqd
@r_neovim
lervag's blog
The tools that I love: Vim
In this series, I will briefly talk about tools that I love and that I use often.
I will keep things brief, as there is already a lot of good content that goes into more depth.
There is probably no single tool that I love more than Vim.
It is strange…
I will keep things brief, as there is already a lot of good content that goes into more depth.
There is probably no single tool that I love more than Vim.
It is strange…
How to prevent spellchecker flagging nerd-fonts icons like "" as misspelled ?
(Need Help)
I just realised that only nerd font icons had red underlines using oil for example.
I supposed I could add them to my spell-file I guess?
https://redd.it/1oeyvbr
@r_neovim
(Need Help)
I just realised that only nerd font icons had red underlines using oil for example.
I supposed I could add them to my spell-file I guess?
https://redd.it/1oeyvbr
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
Has anyone gotten the biome lsp setup with the v0.11 way (without lspconfig)
(Need Help)
Was able to setup every other lsp except biome. Would really appreciate any help
https://redd.it/1of6lzt
@r_neovim
(Need Help)
Was able to setup every other lsp except biome. Would really appreciate any help
https://redd.it/1of6lzt
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
Suppressing Certain Errors Globally in Neovim
(Need Help)
Does anyone know how to suppress certain errors completely?
I'm not trying to use
https://redd.it/1oeylgr
@r_neovim
(Need Help)
Does anyone know how to suppress certain errors completely?
I'm not trying to use
:silent for specific commands, rather, there are certain errors that really don't care about, such as Mark has invalid line number and such that frequently pop up when I've removed files, similar issues occur with plugins that do Git history for me when files are removed. It'd be nicer for me to just filter those messages out completely as they don't really help me at all and just interrupt my workflows.https://redd.it/1oeylgr
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
How to set custom keymappings with mason-lspconfig and Lazy.
(Need Help)
I'm pretty new to neovim and I'm using the lazy package manager to try to set up LSP support with nvim-lspconfig, Mason, and Mason-lspconfig. My current lsp.lua file looks like this.
I was wondering where to put keymappings that look like this.
vim.keymap.set("n", "gd", vim.lsp.buf.definition()) vim.keymap.set("n", "K", vim.lsp.buf.hover()) vim.keymap.set("n", "<leader>sd", vim.diagnostic.open_float()) vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename())
https://redd.it/1oer8vx
@r_neovim
(Need Help)
I'm pretty new to neovim and I'm using the lazy package manager to try to set up LSP support with nvim-lspconfig, Mason, and Mason-lspconfig. My current lsp.lua file looks like this.
return {
{
"neovim/nvim-lspconfig",
},
{
"mason-org/mason.nvim",
opts = {}
},
{
"mason-org/mason-lspconfig.nvim",
opts = {},
dependencies = {"mason-org/mason.nvim","neovim/nvim-lspconfig",},
}
} I was wondering where to put keymappings that look like this.
vim.keymap.set("n", "gd", vim.lsp.buf.definition()) vim.keymap.set("n", "K", vim.lsp.buf.hover()) vim.keymap.set("n", "<leader>sd", vim.diagnostic.open_float()) vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename())
https://redd.it/1oer8vx
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
Prasiodark - the colorscheme I've been running for the past 6 months
https://redd.it/1oez9xh
@r_neovim
https://redd.it/1oez9xh
@r_neovim
Maple Dark: A carefully crafted color scheme with medium brightness and low saturation
https://redd.it/1ofnoab
@r_neovim
https://redd.it/1ofnoab
@r_neovim
Implementing your own VSCode-style LSP breadcrumbs (not a plugin)
(Video)
I've been using dropbar.nvim for a while now. It's great! But I found that I wasn't using it to the full-extent of the features it offers. All I really wanted was the breadcrumbs, not the interactivity.
I am on a mission to cut down on my plugin needs. Plugins are great but most of them come with features that you don't fully use. If you can implement them on your own, not only can you tailor it to your particular use-case, but you can also appreciate the tool you are using. Lua is easy. And Neovim is insanely extensible. Just recently, I implemented Eldoc-style hover-documentation in Neovim.
So today I decided to dive into the docs again and created my own, simple, LSP breadcrumbs. Just to get the functionality working it took me \~100LOC. You can supplement it with aesthetics as you require. To get started, you can yoink this code, drop it into your config's init.lua (or in your lua/ directory and require(...) it in your init.lua), and voila!
Below is the video of how my implementation compares against dropbar.nvim:
dropbar.nvim in tab 2 and my implementation in tab 3
https://redd.it/1ofp9ia
@r_neovim
(Video)
I've been using dropbar.nvim for a while now. It's great! But I found that I wasn't using it to the full-extent of the features it offers. All I really wanted was the breadcrumbs, not the interactivity.
I am on a mission to cut down on my plugin needs. Plugins are great but most of them come with features that you don't fully use. If you can implement them on your own, not only can you tailor it to your particular use-case, but you can also appreciate the tool you are using. Lua is easy. And Neovim is insanely extensible. Just recently, I implemented Eldoc-style hover-documentation in Neovim.
So today I decided to dive into the docs again and created my own, simple, LSP breadcrumbs. Just to get the functionality working it took me \~100LOC. You can supplement it with aesthetics as you require. To get started, you can yoink this code, drop it into your config's init.lua (or in your lua/ directory and require(...) it in your init.lua), and voila!
Below is the video of how my implementation compares against dropbar.nvim:
dropbar.nvim in tab 2 and my implementation in tab 3
https://redd.it/1ofp9ia
@r_neovim
GitHub
GitHub - Bekaboo/dropbar.nvim: IDE-like breadcrumbs, out of the box
IDE-like breadcrumbs, out of the box. Contribute to Bekaboo/dropbar.nvim development by creating an account on GitHub.
🩺 tiny-inline-diagnostic.nvim: major refactoring, related diagnostics, and more! (repost)
https://redd.it/1ofvp4x
@r_neovim
https://redd.it/1ofvp4x
@r_neovim
Better command-line window
(Discussion)
So I saw the post about the plugin-less breadcrumbs, I copied the code and wanted to experiment with it
for instance I wanted to see what this snippet does
but typing :lua print(<paste snippet>) is very cumbersome and even more cumbersome if I wanted to make changes to the snippet. I want something like the command window (see :h command-line-window) but more powerfull aka a neovim/lua repl. so it would let you paste and run multiline lua snippets
https://redd.it/1og001f
@r_neovim
(Discussion)
So I saw the post about the plugin-less breadcrumbs, I copied the code and wanted to experiment with it
for instance I wanted to see what this snippet does
vim.lsp.buf_request(
bufnr,
'textDocument/documentSymbol',
params,
lsp_callback
)
but typing :lua print(<paste snippet>) is very cumbersome and even more cumbersome if I wanted to make changes to the snippet. I want something like the command window (see :h command-line-window) but more powerfull aka a neovim/lua repl. so it would let you paste and run multiline lua snippets
https://redd.it/1og001f
@r_neovim
Reddit
From the neovim community on Reddit
Explore this post and more from the neovim community
