Commit 94cc728

Ansari <ping@ansari.wtf>
2026-02-16 08:35:35
feat:buffline introduced
1 parent 781da27
.config/nvim/lua/plugins/alpha.lua
@@ -1,20 +1,20 @@
 return {
-  "goolord/alpha-nvim",
-  dependencies = { "nvim-mini/mini.icons" },
-  event = "VimEnter",
-
-  config = function()
-    ------------------------------------------------------------------
-    -- Load Alpha
-    ------------------------------------------------------------------
-    local alpha = require("alpha")
-    local dashboard = require("alpha.themes.dashboard")
-    local utils = require("alpha.utils")
-
-    ------------------------------------------------------------------
-    -- ASCII Logo
-    ------------------------------------------------------------------
-    local fill = vim.fn.winheight(0) - 43
+	"goolord/alpha-nvim",
+	dependencies = { "nvim-mini/mini.icons" },
+	event = "VimEnter",
+
+	config = function()
+		------------------------------------------------------------------
+		-- Load Alpha
+		------------------------------------------------------------------
+		local alpha = require("alpha")
+		local dashboard = require("alpha.themes.dashboard")
+		local utils = require("alpha.utils")
+
+		------------------------------------------------------------------
+		-- ASCII Logo
+		------------------------------------------------------------------
+		local fill = vim.fn.winheight(0) - 43
 		local logo = (fill >= 0 and [[
 
 
@@ -26,8 +26,7 @@ return {
 
 
 
-    ]] or '') ..
-        [[
+    ]] or "") .. [[
                                           
        ███████████           █████      ██
       ███████████             █████ 
@@ -40,180 +39,183 @@ return {
 
       ]]
 
-		-- Header: Logo 
+		-- Header: Logo
 		-------------------------------------------------------------------
-    local header_lines = vim.split(logo, "\n")
-    table.insert(header_lines, "")       -- spacer
-
-    dashboard.section.header.val = header_lines
-
-    ------------------------------------------------------------------
-    -- Optional: Logo Highlighting (kept from your theme)
-    ------------------------------------------------------------------
-    local header_hl = {}
-
-    if fill >= 0 then
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-      table.insert(header_hl, { { "Red", 1, 1 } })
-    end
-    table.insert(header_hl, { { "AlphaHeader0_0", 46, 48 } }) -- Line 10
-    table.insert(header_hl, {                                 -- Line 11
-      { "AlphaHeader1_0", 7,  22 },
-      { "AlphaHeader1_1", 33, 40 },
-      { "AlphaHeader1_2", 40, 50 }
-    })
-    table.insert(header_hl, { -- Line 12
-      { "AlphaHeader2_0", 6,  21 },
-      { "AlphaHeader2_1", 33, 45 },
-    })
-    table.insert(header_hl, { -- Line 13
-      { "AlphaHeader3_0", 6,  19 },
-      { "AlphaHeader3_1", 19, 20 },
-      { "AlphaHeader3_2", 20, 35 },
-      { "AlphaHeader3_3", 35, 45 },
-      { "AlphaHeader3_4", 45, 90 },
-    })
-    table.insert(header_hl, { -- Line 14
-      { "AlphaHeader4_0", 5,  18 },
-      { "AlphaHeader4_1", 18, 36 },
-      { "AlphaHeader4_2", 36, 45 },
-      { "AlphaHeader4_3", 45, 90 }
-    })
-    table.insert(header_hl, { -- Line 15
-      { "AlphaHeader5_0", 4,  17 },
-      { "AlphaHeader5_1", 17, 24 },
-      { "AlphaHeader5_2", 24, 28 },
-      { "AlphaHeader5_3", 28, 37 },
-      { "AlphaHeader5_4", 37, 46 },
-      { "AlphaHeader5_5", 46, 90 },
-    })
-    table.insert(header_hl, { -- Line 16
-      { "AlphaHeader6_0", 2,  17 },
-      { "AlphaHeader6_1", 17, 38 },
-      { "AlphaHeader6_2", 38, 45 },
-      { "AlphaHeader6_3", 46, 90 },
-    })
-    table.insert(header_hl, { -- Line 17
-      { "AlphaHeader7_0", 1,  17 },
-      { "AlphaHeader7_1", 17, 38 },
-      { "AlphaHeader7_2", 38, 45 },
-      { "AlphaHeader7_3", 46, 90 },
-    })
-    table.insert(header_hl, { -- Line 18
-      { "AlphaHeader8_0", 1,  37 },
-      { "AlphaHeader8_1", 37, 91 },
-    })
-
-		
-    vim.api.nvim_set_hl(0, "AlphaHeader0_0", { fg = "#a6c9ab" })
-    vim.api.nvim_set_hl(0, "AlphaHeader1_0", { fg = "#bb7744" })
-    vim.api.nvim_set_hl(0, "AlphaHeader1_1", { fg = "#386c3f" })
-    vim.api.nvim_set_hl(0, "AlphaHeader1_2", { fg = "#a6c9ab" })
-    vim.api.nvim_set_hl(0, "AlphaHeader2_0", { fg = "#be7d46" })
-    vim.api.nvim_set_hl(0, "AlphaHeader2_1", { fg = "#3d7344" })
-    vim.api.nvim_set_hl(0, "AlphaHeader3_0", { fg = "#c18250" })
-    vim.api.nvim_set_hl(0, "AlphaHeader3_1", { fg = "#5c441e" })
-    vim.api.nvim_set_hl(0, "AlphaHeader3_2", { fg = "#d6c383" })
-    vim.api.nvim_set_hl(0, "AlphaHeader3_3", { fg = "#407b48" })
-    vim.api.nvim_set_hl(0, "AlphaHeader3_4", { fg = "#98c09c" })
-    vim.api.nvim_set_hl(0, "AlphaHeader4_0", { fg = "#c38950" })
-    vim.api.nvim_set_hl(0, "AlphaHeader4_1", { fg = "#e0c785" })
-    vim.api.nvim_set_hl(0, "AlphaHeader4_2", { fg = "#44844b" })
-    vim.api.nvim_set_hl(0, "AlphaHeader4_3", { fg = "#a0c4a3" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_0", { fg = "#c58f56" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_1", { fg = "#e2cb85" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_2", { fg = "#5c441e" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_3", { fg = "#e2cb85" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_4", { fg = "#488c51" })
-    vim.api.nvim_set_hl(0, "AlphaHeader5_5", { fg = "#a6c9ab" })
-    vim.api.nvim_set_hl(0, "AlphaHeader6_0", { fg = "#c7955b" })
-    vim.api.nvim_set_hl(0, "AlphaHeader6_1", { fg = "#e3cf88" })
-    vim.api.nvim_set_hl(0, "AlphaHeader6_2", { fg = "#4d9356" })
-    vim.api.nvim_set_hl(0, "AlphaHeader6_3", { fg = "#aecdb3" })
-    vim.api.nvim_set_hl(0, "AlphaHeader7_0", { fg = "#c89b62" })
-    vim.api.nvim_set_hl(0, "AlphaHeader7_1", { fg = "#e5d38a" })
-    vim.api.nvim_set_hl(0, "AlphaHeader7_2", { fg = "#509b59" })
-    vim.api.nvim_set_hl(0, "AlphaHeader7_3", { fg = "#b7d1b9" })
-    vim.api.nvim_set_hl(0, "AlphaHeader8_0", { fg = "#5c441e" })
-    vim.api.nvim_set_hl(0, "AlphaHeader8_1", { fg = "#2e4e2a" })
-
-
-    header_hl = utils.charhl_to_bytehl(header_hl, header_lines, false)
-    dashboard.section.header.opts.hl = header_hl
-
-    ------------------------------------------------------------------
-    -- Buttons
-    ------------------------------------------------------------------
-    local config_path = vim.fn.stdpath("config")
-
-    dashboard.section.buttons.val = {
-      dashboard.button("n", "  New file", ":ene <BAR> startinsert<CR>"),
-      dashboard.button("r", "󰄉  Recent files", ":Telescope oldfiles<CR>"),
-      dashboard.button("u", "󱐥  Update plugins", "<cmd>Lazy update<CR>"),
-      dashboard.button("s", "  Settings", ":e " .. config_path .. "<CR>"),
-      dashboard.button("q", "󰿅  Quit", "<cmd>q<CR>"),
-    }
-
-    dashboard.section.buttons.opts.spacing = 1
-    dashboard.section.buttons.opts.position = "center"
-
-    ------------------------------------------------------------------
-    -- Footer: Plugin Stats (loaded after Lazy starts)
-    ------------------------------------------------------------------
-    vim.api.nvim_create_autocmd("User", {
-      pattern = "LazyVimStarted",
-      once = true,
-      callback = function()
-        local stats = require("lazy").stats()
-        local ms = math.floor(stats.startuptime * 100 + 0.5) / 100
-
-        dashboard.section.footer.val = {
-          "",
-          "⚡ Loaded " .. stats.count .. " plugins in " .. ms .. " ms",
-        }
-
-        pcall(vim.cmd.AlphaRedraw)
-      end,
-    })
-
-    ------------------------------------------------------------------
-    -- Clean UI while dashboard is open
-    ------------------------------------------------------------------
-    local group = vim.api.nvim_create_augroup("AlphaCleanUI", {})
-
-    -- Hide ruler & showcmd in dashboard
-    vim.api.nvim_create_autocmd("User", {
-      group = group,
-      pattern = "AlphaReady",
-      callback = function()
-        vim.opt.showcmd = false
-        vim.opt.ruler = false
-      end,
-    })
-
-    -- Restore UI after leaving dashboard
-    vim.api.nvim_create_autocmd("BufUnload", {
-      group = group,
-      pattern = "<buffer>",
-      callback = function()
-        vim.opt.showcmd = true
-        vim.opt.ruler = true
-      end,
-    })
-
-    ------------------------------------------------------------------
-    -- Final setup
-    ------------------------------------------------------------------
-    dashboard.opts.opts.noautocmd = true
-    alpha.setup(dashboard.opts)
-  end,
+		local header_lines = vim.split(logo, "\n")
+		table.insert(header_lines, "") -- spacer
+
+		dashboard.section.header.val = header_lines
+
+		------------------------------------------------------------------
+		-- Optional: Logo Highlighting (kept from your theme)
+		------------------------------------------------------------------
+		local header_hl = {}
+
+		if fill >= 0 then
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+			table.insert(header_hl, { { "Red", 1, 1 } })
+		end
+		table.insert(header_hl, { { "AlphaHeader0_0", 46, 48 } }) -- Line 10
+		table.insert(header_hl, { -- Line 11
+			{ "AlphaHeader1_0", 7, 22 },
+			{ "AlphaHeader1_1", 33, 40 },
+			{ "AlphaHeader1_2", 40, 50 },
+		})
+		table.insert(header_hl, { -- Line 12
+			{ "AlphaHeader2_0", 6, 21 },
+			{ "AlphaHeader2_1", 33, 45 },
+		})
+		table.insert(header_hl, { -- Line 13
+			{ "AlphaHeader3_0", 6, 19 },
+			{ "AlphaHeader3_1", 19, 20 },
+			{ "AlphaHeader3_2", 20, 35 },
+			{ "AlphaHeader3_3", 35, 45 },
+			{ "AlphaHeader3_4", 45, 90 },
+		})
+		table.insert(header_hl, { -- Line 14
+			{ "AlphaHeader4_0", 5, 18 },
+			{ "AlphaHeader4_1", 18, 36 },
+			{ "AlphaHeader4_2", 36, 45 },
+			{ "AlphaHeader4_3", 45, 90 },
+		})
+		table.insert(header_hl, { -- Line 15
+			{ "AlphaHeader5_0", 4, 17 },
+			{ "AlphaHeader5_1", 17, 24 },
+			{ "AlphaHeader5_2", 24, 28 },
+			{ "AlphaHeader5_3", 28, 37 },
+			{ "AlphaHeader5_4", 37, 46 },
+			{ "AlphaHeader5_5", 46, 90 },
+		})
+		table.insert(header_hl, { -- Line 16
+			{ "AlphaHeader6_0", 2, 17 },
+			{ "AlphaHeader6_1", 17, 38 },
+			{ "AlphaHeader6_2", 38, 45 },
+			{ "AlphaHeader6_3", 46, 90 },
+		})
+		table.insert(header_hl, { -- Line 17
+			{ "AlphaHeader7_0", 1, 17 },
+			{ "AlphaHeader7_1", 17, 38 },
+			{ "AlphaHeader7_2", 38, 45 },
+			{ "AlphaHeader7_3", 46, 90 },
+		})
+		table.insert(header_hl, { -- Line 18
+			{ "AlphaHeader8_0", 1, 37 },
+			{ "AlphaHeader8_1", 37, 91 },
+		})
+
+		vim.api.nvim_set_hl(0, "AlphaHeader0_0", { fg = "#a6c9ab" })
+		vim.api.nvim_set_hl(0, "AlphaHeader1_0", { fg = "#bb7744" })
+		vim.api.nvim_set_hl(0, "AlphaHeader1_1", { fg = "#386c3f" })
+		vim.api.nvim_set_hl(0, "AlphaHeader1_2", { fg = "#a6c9ab" })
+		vim.api.nvim_set_hl(0, "AlphaHeader2_0", { fg = "#be7d46" })
+		vim.api.nvim_set_hl(0, "AlphaHeader2_1", { fg = "#3d7344" })
+		vim.api.nvim_set_hl(0, "AlphaHeader3_0", { fg = "#c18250" })
+		vim.api.nvim_set_hl(0, "AlphaHeader3_1", { fg = "#5c441e" })
+		vim.api.nvim_set_hl(0, "AlphaHeader3_2", { fg = "#d6c383" })
+		vim.api.nvim_set_hl(0, "AlphaHeader3_3", { fg = "#407b48" })
+		vim.api.nvim_set_hl(0, "AlphaHeader3_4", { fg = "#98c09c" })
+		vim.api.nvim_set_hl(0, "AlphaHeader4_0", { fg = "#c38950" })
+		vim.api.nvim_set_hl(0, "AlphaHeader4_1", { fg = "#e0c785" })
+		vim.api.nvim_set_hl(0, "AlphaHeader4_2", { fg = "#44844b" })
+		vim.api.nvim_set_hl(0, "AlphaHeader4_3", { fg = "#a0c4a3" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_0", { fg = "#c58f56" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_1", { fg = "#e2cb85" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_2", { fg = "#5c441e" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_3", { fg = "#e2cb85" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_4", { fg = "#488c51" })
+		vim.api.nvim_set_hl(0, "AlphaHeader5_5", { fg = "#a6c9ab" })
+		vim.api.nvim_set_hl(0, "AlphaHeader6_0", { fg = "#c7955b" })
+		vim.api.nvim_set_hl(0, "AlphaHeader6_1", { fg = "#e3cf88" })
+		vim.api.nvim_set_hl(0, "AlphaHeader6_2", { fg = "#4d9356" })
+		vim.api.nvim_set_hl(0, "AlphaHeader6_3", { fg = "#aecdb3" })
+		vim.api.nvim_set_hl(0, "AlphaHeader7_0", { fg = "#c89b62" })
+		vim.api.nvim_set_hl(0, "AlphaHeader7_1", { fg = "#e5d38a" })
+		vim.api.nvim_set_hl(0, "AlphaHeader7_2", { fg = "#509b59" })
+		vim.api.nvim_set_hl(0, "AlphaHeader7_3", { fg = "#b7d1b9" })
+		vim.api.nvim_set_hl(0, "AlphaHeader8_0", { fg = "#5c441e" })
+		vim.api.nvim_set_hl(0, "AlphaHeader8_1", { fg = "#2e4e2a" })
+
+		header_hl = utils.charhl_to_bytehl(header_hl, header_lines, false)
+		dashboard.section.header.opts.hl = header_hl
+
+		------------------------------------------------------------------
+		-- Buttons
+		------------------------------------------------------------------
+		local config_path = vim.fn.stdpath("config")
+
+		dashboard.section.buttons.val = {
+			dashboard.button("n", "  New file", ":ene <BAR> startinsert<CR>"),
+			dashboard.button("r", "󰄉  Recent files", ":Telescope oldfiles<CR>"),
+			dashboard.button("u", "󱐥  Update plugins", "<cmd>Lazy update<CR>"),
+			dashboard.button("s", "  Settings", ":e " .. config_path .. "<CR>"),
+			dashboard.button("q", "󰿅  Quit", "<cmd>q<CR>"),
+		}
+
+		dashboard.section.buttons.opts.spacing = 1
+		dashboard.section.buttons.opts.position = "center"
+
+		------------------------------------------------------------------
+		-- Footer: Plugin Stats (loaded after Lazy starts)
+		------------------------------------------------------------------
+		vim.api.nvim_create_autocmd("User", {
+			pattern = "LazyVimStarted",
+			once = true,
+			callback = function()
+				local stats = require("lazy").stats()
+				local ms = math.floor(stats.startuptime * 100 + 0.5) / 100
+
+				dashboard.section.footer.val = {
+					"",
+					"⚡ Loaded " .. stats.count .. " plugins in " .. ms .. " ms",
+				}
+
+				pcall(vim.cmd.AlphaRedraw)
+			end,
+		})
+
+		------------------------------------------------------------------
+		-- Clean UI while dashboard is open
+		------------------------------------------------------------------
+		local group = vim.api.nvim_create_augroup("AlphaCleanUI", {})
+
+		-- Hide ruler & showcmd in dashboard
+		vim.api.nvim_create_autocmd("User", {
+			group = group,
+			pattern = "AlphaReady",
+			callback = function()
+				vim.opt.showcmd = false
+				vim.opt.ruler = false
+			end,
+		})
+
+		-- Restore UI after leaving dashboard
+		vim.api.nvim_create_autocmd("BufUnload", {
+			group = group,
+			pattern = "<buffer>",
+			callback = function()
+				vim.opt.showcmd = true
+				vim.opt.ruler = true
+			end,
+		})
+
+		vim.api.nvim_create_autocmd("VimEnter", {
+			callback = function()
+				require("alpha").start()
+			end,
+		})
+
+		------------------------------------------------------------------
+		-- Final setup
+		------------------------------------------------------------------
+		dashboard.opts.opts.noautocmd = true
+		alpha.setup(dashboard.opts)
+	end,
 }
-
.config/nvim/lua/plugins/bufferline.lua
@@ -0,0 +1,72 @@
+return {
+	"akinsho/bufferline.nvim",
+	version = "*",
+	dependencies = "nvim-tree/nvim-web-devicons",
+	config = function()
+		require("bufferline").setup({
+			options = {
+				mode = "buffers", -- Show buffers (not tabs)
+				style_preset = require("bufferline").style_preset.default,
+				themable = true,
+				numbers = "none",                -- Show 1, 2, 3... for easy jumping
+				close_command = "bdelete! %d",   -- Close buffer command
+				right_mouse_command = "bdelete! %d", -- Close with right click
+				left_mouse_command = "buffer %d", -- Switch with left click
+				middle_mouse_command = nil,      -- Nothing on middle click
+
+				-- Visual
+				indicator = {
+					style = "icon",
+				},
+				buffer_close_icon = "󰅖",
+				modified_icon = "●",
+				close_icon = "",
+				left_trunc_marker = "",
+				right_trunc_marker = "",
+
+				-- Behavior
+				max_name_length = 15,
+				max_prefix_length = 13,
+				truncate_names = true,
+				tab_size = 15,
+				diagnostics = "nvim_lsp", -- Show LSP diagnostics
+				diagnostics_indicator = function(count, level)
+					local icon = level:match("error") and " " or " "
+					return " " .. icon .. count
+				end,
+
+				-- Separator style
+				separator_style = "thin", -- Options: "slant", "thick", "thin", "padded_slant"
+
+				-- Show/hide elements
+				show_buffer_icons = true,
+				show_buffer_close_icons = false,
+				show_close_icon = false,
+				show_tab_indicators = true,
+				show_duplicate_prefix = true,
+				persist_buffer_sort = true,
+				move_wraps_at_ends = false,
+
+				-- Sorting
+				sort_by = "insert_after_current",
+
+				-- Custom filtering (optional)
+				custom_filter = function(buf_number)
+					-- Hide [No Name] buffers
+					local name = vim.api.nvim_buf_get_name(buf_number)
+
+					if name == "" then
+						return false
+					end
+
+					-- Don't show certain filetypes
+					local filetype = vim.bo[buf_number].filetype
+					if filetype == "qf" or filetype == "help" then
+						return false
+					end
+					return true
+				end,
+			},
+		})
+	end,
+}
.config/nvim/lua/plugins/neo-tree.lua
@@ -4,57 +4,54 @@ return {
 	dependencies = {
 		"nvim-lua/plenary.nvim",
 		"MunifTanjim/nui.nvim",
-		"nvim-tree/nvim-web-devicons", 
-    },
-    lazy = false,
-	config= function()
+		"nvim-tree/nvim-web-devicons",
+	},
+	lazy = false,
+	config = function()
 		require("neo-tree").setup({
 			close_if_last_window = true,
-			popup_border_style = "NC",
+			popup_border_style = "rounded",
 			enable_git_status = true,
 			enable_diagnostics = true,
 
 			window = {
-    			position = "right",
-					width = 30,
-					mappings = {
-						["P"] = {
-							"toggle_preview",
-							config = {
-								use_float = true,
-								title = 'Preview'
-							}
-						}
-				}
+				position = "right",
+				width = 30,
+				mappings = {
+					["P"] = {
+						"toggle_preview",
+						config = {
+							use_float = true,
+							title = "Preview",
+						},
+					},
+				},
 			},
 
 			default_component_configs = {
 				git_status = {
-				symbols = {
-					added = "✚",
-					modified = "",
-					deleted = "✖", 
-					renamed = "󰁕", 
-					untracked = "󰎔",
-					ignored = "",
-					unstaged = "󰄱",
-					staged = "",
-					conflict = "",
+					symbols = {
+						added = "✚",
+						modified = "",
+						deleted = "✖",
+						renamed = "󰁕",
+						untracked = "󰎔",
+						ignored = "",
+						unstaged = "󰄱",
+						staged = "",
+						conflict = "",
 					},
 				},
 			},
 			filesystem = {
 				follow_current_file = {
 					enabled = true,
-					},
-					filtered_items = {
-						hide_dotfiles = false,
-						hide_gitignored = true,
-					}
-			}
+				},
+				filtered_items = {
+					hide_dotfiles = false,
+					hide_gitignored = true,
+				},
+			},
 		})
-	end
-
+	end,
 }
-
-
.config/nvim/lua/keymaps.lua
@@ -33,3 +33,16 @@ vim.api.nvim_create_autocmd("LspAttach", {
 		vim.keymap.set("n", "<A-F12>", vim.lsp.buf.implementation, opts)
 	end,
 })
+
+
+-- Jump to buffer by number (like IDE tabs)
+vim.keymap.set("n", "<leader>1", ":BufferLineGoToBuffer 1<CR>", { desc = "Go to buffer 1", silent = true })
+vim.keymap.set("n", "<leader>2", ":BufferLineGoToBuffer 2<CR>", { desc = "Go to buffer 2", silent = true })
+vim.keymap.set("n", "<leader>3", ":BufferLineGoToBuffer 3<CR>", { desc = "Go to buffer 3", silent = true })
+vim.keymap.set("n", "<leader>4", ":BufferLineGoToBuffer 4<CR>", { desc = "Go to buffer 4", silent = true })
+vim.keymap.set("n", "<leader>5", ":BufferLineGoToBuffer 5<CR>", { desc = "Go to buffer 5", silent = true })
+vim.keymap.set("n", "<leader>6", ":BufferLineGoToBuffer 6<CR>", { desc = "Go to buffer 6", silent = true })
+vim.keymap.set("n", "<leader>7", ":BufferLineGoToBuffer 7<CR>", { desc = "Go to buffer 7", silent = true })
+vim.keymap.set("n", "<leader>8", ":BufferLineGoToBuffer 8<CR>", { desc = "Go to buffer 8", silent = true })
+vim.keymap.set("n", "<leader>9", ":BufferLineGoToBuffer 9<CR>", { desc = "Go to buffer 9", silent = true })
+
.config/nvim/init.lua
@@ -1,16 +1,20 @@
 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 if not (vim.uv or vim.loop).fs_stat(lazypath) then
-  vim.notify("lazy.nvim not found. Cloning...", vim.log.levels.INFO)
+	vim.notify("lazy.nvim not found. Cloning...", vim.log.levels.INFO)
 
-  local result = vim.fn.system({
-    "git", "clone", "--filter=blob:none", "--branch=stable",
-    "https://github.com/folke/lazy.nvim.git", lazypath
-  })
+	local result = vim.fn.system({
+		"git",
+		"clone",
+		"--filter=blob:none",
+		"--branch=stable",
+		"https://github.com/folke/lazy.nvim.git",
+		lazypath,
+	})
 
-  if vim.v.shell_error ~= 0 then
-    vim.notify("Failed to clone lazy.nvim:\n" .. result, vim.log.levels.ERROR)
-    return
-  end
+	if vim.v.shell_error ~= 0 then
+		vim.notify("Failed to clone lazy.nvim:\n" .. result, vim.log.levels.ERROR)
+		return
+	end
 end
 
 vim.opt.rtp:prepend(lazypath)
@@ -18,4 +22,3 @@ vim.opt.rtp:prepend(lazypath)
 require("options")
 require("keymaps")
 require("lazy").setup("plugins")
-
.config/nvim/lazy-lock.json
@@ -1,7 +1,8 @@
 {
   "alpha-nvim": { "branch": "main", "commit": "a9d8fb72213c8b461e791409e7feabb74eb6ce73" },
   "blink.cmp": { "branch": "main", "commit": "4b18c32adef2898f95cdef6192cbd5796c1a332d" },
-  "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
+  "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
+  "catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
   "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
   "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
   "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },