Files
nvim/lua/config/bufferline.lua

85 lines
1.8 KiB
Lua

--- Ensure plugin is avaiable
local ok, bufferline = pcall(require, "bufferline")
if not ok then
return
end
--- Plugin options
local frappe = require("catppuccin.palettes").get_palette("frappe")
local opts = {
options = {
-- mode = "tabs",
separator_style = "slant",
},
highlights = require("catppuccin.groups.integrations.bufferline").get({
styles = { "italic", "bold" },
custom = {
all = {
fill = { -- bg before buffer
fg = frappe.text,
bg = frappe.crust,
},
background = { -- buffer bg
fg = frappe.text,
bg = frappe.base,
},
buffer_visible = { -- buffer displayed when in another tab
fg = frappe.text,
bg = frappe.surface0,
},
buffer_selected = { -- bufferline displayed when in tab
fg = frappe.text,
bg = frappe.overlay0,
},
close_button = {
fg = frappe.text,
bg = frappe.base,
},
close_button_visible = {
fg = frappe.text,
bg = frappe.surface0,
},
close_button_selected = {
fg = frappe.text,
bg = frappe.overlay0,
},
modified = {
fg = frappe.green,
bg = frappe.base,
},
modified_visible = {
fg = frappe.green,
bg = frappe.surface0,
},
modified_selected = {
fg = frappe.green,
bg = frappe.overlay0,
},
separator = {
fg = frappe.crust,
bg = frappe.base,
},
separator_visible = {
fg = frappe.crust,
bg = frappe.surface0,
},
separator_selected = {
fg = frappe.crust,
bg = frappe.overlay0,
},
},
},
}),
}
--- Load plugin
bufferline.setup(opts)
--- Override keymaps
local km = vim.keymap.set
km("n", "<Tab>", ":BufferLineCycleNext<cr>")
km("n", "<S-Tab>", ":BufferLineCyclePrev<cr>")
km("n", "<leader>bn", ":BufferLineMoveNext<cr>")
km("n", "<leader>bp", ":BufferLineMovePrev<cr>")
km("n", "<leader>bc", ":BufferLinePickClose<cr>")