ariel-frischer / bmessages.nvim

Bmessages.nvim better :messages window using an auto-updating buffer.
MIT License
43 stars 3 forks source link

💬 Bmessages - Better Neovim Messages

https://github.com/ariel-frischer/bmessages.nvim/assets/19893395/10ae410d-7d0d-4568-9c27-dc7ca6f89137

✨ Features

📦 Installation

Add bmessages to your Neovim configuration using your preferred package manager.

With lazy.nvim

Click to expand/collapse ```lua { "ariel-frischer/bmessages.nvim", event = "CmdlineEnter", opts = {} } ```

With packer.nvim

Click to expand/collapse ```lua use({ "ariel-frischer/bmessages.nvim", config = function() require("bmessages").setup({ -- config here or empty for defaults }) end, }) ```

With vim-plug

Click to expand/collapse ```vim Plug 'ariel-frischer/bmessages.nvim' " ... other plugins... " after plug#end() " provide `setup()` configuration options or leave empty for defaults lua require('bmessages').setup() ```

With pckr.nvim

Click to expand/collapse ```lua { "ariel-frischer/bmessages.nvim", config = function() require("bmessages").setup({ -- config here or empty for defaults }) end, }; ```

⚙️ Available Configuration Options

Given options are the default values.

local opts = {
  -- Time in milliseconds between each update of the messages buffer.
  timer_interval = 1000,
  -- Default split type for the messages buffer ('vsplit' or 'split').
  split_type = "vsplit",
  -- Default split direction for the messages buffer ('topleft' or 'botright').
  split_direction = nil,
  -- Size of the vertical split when opening the messages buffer.
  split_size_vsplit = nil,
  -- Size of the horizontal split when opening the messages buffer.
  split_size_split = nil,
  -- Automatically scroll to the latest message in the buffer.
  autoscroll = true,
  -- Use a timer to auto-update the messages buffer. When this is disabled,
  -- the buffer will not update, but the buffer becomes modifiable.
  use_timer = true,
  -- Name of the messages buffer.
  buffer_name = "bmessages_buffer",
  -- Don't add user commands for `Bmessages`, `Bmessagesvs`, and `Bmessagessp`.
  disable_create_user_commands = false,
  -- Don't focus the bmessages window after opening.
  keep_focus = false,
}

🚀 Usage

:Bmessages

Creates a message buffer with the configured options.

:Bmessagesvs

Creates a message buffer with a vertical split, overriding the split_type to vsplit.

:Bmessagessp

Creates a message buffer with a horizontal split, overriding the split_type to split.

:BmessagesEdit

Creates an editable message buffer with the configured options without auto updating.

Lua API

require("bmessages").toggle({ split_type = "split" })

⌨️ Keymaps

No keymaps are set by default, but you can easily set your own keymaps to open the messages buffer.

vim.api.nvim_set_keymap("n", "<leader>bm", ":Bmessages<CR>", { noremap = true, silent = true })

👏 Acknowledgements