85 lines
1.8 KiB
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.text,
|
|
bg = frappe.base,
|
|
},
|
|
modified_visible = {
|
|
fg = frappe.text,
|
|
bg = frappe.surface0,
|
|
},
|
|
modified_selected = {
|
|
fg = frappe.text,
|
|
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>")
|