feat: theme the statusline
This commit is contained in:
parent
bd4056582f
commit
e1ae8a414f
1 changed files with 49 additions and 13 deletions
|
@ -33,36 +33,72 @@ function _G.format_mode(mode)
|
||||||
output = mode
|
output = mode
|
||||||
end
|
end
|
||||||
|
|
||||||
return output
|
return string.upper(output)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function setHighlight(str)
|
||||||
|
return string.format("%%#%s#", str)
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.output()
|
function M.output()
|
||||||
local separator = "☰ "
|
local palette = {
|
||||||
local mode = "%{%v:lua.format_mode(v:lua.vim.fn.mode())%} "
|
cyan = "#7dcfff",
|
||||||
local open_file = separator .. "%r%t %m"
|
blue = "#7aa2f7",
|
||||||
local buf_nr = "[%n]"
|
magenta = "#bb9af7",
|
||||||
|
black = "#414868",
|
||||||
|
bg = "#15161e",
|
||||||
|
none = "NONE",
|
||||||
|
}
|
||||||
|
|
||||||
|
local statuslineMode = "StatuslineMode"
|
||||||
|
local statuslineTransparent = "StatuslineTransparent"
|
||||||
|
local statuslineBlueText = "StatuslineBlueText"
|
||||||
|
local statuslineMagentaText = "StatuslineMagentaText"
|
||||||
|
|
||||||
|
local theme = {
|
||||||
|
[statuslineMode] = {fg = palette["black"], bg = palette["cyan"], bold = true},
|
||||||
|
[statuslineTransparent] = {bg = palette["none"]},
|
||||||
|
[statuslineBlueText] = {bg = palette["bg"], fg = palette["blue"], bold = true},
|
||||||
|
[statuslineMagentaText] = {bg = palette["bg"], fg = palette["magenta"], bold = true},
|
||||||
|
}
|
||||||
|
|
||||||
|
local ns = vim.api.nvim_create_namespace("statusline")
|
||||||
|
vim.api.nvim__set_hl_ns(ns)
|
||||||
|
|
||||||
|
for name, settings in pairs(theme) do
|
||||||
|
vim.api.nvim_set_hl(ns, name, settings)
|
||||||
|
end
|
||||||
|
|
||||||
|
local separator = " ☰ "
|
||||||
|
local mode = " %{%v:lua.format_mode(v:lua.vim.fn.mode())%} "
|
||||||
|
local open_file = "%r%t %m"
|
||||||
|
local buf_nr = "[%n] "
|
||||||
local right_align = "%="
|
local right_align = "%="
|
||||||
local file_format = "%{&ff}"
|
local file_format = "%{&ff}"
|
||||||
local file_type = "%y "
|
local file_type = "%y "
|
||||||
local encoding = "%{''.(&fenc!=''?&fenc:&enc).''} "
|
local encoding = "%{''.(&fenc!=''?&fenc:&enc).''} "
|
||||||
local line_no = "line: %03l/%03L "
|
local line_no = "line: %03l/%03L "
|
||||||
local percentage = "[%3p%%]"
|
local percentage = "[%3p%%]"
|
||||||
|
|
||||||
return string.format(
|
return table.concat{
|
||||||
"%s%s%s%s%s%s%s%s%s%s%s%s",
|
setHighlight(statuslineMode),
|
||||||
separator,
|
|
||||||
mode,
|
mode,
|
||||||
|
setHighlight(statuslineBlueText),
|
||||||
|
separator,
|
||||||
open_file,
|
open_file,
|
||||||
buf_nr,
|
buf_nr,
|
||||||
|
setHighlight(statuslineTransparent),
|
||||||
right_align,
|
right_align,
|
||||||
|
setHighlight(statuslineBlueText),
|
||||||
separator,
|
separator,
|
||||||
file_format,
|
file_format,
|
||||||
file_type,
|
file_type,
|
||||||
encoding,
|
encoding,
|
||||||
|
setHighlight(statuslineMagentaText),
|
||||||
separator,
|
separator,
|
||||||
line_no,
|
line_no,
|
||||||
percentage
|
percentage
|
||||||
)
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
Loading…
Reference in a new issue