🍿 A collection of QoL plugins for Neovim
Find a file
2024-11-05 23:16:08 +01:00
.github ci: integrated with ci scripts 2024-11-03 09:04:33 +01:00
doc docs: better docs 2024-11-05 23:16:08 +01:00
docs docs: better docs 2024-11-05 23:16:08 +01:00
lua/snacks docs: better docs 2024-11-05 23:16:08 +01:00
plugin feat: ensure Snacks global is available when not using setup 2024-11-04 16:39:24 +01:00
queries/lua feat: config & setup 2024-11-03 12:56:05 +01:00
scripts docs: better docs 2024-11-05 23:16:08 +01:00
tests ci: docgen 2024-11-04 16:39:24 +01:00
.editorconfig ci: integrated with ci scripts 2024-11-03 09:04:33 +01:00
.gitignore ci: integrated with ci scripts 2024-11-03 09:04:33 +01:00
LICENSE ci: integrated with ci scripts 2024-11-03 09:04:33 +01:00
README.md docs: better docs 2024-11-05 23:16:08 +01:00
selene.toml feat: initial commit 2024-11-02 23:24:33 +01:00
stylua.toml feat: initial commit 2024-11-02 23:24:33 +01:00
vim.toml feat: initial commit 2024-11-02 23:24:33 +01:00

🍿 snacks.nvim

A collection of small QoL plugins for Neovim.

Caution

Do NOT use this for now, it's still in development.

Requirements

📦 Installation

Install the plugin with your package manager:

lazy.nvim

Important

A couple of plugins require snacks.nvim to be set-up early. Setup only sets up some autocmds and does not load any plugins. Check the code to see exactly what is being set up.

Tip

If you don't need these plugins, you can disable them, or skip setup alltogether.

{
  "folke/snacks.nvim",
  priority = 1000,
  lazy = false,
  opts = {
    -- your configuration comes here
    -- or leave it empty to use the default settings
    -- refer to the configuration section below
  },
  keys = {
    {
      "<leader>?",
      function()
        require("which-key").show({ global = false })
      end,
      desc = "Buffer Local Keymaps (which-key)",
    },
  },
}

⚙️ Configuration

Please refer to the readme of each plugin for their specific configuration.

Default Options
---@class snacks.Config
---@field bigfile? snacks.bigfile.Config | { enabled: boolean }
---@field gitbrowse? snacks.gitbrowse.Config
---@field lazygit? snacks.lazygit.Config
---@field notifier? snacks.notifier.Config | { enabled: boolean }
---@field quickfile? { enabled: boolean }
---@field statuscolumn? snacks.statuscolumn.Config  | { enabled: boolean }
---@field terminal? snacks.terminal.Config
---@field toggle? snacks.toggle.Config
---@field views? table<string, snacks.win.Config>
---@field win? snacks.win.Config
---@field words? snacks.words.Config
{
  views = {},
  bigfile = { enabled = true },
  notifier = { enabled = true },
  quickfile = { enabled = true },
  statuscolumn = { enabled = true },
  words = { enabled = true },
}

📦 Snacks

Module Description Readme
bigfile Deal with big files README
bufdelete Delete buffers without disrupting window layout README
debug Pretty inspect & backtraces for debugging README
git Useful tools for Git README
gitbrowse Open the repo of the active file in the browser (e.g., GitHub) README
lazygit Open LazyGit in a float, auto-configure colorscheme and integration with Neovim README
notify Small wrapper around Neovim's vim.notify README
notifier Better vim.notify README
quickfile Render a file as quickly as possible before loading all plugins (progressive rendering) README
rename LSP-integrated renaming with support for plugins like neo-tree, nvim-tree, oil, mini.files README
statuscolumn Customizable statuscolumn README
terminal Create and toggle floating/sp. Uses float. README
toggle Toggle keymaps integrated with which-key icons / colors README
win Easily create and manage floating windows or splits README
words Auto-show LSP references, auto-show and quick navigation between them README