summaryrefslogtreecommitdiff
path: root/lua/lvim/core/bufferline.lua
diff options
context:
space:
mode:
authorLostNeophyte <[email protected]>2023-01-25 20:35:07 +0100
committerLostNeophyte <[email protected]>2023-01-25 20:35:14 +0100
commitbfe8ee9cba642525a5bbbe0b27f6049ba9ee1ef4 (patch)
treea8090330ae29bcb109ec3690b9226b837d799a37 /lua/lvim/core/bufferline.lua
parent75b653cc623a8cd6de397e42f21b838a065eb0e0 (diff)
fix: don't overriding user's config
Diffstat (limited to 'lua/lvim/core/bufferline.lua')
-rw-r--r--lua/lvim/core/bufferline.lua186
1 files changed, 91 insertions, 95 deletions
diff --git a/lua/lvim/core/bufferline.lua b/lua/lvim/core/bufferline.lua
index a48bffb9..605eca85 100644
--- a/lua/lvim/core/bufferline.lua
+++ b/lua/lvim/core/bufferline.lua
@@ -41,110 +41,106 @@ local function custom_filter(buf, buf_nums)
end
M.config = function()
- local config = {
- keymap = {
- normal_mode = {},
+ lvim.builtin.bufferline.keymap = {
+ normal_mode = {},
+ }
+ lvim.builtin.bufferline.opts = {
+ highlights = {
+ background = {
+ italic = true,
+ },
+ buffer_selected = {
+ bold = true,
+ },
},
- opts = {
- highlights = {
- background = {
- italic = true,
+ options = {
+ mode = "buffers", -- set to "tabs" to only show tabpages instead
+ numbers = "none", -- can be "none" | "ordinal" | "buffer_id" | "both" | function
+ close_command = function(bufnr) -- can be a string | function, see "Mouse actions"
+ M.buf_kill("bd", bufnr, false)
+ end,
+ right_mouse_command = "vert sbuffer %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"
+ indicator = {
+ icon = lvim.icons.ui.BoldLineLeft, -- this should be omitted if indicator style is not 'icon'
+ style = "icon", -- can also be 'underline'|'none',
+ },
+ buffer_close_icon = lvim.icons.ui.Close,
+ modified_icon = lvim.icons.ui.Circle,
+ close_icon = lvim.icons.ui.BoldClose,
+ left_trunc_marker = lvim.icons.ui.ArrowCircleLeft,
+ right_trunc_marker = lvim.icons.ui.ArrowCircleRight,
+ --- 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
+ truncate_names = true, -- whether or not tab names should be truncated
+ tab_size = 18,
+ diagnostics = "nvim_lsp",
+ diagnostics_update_in_insert = false,
+ diagnostics_indicator = diagnostics_indicator,
+ -- NOTE: this will be called a lot so don't do any heavy processing here
+ custom_filter = custom_filter,
+ offsets = {
+ {
+ filetype = "undotree",
+ text = "Undotree",
+ highlight = "PanelHeading",
+ padding = 1,
},
- buffer_selected = {
- bold = true,
+ {
+ filetype = "NvimTree",
+ text = "Explorer",
+ highlight = "PanelHeading",
+ padding = 1,
},
- },
- options = {
- mode = "buffers", -- set to "tabs" to only show tabpages instead
- numbers = "none", -- can be "none" | "ordinal" | "buffer_id" | "both" | function
- close_command = function(bufnr) -- can be a string | function, see "Mouse actions"
- M.buf_kill("bd", bufnr, false)
- end,
- right_mouse_command = "vert sbuffer %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"
- indicator = {
- icon = lvim.icons.ui.BoldLineLeft, -- this should be omitted if indicator style is not 'icon'
- style = "icon", -- can also be 'underline'|'none',
+ {
+ filetype = "DiffviewFiles",
+ text = "Diff View",
+ highlight = "PanelHeading",
+ padding = 1,
},
- buffer_close_icon = lvim.icons.ui.Close,
- modified_icon = lvim.icons.ui.Circle,
- close_icon = lvim.icons.ui.BoldClose,
- left_trunc_marker = lvim.icons.ui.ArrowCircleLeft,
- right_trunc_marker = lvim.icons.ui.ArrowCircleRight,
- --- 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
- truncate_names = true, -- whether or not tab names should be truncated
- tab_size = 18,
- diagnostics = "nvim_lsp",
- diagnostics_update_in_insert = false,
- diagnostics_indicator = diagnostics_indicator,
- -- NOTE: this will be called a lot so don't do any heavy processing here
- custom_filter = custom_filter,
- offsets = {
- {
- filetype = "undotree",
- text = "Undotree",
- highlight = "PanelHeading",
- padding = 1,
- },
- {
- filetype = "NvimTree",
- text = "Explorer",
- highlight = "PanelHeading",
- padding = 1,
- },
- {
- filetype = "DiffviewFiles",
- text = "Diff View",
- highlight = "PanelHeading",
- padding = 1,
- },
- {
- filetype = "flutterToolsOutline",
- text = "Flutter Outline",
- highlight = "PanelHeading",
- },
- {
- filetype = "lazy",
- text = "Lazy",
- highlight = "PanelHeading",
- padding = 1,
- },
+ {
+ filetype = "flutterToolsOutline",
+ text = "Flutter Outline",
+ highlight = "PanelHeading",
},
- color_icons = true, -- whether or not to add the filetype icon highlights
- show_buffer_icons = lvim.use_icons, -- disable filetype icons for buffers
- show_buffer_close_icons = lvim.use_icons,
- show_close_icon = false,
- 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",
- enforce_regular_tabs = false,
- always_show_bufferline = false,
- hover = {
- enabled = false, -- requires nvim 0.8+
- delay = 200,
- reveal = { "close" },
+ {
+ filetype = "lazy",
+ text = "Lazy",
+ highlight = "PanelHeading",
+ padding = 1,
},
- sort_by = "id",
},
+ color_icons = true, -- whether or not to add the filetype icon highlights
+ show_buffer_icons = lvim.use_icons, -- disable filetype icons for buffers
+ show_buffer_close_icons = lvim.use_icons,
+ show_close_icon = false,
+ 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",
+ enforce_regular_tabs = false,
+ always_show_bufferline = false,
+ hover = {
+ enabled = false, -- requires nvim 0.8+
+ delay = 200,
+ reveal = { "close" },
+ },
+ sort_by = "id",
},
}
- ---@cast config +LvimBuiltin
- require("lvim.core.builtins").extend_defaults(config)
- lvim.builtin.bufferline = config
+ lvim.builtin.bufferline = require("lvim.core.builtins").add_completion "bufferline"
end
M.setup = function()