diff --git a/lua/custom/autocmd.lua b/lua/custom/autocmd.lua index cb10ba3..d0b1371 100644 --- a/lua/custom/autocmd.lua +++ b/lua/custom/autocmd.lua @@ -9,7 +9,7 @@ end -- get folder name from current directory local _get_folder_name = function() local str = vim.fn.fnamemodify(vim.fn.getcwd(), ":t") - return "My " .. str:lower():gsub("^%l", string.upper) + return " 󱧶 " .. str:lower():gsub("^%l", string.upper) .. " " end local term_program = vim.fn.getenv("TERM_PROGRAM") diff --git a/lua/custom/plugins/bufferline.lua b/lua/custom/plugins/bufferline.lua new file mode 100644 index 0000000..e107c8e --- /dev/null +++ b/lua/custom/plugins/bufferline.lua @@ -0,0 +1,161 @@ +return { + "akinsho/bufferline.nvim", + event = "VeryLazy", + config = function() + local status_ok, bufferline = pcall(require, "bufferline") + if not status_ok then + return + end + + local icons = require("user.icons") + local use_icons = true + + local function diagnostics_indicator(num, _, diagnostics, _) + local result = {} + local symbols = { + error = icons.diagnostics.Error, + warning = icons.diagnostics.Warning, + info = icons.diagnostics.Information, + } + if not use_icons then + return "(" .. num .. ")" + end + for name, count in pairs(diagnostics) do + if symbols[name] and count > 0 then + table.insert(result, symbols[name] .. " " .. count) + end + end + result = table.concat(result, " ") + return #result > 0 and result or "" + end + + vim.opt.termguicolors = true + + bufferline.setup({ + options = { + color_icons = true, + numbers = "none", -- | "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string, + close_command = function(bufnum) + require("bufdelete").bufdelete(bufnum, true) + end, + right_mouse_command = function(bufnum) + require("bufdelete").bufdelete(bufnum, true) + end, + -- close_command = "bdelete! %d", + -- right_mouse_command = "bdelete! %d", + left_mouse_command = "buffer %d", + middle_mouse_command = nil, + + indicator_icon = nil, + indicator = { style = "icon", icon = "▎" }, + buffer_close_icon = icons.ui.Close, + modified_icon = icons.ui.Circle, + close_icon = icons.ui.BoldClose, + left_trunc_marker = icons.ui.ArrowCircleLeft, + right_trunc_marker = icons.ui.ArrowCircleRight, + max_name_length = 30, + max_prefix_length = 30, + tab_size = 21, + diagnostics = false, -- | "nvim_lsp" | "coc", + diagnostics_update_in_insert = false, + diagnostics_indicator = diagnostics_indicator, + offsets = { + { + filetype = "NvimTree", + text = "Explorer", + highlight = "Directory", + text_align = "left", + padding = 1, + }, + { + filetype = "neo-tree", + text = "Explorer", + highlight = "Directory", + text_align = "left", + 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 + separator_style = { "", "" }, -- | "thick" | "thin" | { 'any', 'any' }, + enforce_regular_tabs = true, + always_show_bufferline = true, + }, + highlights = { + background = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + buffer_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + close_button = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + close_button_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + tab_selected = { + fg = { attribute = "fg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + tab = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + tab_close = { + -- fg = {attribute='fg',highlight='LspDiagnosticsDefaultError'}, + fg = { attribute = "fg", highlight = "TabLineSel" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + duplicate_selected = { + fg = { attribute = "fg", highlight = "TabLineSel" }, + bg = { attribute = "bg", highlight = "TabLineSel" }, + underline = true, + }, + duplicate_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + underline = true, + }, + duplicate = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + underline = true, + }, + + modified = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + modified_selected = { + fg = { attribute = "fg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + modified_visible = { + fg = { attribute = "fg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + + separator = { + fg = { attribute = "bg", highlight = "TabLine" }, + bg = { attribute = "bg", highlight = "TabLine" }, + }, + separator_selected = { + fg = { attribute = "bg", highlight = "Normal" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + indicator_selected = { + fg = { attribute = "fg", highlight = "LspDiagnosticsDefaultHint" }, + bg = { attribute = "bg", highlight = "Normal" }, + }, + }, + }) + end, +}