return { { "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("lualine").setup({ options = { --`theme=codedark, component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, }, sections = { lualine_a = { "mode" }, lualine_b = { "branch", "diff", "diagnostics" }, lualine_c = { { "filename", path = 1 }, -- Determine class/function name function() local current_buff = vim.api.nvim_get_current_buf() local current_node = vim.treesitter.get_node() if not current_node then return "" end local class = nil local func = nil local expr = current_node while expr do if expr:type() == "function_definition" then func = expr elseif expr:type() == "class_definition" then class = expr end expr = expr:parent() end if not func then return "" end for child in func:iter_children() do if child:type() == "identifier" then func = child break end end local func_text = vim.treesitter.get_node_text(func, current_buff) if class then for child in class:iter_children() do if child:type() == "identifier" then class = child break end end func_text = vim.treesitter.get_node_text(class, current_buff) .. ":" .. func_text end if vim.bo.filetype == "lua" then -- Patch out invalid parsing of lua (and other?) files return "" end return func_text end, }, lualine_x = { "encoding", "filetype" }, lualine_y = { function() -- Display an active Python virtual environment if active local venv = os.getenv("VIRTUAL_ENV") if venv then return vim.fn.fnamemodify(venv, ":t") -- Put other useful paths here as available else return "" end end, }, lualine_z = { "location" }, }, }) end, }, { "romgrk/barbar.nvim", tag = "v1.9.1", init = function() vim.g.barbar_auto_setup = false end, opts = { animation = false, }, }, { "folke/which-key.nvim", event = "VeryLazy", keys = { { "", function() require("which-key").show() end, mode = { "n", "v", "i" }, }, }, }, { "preservim/tagbar", vim.keymap.set("n", "fs", ":TagbarToggle", { desc = "Toggle Tagbar" }), }, { "goolord/alpha-nvim", dependencies = { "nvim-tree/nvim-web-devicons", "nvim-neo-tree/neo-tree.nvim" }, config = function() local alpha = require("alpha") local dashboard = require("alpha.themes.startify") dashboard.section.header.val = { " ", " ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ", " ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ", " ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ", " ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ", " ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ", " ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ", " ", } alpha.setup(dashboard.opts) end, }, }