utils.nvim
is a Neovim plugin that provides a collection of utilities to simplify the development of your Neovim plugins.
- Picker Absctraction: Offers a simple interface for popular pickers, no need to write custom picker anymore!
- Caching Mechanism: Implements a caching system to store data and reduce unnecessary command execution, optimizing performance.
- Notification Management: Offers functions to queue and display notifications, allowing seamless user communication within plugins.
- Shell Execution: Includes capabilities to execute commands async, work with system tools, improving workflow efficiency.
- More!
plenary.nvim
nvim-web-devicons
(optional, for language icons)
utils.nvim
is not meant to be installed by itself, but rather as a dependency for another plugin.
If you are building a plugin that requires the utilities provided by utils.nvim
, you can add it as a dependency as shown below:
-- Lazy
{
'yourname/plugin.nvim',
dependencies = {
'2kabhishek/utils.nvim'
opts = {
-- Decide picker is used by default
picker_provider = "snacks", -- 'telescope', 'fzf_lua', or 'snacks' (default)
}
},
},
utils.nvim
is divided into several modules, each providing specific functionalities:
picker
: a module providing abstractions over various picker providers, supportstelescope
,fzf_lua
, andsnacks
.cache
: a module for caching data and managing cache files.notification
: a module for simplifying notification queues.language
: a module for programming language filetype and icon management.shell
: a module for executing shell commands and opening URLs, files.json
: a module for handling JSON data.time
: a module for working with time and date.
utils.nvim
adds the following command:
UtilsClearCache
: Clears all cache files saved by the plugin. To execute it, run:
Run :help utils.txt
for more details.
Planning to add <feature/module>
.
- You tell me!
utils.nvim was created while working on octohub.nvim which relied on a lot of common utilities like async shell execution, notifications, and caching.
- Figuring out the callback mechanism for async functions was a bit tricky.
- Learned better ways to handle caching and notifications.
- octohub.nvim β All your GitHub features in Neovim, uses utils.nvim
- nerdy.nvim β Find nerd glyphs easily
- tdo.nvim β Fast and simple notes in Neovim
β hit the star button if you found this useful β
Source | Blog | Twitter | LinkedIn | More Links | Other Projects