return { -- ╭───────────────────────────────────────╮ -- │ bufferline - for mistakes and stuff.. │ -- ╰───────────────────────────────────────╯ { "akinsho/bufferline.nvim", dependencies = { "echasnovski/mini.icons" }, version = "*", opts = { options = { diagnostics = "nvim_lsp", diagnostics_update_on_event = true, -- use nvim's diagnostic handler diagnostics_indicator = function(count, level) local icon = level:match("error") and " " or " " return " " .. icon .. count end, offsets = { { filetype = "neo-tree", text = "File Explorer", highlight = "Directory" } }, -- ─< style >─────────────────────────────────────────────────────────────────────────── indicator = { icon = "▎", -- this should be omitted if indicator style is not 'icon' style = "icon", }, move_wraps_at_ends = true, -- whether or not the move command "wraps" at the first or last position separator_style = "slope", -- ─< icons >─────────────────────────────────────────────────────────────────────────── modified_icon = "󱞇 ", left_trunc_marker = "󰬩 ", right_trunc_marker = "󰬫 ", themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default close_icon = "󱄊 ", buffer_close_icon = "󱄊 ", show_buffer_icons = true, -- disable filetype icons for buffers show_buffer_close_icons = true, show_close_icon = true, show_tab_indicators = true, hover = { enabled = true, delay = 30, reveal = { "close" }, hide = { "nvim_lsp" }, }, -- You can set buffer_mode to "list" or "tabbed" based on your preference. buffer_mode = "list", color_icons = true, -- whether or not to add the filetype icon highlights }, }, config = function(_, opts) require("bufferline").setup(opts) -- Remap the tab key for buffer navigation (you can adjust the keys as needed) vim.keymap.set("n", "", "BufferLineCycleNext") vim.keymap.set("n", "", "BufferLineCyclePrev") end, }, -- ╭───────────────────────────────────╮ -- │ cmdline - for nice command inputs │ -- ╰───────────────────────────────────╯ { "VonHeikemen/fine-cmdline.nvim", dependencies = { { "MunifTanjim/nui.nvim" }, }, config = function() require("fine-cmdline").setup({ cmdline = { enable_keymaps = true, smart_history = true, prompt = " ", }, popup = { position = { row = "10%", col = "50%", }, size = { width = "60%", }, border = { style = "rounded", }, win_options = { winhighlight = "Normal:Normal,FloatBorder:FloatBorder", }, }, -- hooks = { -- before_mount = function(input) -- -- code -- end, -- after_mount = function(input) -- -- code -- end, -- set_keymaps = function(imap, feedkeys) -- -- code -- end, -- }, }) end, vim.api.nvim_set_keymap("n", ":", "FineCmdline", { noremap = true }), vim.keymap.set("n", "T", "FineCmdline"), }, -- ╭───────────────────────────────────────╮ -- │ barbecue - for a nice breadcrump menu │ -- ╰───────────────────────────────────────╯ { "utilyre/barbecue.nvim", name = "barbecue", version = "*", dependencies = { "SmiteshP/nvim-navic", "echasnovski/mini.icons", -- optional dependency }, opts = { theme = { -- this highlight is used to override other highlights -- you can take advantage of its `bg` and set a background throughout your winbar -- (e.g. basename will look like this: { fg = "#c0caf5", bold = true }) normal = { fg = "#c0caf5" }, -- these highlights correspond to symbols table from config ellipsis = { fg = "#737aa2" }, separator = { fg = "#737aa2" }, modified = { fg = "#737aa2" }, -- these highlights represent the _text_ of three main parts of barbecue dirname = { fg = "#737aa2" }, basename = { bold = true }, context = {}, -- these highlights are used for context/navic icons context_file = { fg = "#ac8fe4" }, context_module = { fg = "#ac8fe4" }, context_namespace = { fg = "#ac8fe4" }, context_package = { fg = "#ac8fe4" }, context_class = { fg = "#ac8fe4" }, context_method = { fg = "#ac8fe4" }, context_property = { fg = "#ac8fe4" }, context_field = { fg = "#ac8fe4" }, context_constructor = { fg = "#ac8fe4" }, context_enum = { fg = "#ac8fe4" }, context_interface = { fg = "#ac8fe4" }, context_function = { fg = "#ac8fe4" }, context_variable = { fg = "#ac8fe4" }, context_constant = { fg = "#ac8fe4" }, context_string = { fg = "#ac8fe4" }, context_number = { fg = "#ac8fe4" }, context_boolean = { fg = "#ac8fe4" }, context_array = { fg = "#ac8fe4" }, context_object = { fg = "#ac8fe4" }, context_key = { fg = "#ac8fe4" }, context_null = { fg = "#ac8fe4" }, context_enum_member = { fg = "#ac8fe4" }, context_struct = { fg = "#ac8fe4" }, context_event = { fg = "#ac8fe4" }, context_operator = { fg = "#ac8fe4" }, context_type_parameter = { fg = "#ac8fe4" }, }, }, }, -- ╭─────────────────────────────────╮ -- │ indentlines - nice indent lines │ -- ╰─────────────────────────────────╯ { "lukas-reineke/indent-blankline.nvim", event = { "BufReadPre", "BufNewFile" }, main = "ibl", opts = { indent = { char = "┊", tab_char = "┊", -- char = "│", -- tab_char = "│", }, scope = { enabled = true }, }, }, -- ╭──────────────────╮ -- │ markdown plugins │ -- ╰──────────────────╯ { "MeanderingProgrammer/render-markdown.nvim", opts = {}, -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" }, -- if you use standalone mini plugins -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons }, -- ╭────────────────────────────────────╮ -- │ notify for excellent notifications │ -- ╰────────────────────────────────────╯ { "rcarriga/nvim-notify", config = function() require("notify").setup({ stages = "slide", background_colour = "FloatShadow", max_width = 120, timeout = 2750, render = "wrapped-compact", -- Minimum/Maximum width for notification windows minimum_width = 30, maximum_width = 120, -- Function called when a new window is opened, use for changing win settings/config on_open = nil, -- Function called when a window is closed on_close = nil, icons = { ERROR = "", -- alternate symbol  WARN = "", INFO = "", DEBUG = "", TRACE = "", }, }) vim.notify = require("notify") end, vim.keymap.set("n", "tn", "Telescope notify", { desc = "Telescope show Notifications" }), }, -- ╭────────────────────────────────╮ -- │ lualine - another bar for nvim │ -- ╰────────────────────────────────╯ { "nvim-lualine/lualine.nvim", opts = { options = { theme = bubbles_theme, component_separators = "", section_separators = { left = "", right = "" }, }, sections = { lualine_a = { { "mode", separator = { left = "" }, right_padding = 4 } }, lualine_b = { "filename", "branch" }, lualine_c = { "%=", "cwd", }, lualine_x = {}, lualine_y = { "filetype", "progress" }, lualine_z = { { "location", separator = { right = "" }, left_padding = 4 }, }, }, inactive_sections = { lualine_a = { "filename" }, lualine_b = {}, lualine_c = {}, lualine_x = {}, lualine_y = {}, lualine_z = { "location" }, }, tabline = {}, extensions = {}, }, }, -- ╭──────────────────────────────╮ -- │ slimline - nice bar for nvim │ -- ╰──────────────────────────────╯ -- { -- "sschleemilch/slimline.nvim", -- opts = { -- bold = true, -- makes primary parts and mode bold -- verbose_mode = false, -- Mode as single letter or as a word -- style = "bg", -- or "fg". Whether highlights should be applied to bg or fg of components -- mode_follow_style = true, -- Whether the mode color components should follow the style option -- spaces = { -- components = "─", -- left = "─", -- right = "─", -- }, -- configs = { -- path = { -- hl = { -- primary = "Define", -- }, -- }, -- git = { -- hl = { -- primary = "Function", -- }, -- }, -- diagnostics = { -- hl = { -- primary = "Statement", -- }, -- }, -- filetype_lsp = { -- hl = { -- primary = "String", -- }, -- }, -- }, -- components = { -- Choose components and their location -- left = { -- "mode", -- "progress", -- -- "path", -- -- "git", -- }, -- center = { -- "path", -- "git", -- }, -- right = { -- "diagnostics", -- "filetype_lsp", -- "progress", -- }, -- }, -- sep = { -- hide = { -- first = false, -- hides the first separator -- last = false, -- hides the last separator -- }, -- left = "", -- left separator of components -- right = "", -- right separator of components -- }, -- hl = { -- modes = { -- normal = "Type", -- highlight base of modes -- insert = "Function", -- pending = "Boolean", -- visual = "Keyword", -- command = "String", -- }, -- base = "Comment", -- highlight of everything in in between components -- primary = "Normal", -- highlight of primary parts (e.g. filename) -- secondary = "Comment", -- highlight of secondary parts (e.g. filepath) -- }, -- icons = { -- diagnostics = { -- ERROR = " ", -- WARN = " ", -- HINT = " ", -- INFO = " ", -- }, -- git = { -- branch = "", -- }, -- folder = " ", -- lines = " ", -- }, -- }, -- }, -- ╭────────────────────────────────────────╮ -- │ which key - to know what to press next │ -- ╰────────────────────────────────────────╯ { "folke/which-key.nvim", event = "VeryLazy", init = function() vim.o.timeout = false vim.o.timeoutlen = 0 end, opts = { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below }, }, }