neovim-config/lua/statusline.lua
2021-06-02 07:09:16 +05:30

183 lines
4 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 = require("galaxyline")
local gls = gl.section
gl.short_line_list = {" "}
local colors = {
bg = "#22262e",
fg = "#abb2bf",
green = "#82ad63",
red = "#d47d85",
lightbg = "#2d3139",
lightbg2 = "#262a32",
blue = "#7797b7",
yellow = "#e0c080",
grey = "#6f737b"
}
gls.left[2] = {
statusIcon = {
provider = function()
return ""
end,
highlight = {colors.bg, colors.blue},
separator = "",
separator_highlight = {colors.blue, colors.lightbg}
}
}
gls.left[3] = {
FileIcon = {
provider = "FileIcon",
condition = buffer_not_empty,
highlight = {colors.fg, colors.lightbg}
}
}
gls.left[4] = {
FileName = {
provider = {"FileName"},
condition = buffer_not_empty,
highlight = {colors.fg, 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, colors.lightbg2},
separator = "",
separator_highlight = {colors.lightbg2, colors.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.fg, colors.bg}
}
}
gls.left[7] = {
DiffModified = {
provider = "DiffModified",
condition = checkwidth,
icon = "",
highlight = {colors.grey, colors.bg}
}
}
gls.left[8] = {
DiffRemove = {
provider = "DiffRemove",
condition = checkwidth,
icon = "",
highlight = {colors.grey, colors.bg}
}
}
gls.left[9] = {
DiagnosticError = {
provider = "DiagnosticError",
icon = "",
highlight = {colors.red, colors.bg}
}
}
gls.left[10] = {
DiagnosticWarn = {
provider = "DiagnosticWarn",
icon = "",
highlight = {colors.yellow, colors.bg}
}
}
gls.right[1] = {
GitIcon = {
provider = function()
return ""
end,
condition = require("galaxyline.provider_vcs").check_git_workspace,
highlight = {colors.grey, colors.lightbg},
separator = "",
separator_highlight = {colors.lightbg, colors.bg}
}
}
gls.right[2] = {
GitBranch = {
provider = "GitBranch",
condition = require("galaxyline.provider_vcs").check_git_workspace,
highlight = {colors.grey, colors.lightbg}
}
}
gls.right[3] = {
viMode_icon = {
provider = function()
return ""
end,
highlight = {colors.bg, colors.red},
separator = "",
separator_highlight = {colors.red, colors.lightbg}
}
}
gls.right[4] = {
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[5] = {
time_icon = {
provider = function()
return ""
end,
separator = "",
separator_highlight = {colors.green, colors.lightbg},
highlight = {colors.lightbg, colors.green}
}
}
gls.right[6] = {
time = {
provider = function()
return " " .. os.date("%H:%M") .. " "
end,
highlight = {colors.green, colors.lightbg}
}
}