add lualine plugin
This commit is contained in:
@@ -31,3 +31,4 @@
|
||||
]]
|
||||
|
||||
require("plugins/catppuccin")
|
||||
require("plugins/lualine")
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
--[[
|
||||
|
||||
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣷⣦⣄⡀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠚⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠗⢀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣄⡉⠓⠦⣌⡙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢋⣡⠴⠚⢉⣠⣤⣀
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣶⣿⣿⣿⣿⣿⣷⣦⣄⡉⠓⠦⣌⡙⠻⢿⣿⣿⣿⣿⣿⣿⡿⠟⢋⣡⠴⠚⢉⣠⣴⣾⣿⣿⣿⣿⣿⣶⣤
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠐⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠓⠦⣌⡙⠻⠟⢋⣡⠴⠚⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⠂
|
||||
⠀⠀⠀⠀⢀⣠⣴⣆⡈⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠃⠘⢉⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢁⣰⣦⣄⡀
|
||||
⠀⠀⠐⠾⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠷⠂
|
||||
⠀⢸⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⡇
|
||||
⠀⢸⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⣦⣄⡉⠛⠿⠿⠛⢉⣠⣴⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⡇
|
||||
⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠻⢿⣿⣷⡆⢰⣾⣿⡿⠟⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣌⡙⠃⠘⢋⣡⣴⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⠛⠿⣿⣿⣿⣿⠿⠛⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣿⣷⣦⣄⡉⢉⣠⣴⣾⣿⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⠿⠛⠉
|
||||
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⡇⢸⠿⠛⠉
|
||||
|
||||
__ _ _
|
||||
/ _|___ ___| |_ __ _ ___| | __
|
||||
| ||_ /____/ __| __/ _` |/ __| |/ /
|
||||
| _/ /_____\__ \ || (_| | (__| <
|
||||
|_|/___| |___/\__\__,_|\___|_|\_\
|
||||
|
||||
Neovim v0.12 configuration
|
||||
(C) Frank Zechert 2026
|
||||
]]
|
||||
|
||||
vim.pack.add({
|
||||
{ src = "https://github.com/nvim-tree/nvim-web-devicons" },
|
||||
{ src = "https://github.com/nvim-lualine/lualine.nvim" }
|
||||
})
|
||||
|
||||
local function expandtabs()
|
||||
if not vim.bo.expandtab then
|
||||
return string.format("%s %d", vim.g.ui.listchars.leadtab, vim.bo.tabstop)
|
||||
else
|
||||
local width = vim.bo.shiftwidth
|
||||
if width == 0 then
|
||||
width = vim.bo.tabstop
|
||||
end
|
||||
return string.format("%s %d", vim.g.ui.listchars.nbsp, width)
|
||||
end
|
||||
end
|
||||
|
||||
local function windownumber()
|
||||
return string.format("%s %s", vim.g.ui.symbols.window, vim.fn.winnr())
|
||||
end
|
||||
|
||||
local function treesitter_status()
|
||||
local ok, parser = pcall(vim.treesitter.get_parser, 0)
|
||||
if not ok or not parser then
|
||||
return "T"..vim.g.ui.symbols.not_overline
|
||||
else
|
||||
return "T"
|
||||
end
|
||||
end
|
||||
|
||||
local function lsp_status()
|
||||
local clients = vim.lsp.get_clients({bufnr = 0})
|
||||
if #clients == 0 then
|
||||
-- no LSP is attached
|
||||
return "L"..vim.g.ui.symbols.not_overline
|
||||
end
|
||||
|
||||
local lsp_names = {}
|
||||
for _, client in ipairs(clients) do
|
||||
local roots = {}
|
||||
if client.workspace_folders then
|
||||
for _, workspace_folder in ipairs(client.workspace_folders) do
|
||||
table.insert(roots, workspace_folder.name or workspace_folder.uri or "")
|
||||
end
|
||||
end
|
||||
local has_root = (roots and #roots > 0)
|
||||
local root_flag = has_root and "+R" or ""
|
||||
table.insert(lsp_names, string.format("%s%s", client.name, root_flag))
|
||||
end
|
||||
return string.format("L: %s", table.concat(lsp_names, ", "))
|
||||
end
|
||||
|
||||
|
||||
require('lualine').setup({
|
||||
options = {
|
||||
component_separators = vim.g.ui.symbols.component_separators,
|
||||
section_separators = vim.g.ui.symbols.section_separators,
|
||||
globalstatus = false,
|
||||
refresh = {
|
||||
refresh_time = 33, -- ~30 fps
|
||||
}
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { "mode" },
|
||||
lualine_b = { "searchcount", "selectioncount" },
|
||||
lualine_c = {
|
||||
{ "filename", file_status = true, newfile_status = true, path = 1 },
|
||||
},
|
||||
lualine_x = {
|
||||
"encoding",
|
||||
{ "fileformat", icons_enabled = true, symbols = { unix = "LF", dos = "CRLF", mac = "CR" } },
|
||||
expandtabs,
|
||||
"filesize"
|
||||
},
|
||||
lualine_y = {},
|
||||
lualine_z = { "location", "progress" },
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {
|
||||
{ "filename", file_status = true, newfile_status = true, path = 1 },
|
||||
},
|
||||
lualine_x = {
|
||||
"encoding",
|
||||
{ "fileformat", icons_enabled = true, symbols = { unix = "LF", dos = "CRLF", mac = "CR" } },
|
||||
expandtabs,
|
||||
"filesize",
|
||||
},
|
||||
lualine_y = {},
|
||||
lualine_z = { "location", "progress" },
|
||||
},
|
||||
tabline = {
|
||||
lualine_a = {
|
||||
{ "buffers", mode = 2, use_mode_colors = true },
|
||||
},
|
||||
lualine_b = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {
|
||||
{ "tabs", mode = 0, use_mode_colors = true },
|
||||
},
|
||||
},
|
||||
winbar = {
|
||||
lualine_a = { windownumber },
|
||||
lualine_b = { "filename", "filetype" },
|
||||
lualine_c = { "diagnostics" },
|
||||
lualine_x = { treesitter_status, lsp_status },
|
||||
lualine_y = { "branch", "diff" },
|
||||
lualine_z = {},
|
||||
},
|
||||
inactive_winbar = {
|
||||
lualine_a = { windownumber },
|
||||
lualine_b = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
}
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user