2022-11-02 22:50:13 -07:00
|
|
|
require('bufferline').setup {
|
|
|
|
options = {
|
|
|
|
-- numbers = function(opts)
|
|
|
|
-- return string.format("%s", opts.id)
|
|
|
|
-- end,
|
|
|
|
numbers = function(opts)
|
|
|
|
return ""
|
|
|
|
end,
|
|
|
|
-- number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2
|
|
|
|
-- number_style = "none",
|
|
|
|
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
|
|
|
|
indicator_style = '▎',
|
2023-05-03 23:59:17 -07:00
|
|
|
buffer_close_icon = '',
|
2022-11-02 22:50:13 -07:00
|
|
|
modified_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 = 18,
|
|
|
|
max_prefix_length = 15, -- prefix used when a buffer is de-duplicated
|
|
|
|
tab_size = 18,
|
|
|
|
-- diagnostics = false | "nvim_lsp" | "coc",
|
|
|
|
diagnostics = "nvim_lsp",
|
|
|
|
diagnostics_update_in_insert = false,
|
|
|
|
diagnostics_indicator = function(count, level, diagnostics_dict, context)
|
|
|
|
local s = " "
|
|
|
|
for e, n in pairs(diagnostics_dict) do
|
|
|
|
local sym = e == "error" and " "
|
|
|
|
or e == "hint" and " "
|
|
|
|
or (e == "warning" and " " or "" )
|
|
|
|
s = s .. n .. sym
|
|
|
|
end
|
|
|
|
return s
|
|
|
|
end,
|
|
|
|
custom_filter = function(buf_number, buf_numbers)
|
|
|
|
-- 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
|
|
|
|
-- filter out by it's index number in list (don't show first buffer)
|
|
|
|
if buf_numbers[1] ~= buf_number then
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
-- offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}},
|
|
|
|
-- offsets = text_align = "left" | "center" | "right"}},
|
|
|
|
show_buffer_icons = true,
|
|
|
|
show_buffer_close_icons = true,
|
|
|
|
show_close_icon = false,
|
|
|
|
show_tab_indicators = true,
|
|
|
|
persist_buffer_sort = false, -- whether or not custom sorted buffers should persist
|
|
|
|
-- can also be a table containing 2 custom separators
|
|
|
|
-- [focused and unfocused]. eg: { '|', '|' }
|
|
|
|
-- separator_style = "slant" | "thick" | "thin" | { 'any', 'any' },
|
|
|
|
separator_style = "thick",
|
|
|
|
enforce_regular_tabs = false,
|
|
|
|
always_show_bufferline = true,
|
|
|
|
-- sort_by = 'id' | 'extension' | 'relative_directory' | 'directory' | 'tabs' | function(buffer_a, buffer_b)
|
|
|
|
sort_by = 'id',
|
|
|
|
}
|
|
|
|
}
|