Home

Awesome

👁️ bufignore

Bufignore is a plugin for Neovim that helps you keep your buffer list organized by automatically unlisting hidden buffers that match specific ignore sources, such as a Lua pattern or Git ignored files. It was designed to solve the annoyance of a cluttered buffer list when working with Git ignored files, such as those within .git or node_modules.

<br />

https://user-images.githubusercontent.com/2284724/232234047-e170007b-7f31-4e6b-b727-ec62a0196710.mp4

<br />

✨ Key features

<br />

⚡ Requirements

<br />

📦 Installation

lazy

{
  'sQVe/bufignore.nvim',
  dependencies = { 'nvim-lua/plenary.nvim' },
  opts = {
    -- Input configuration here.
    -- Refer to the configuration section below for options.
  }
},

packer

use({
  'sQVe/bufignore.nvim',
  requires = { 'nvim-lua/plenary.nvim' },
  config = function()
    require("bufignore").setup({
      -- Input configuration here.
      -- Refer to the configuration section below for options.
    })
  end
})
<br />

⚙ Configuration

The following code block shows the available options and their defaults:

{
  auto_start = true,
  ignore_sources = {
    git = true,
    patterns = { '/%.git/' },
    symlink = true,
    ignore_cwd_only = true,
  },
  pre_unlist = nil,
}

auto_start

A boolean value that determines whether to start the plugin automatically after calling setup().

ignore_sources

A table that sets which sources to use when checking whether a file is supposed to be unlisted or not.

git

A boolean value that determines whether Git ignored files are unlisted or not.

patterns

A table of Lua patterns that determines whether the file should be unlisted or not.

symlink

A boolean value that determines whether symlinked files are unlisted or not.

ignore_cwd_only

A boolean value that determines whether to only unlist files that are within the current working directory.

pre_unlist

A callback function that executes before unlisting a buffer. You can use this function to customize which buffers to unlist by returning a boolean value. The unlisting process will only proceed if the callback function returns true.

Parameters
Return

Return true to proceed with the unlisting process, or anything else to prevent the buffer from being unlisted.

<br />

📗 Usage

Bufignore works out-of-the-box with the auto_start option enabled. The following API is available under require('bufignore') if you want to handle things manually:

setup

Sets up the plugin, see configuration for further information.

start

Start the plugin.

stop

Stop the plugin.

<br />

🤝 Contributing

All contributions to Bufignore are greatly appreciated, whether it's a bug fix or a feature request. If you would like to contribute, please don't hesitate to reach out via the issue tracker.

Before making a pull request, please consider the following:

<br />

🏁 Roadmap