129 lines
3.8 KiB
Lua
129 lines
3.8 KiB
Lua
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 = {
|
|
{
|
|
"<S-F1>",
|
|
function()
|
|
require("which-key").show()
|
|
end,
|
|
mode = { "n", "v", "i" },
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"preservim/tagbar",
|
|
vim.keymap.set("n", "<leader>fs", ":TagbarToggle<CR>", { 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,
|
|
},
|
|
}
|