my-nvim-setup/lua/plugins/statusline.lua
Akianonymus d16ffabcfd [1/4] Refactor: plugins: Add seperate config for each plugins
first commit of Refactor

handle require errors

move config from other places to proper files

don't create a pseudo config function for no reason

https://github.com/siduck76/NvChad/pull/156#issuecomment-881453546
2021-07-16 19:36:54 +05:30

217 lines
5.1 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local gl, condition
if
not pcall(
function()
gl = require "galaxyline"
condition = require "galaxyline.condition"
end
)
then
return
end
local gls = gl.section
gl.short_line_list = {" "}
local global_theme = "themes/" .. vim.g.nvchad_theme
local colors = require(global_theme)
gls.left[1] = {
FirstElement = {
provider = function()
return ""
end,
highlight = {colors.nord_blue, colors.nord_blue}
}
}
gls.left[2] = {
statusIcon = {
provider = function()
return ""
end,
highlight = {colors.statusline_bg, colors.nord_blue},
separator = "",
separator_highlight = {colors.nord_blue, colors.lightbg}
}
}
gls.left[3] = {
FileIcon = {
provider = "FileIcon",
condition = condition.buffer_not_empty,
highlight = {colors.white, colors.lightbg}
}
}
gls.left[4] = {
FileName = {
provider = {"FileName"},
condition = condition.buffer_not_empty,
highlight = {colors.white, colors.lightbg},
separator = "",
separator_highlight = {colors.lightbg, colors.lightbg2}
}
}
gls.left[5] = {
current_dir = {
provider = function()
local dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":t")
return "" .. dir_name .. " "
end,
highlight = {colors.grey_fg2, colors.lightbg2},
separator = "",
separator_highlight = {colors.lightbg2, colors.statusline_bg}
}
}
local checkwidth = function()
local squeeze_width = vim.fn.winwidth(0) / 2
if squeeze_width > 30 then
return true
end
return false
end
gls.left[6] = {
DiffAdd = {
provider = "DiffAdd",
condition = checkwidth,
icon = "",
highlight = {colors.white, colors.statusline_bg}
}
}
gls.left[7] = {
DiffModified = {
provider = "DiffModified",
condition = checkwidth,
icon = "",
highlight = {colors.grey_fg2, colors.statusline_bg}
}
}
gls.left[8] = {
DiffRemove = {
provider = "DiffRemove",
condition = checkwidth,
icon = "",
highlight = {colors.grey_fg2, colors.statusline_bg}
}
}
gls.left[9] = {
DiagnosticError = {
provider = "DiagnosticError",
icon = "",
highlight = {colors.red, colors.statusline_bg}
}
}
gls.left[10] = {
DiagnosticWarn = {
provider = "DiagnosticWarn",
icon = "",
highlight = {colors.yellow, colors.statusline_bg}
}
}
gls.right[1] = {
lsp_status = {
provider = function()
local clients = vim.lsp.get_active_clients()
if next(clients) ~= nil then
return " " .. "" .. " LSP "
else
return ""
end
end,
highlight = {colors.grey_fg2, colors.statusline_bg}
}
}
gls.right[2] = {
GitIcon = {
provider = function()
return ""
end,
condition = require("galaxyline.condition").check_git_workspace,
highlight = {colors.grey_fg2, colors.statusline_bg},
separator = " ",
separator_highlight = {colors.statusline_bg, colors.statusline_bg}
}
}
gls.right[3] = {
GitBranch = {
provider = "GitBranch",
condition = require("galaxyline.condition").check_git_workspace,
highlight = {colors.grey_fg2, colors.statusline_bg}
}
}
gls.right[4] = {
viMode_icon = {
provider = function()
return ""
end,
highlight = {colors.statusline_bg, colors.red},
separator = "",
separator_highlight = {colors.red, colors.statusline_bg}
}
}
gls.right[5] = {
ViMode = {
provider = function()
local alias = {
n = "Normal",
i = "Insert",
c = "Command",
V = "Visual",
[""] = "Visual",
v = "Visual",
R = "Replace"
}
local current_Mode = alias[vim.fn.mode()]
if current_Mode == nil then
return " Terminal "
else
return " " .. current_Mode .. " "
end
end,
highlight = {colors.red, colors.lightbg}
}
}
gls.right[6] = {
some_icon = {
provider = function()
return ""
end,
separator = "",
separator_highlight = {colors.green, colors.lightbg},
highlight = {colors.lightbg, colors.green}
}
}
gls.right[7] = {
line_percentage = {
provider = function()
local current_line = vim.fn.line(".")
local total_line = vim.fn.line("$")
if current_line == 1 then
return " Top "
elseif current_line == vim.fn.line("$") then
return " Bot "
end
local result, _ = math.modf((current_line / total_line) * 100)
return " " .. result .. "% "
end,
highlight = {colors.green, colors.lightbg}
}
}