2022-02-13 23:12:17 +01:00
|
|
|
local status_ok, bufferline = pcall(require, "bufferline")
|
|
|
|
if not status_ok then
|
2022-06-09 16:25:51 +02:00
|
|
|
return
|
2022-02-13 23:12:17 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
bufferline.setup {
|
2022-06-09 16:25:51 +02:00
|
|
|
options = {
|
|
|
|
numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
|
|
|
|
close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
|
|
|
|
middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
|
|
|
|
-- NOTE: this plugin is designed with this icon in mind,
|
|
|
|
-- and so changing this is NOT recommended, this is intended
|
|
|
|
-- as an escape hatch for people who cannot bear it for whatever reason
|
2022-10-12 11:51:43 +02:00
|
|
|
indicator = {
|
|
|
|
icon = "icon",
|
|
|
|
style = "▎",
|
|
|
|
},
|
2022-06-09 16:25:51 +02:00
|
|
|
buffer_close_icon = "",
|
|
|
|
-- buffer_close_icon = '',
|
|
|
|
modified_icon = "●",
|
|
|
|
close_icon = "",
|
|
|
|
-- close_icon = '',
|
|
|
|
left_trunc_marker = "",
|
|
|
|
right_trunc_marker = "",
|
|
|
|
--- name_formatter can be used to change the buffer's label in the bufferline.
|
|
|
|
--- Please note some names can/will break the
|
|
|
|
--- bufferline so use this at your discretion knowing that it has
|
|
|
|
--- some limitations that will *NOT* be fixed.
|
|
|
|
-- name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
|
|
|
|
-- -- remove extension from markdown files for example
|
|
|
|
-- if buf.name:match('%.md') then
|
|
|
|
-- return vim.fn.fnamemodify(buf.name, ':t:r')
|
|
|
|
-- end
|
|
|
|
-- end,
|
|
|
|
max_name_length = 30,
|
|
|
|
max_prefix_length = 30, -- prefix used when a buffer is de-duplicated
|
|
|
|
tab_size = 21,
|
|
|
|
diagnostics = false, -- | "nvim_lsp" | "coc",
|
|
|
|
diagnostics_update_in_insert = false,
|
|
|
|
-- diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
|
|
|
-- return "("..count..")"
|
|
|
|
-- end,
|
|
|
|
-- NOTE: this will be called a lot so don't do any heavy processing here
|
|
|
|
-- custom_filter = function(buf_number)
|
|
|
|
-- -- filter out filetypes you don't want to see
|
|
|
|
-- if vim.bo[buf_number].filetype ~= "<i-dont-want-to-see-this>" then
|
|
|
|
-- return true
|
|
|
|
-- end
|
|
|
|
-- -- filter out by buffer name
|
|
|
|
-- if vim.fn.bufname(buf_number) ~= "<buffer-name-I-dont-want>" then
|
|
|
|
-- return true
|
|
|
|
-- end
|
|
|
|
-- -- filter out based on arbitrary rules
|
|
|
|
-- -- e.g. filter out vim wiki buffer from tabline in your work repo
|
|
|
|
-- if vim.fn.getcwd() == "<work-repo>" and vim.bo[buf_number].filetype ~= "wiki" then
|
|
|
|
-- return true
|
|
|
|
-- end
|
|
|
|
-- end,
|
|
|
|
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
|
|
|
|
show_buffer_icons = true,
|
|
|
|
show_buffer_close_icons = true,
|
|
|
|
show_close_icon = true,
|
|
|
|
show_tab_indicators = true,
|
|
|
|
persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
|
|
|
|
-- can also be a table containing 2 custom separators
|
|
|
|
-- [focused and unfocused]. eg: { '|', '|' }
|
|
|
|
separator_style = "thin", -- | "thick" | "thin" | { 'any', 'any' },
|
|
|
|
enforce_regular_tabs = true,
|
|
|
|
always_show_bufferline = true,
|
|
|
|
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
|
|
|
|
-- -- add custom logic
|
|
|
|
-- return buffer_a.modified > buffer_b.modified
|
|
|
|
-- end
|
|
|
|
},
|
|
|
|
highlights = {
|
|
|
|
fill = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "#ff0000" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
background = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
-- buffer_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
-- fg = {attribute='fg',highlight='#ff0000'},
|
|
|
|
-- bg = {attribute='bg',highlight='#0000ff'},
|
2022-06-09 16:25:51 +02:00
|
|
|
-- gui = 'none'
|
|
|
|
-- },
|
|
|
|
buffer_visible = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
close_button = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
close_button_visible = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
-- close_button_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
-- fg = {attribute='fg',highlight='TabLineSel'},
|
|
|
|
-- bg ={attribute='bg',highlight='TabLineSel'}
|
2022-06-09 16:25:51 +02:00
|
|
|
-- },
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
tab_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "Normal" },
|
|
|
|
bg = { attribute = "bg", highlight = "Normal" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
tab = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
tab_close = {
|
2022-10-12 11:51:43 +02:00
|
|
|
-- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'},
|
|
|
|
fg = { attribute = "fg", highlight = "TabLineSel" },
|
|
|
|
bg = { attribute = "bg", highlight = "Normal" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
duplicate_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLineSel" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLineSel" },
|
|
|
|
italic = true,
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
duplicate_visible = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
|
|
|
italic = true,
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
duplicate = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
|
|
|
italic = true,
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
modified = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
modified_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "Normal" },
|
|
|
|
bg = { attribute = "bg", highlight = "Normal" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
modified_visible = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
|
2022-06-09 16:25:51 +02:00
|
|
|
separator = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "bg", highlight = "TabLine" },
|
|
|
|
bg = { attribute = "bg", highlight = "TabLine" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
separator_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "bg", highlight = "Normal" },
|
|
|
|
bg = { attribute = "bg", highlight = "Normal" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
|
|
|
-- separator_visible = {
|
2022-10-12 11:51:43 +02:00
|
|
|
-- fg = {attribute='bg',highlight='TabLine'},
|
|
|
|
-- bg = {attribute='bg',highlight='TabLine'}
|
2022-06-09 16:25:51 +02:00
|
|
|
-- },
|
|
|
|
indicator_selected = {
|
2022-10-12 11:51:43 +02:00
|
|
|
fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" },
|
|
|
|
bg = { attribute = "bg", highlight = "Normal" },
|
2022-06-09 16:25:51 +02:00
|
|
|
},
|
2022-02-13 23:12:17 +01:00
|
|
|
},
|
|
|
|
}
|