refactor(statusline): separate statusline theme
Refactor the statusline module and move the theme to a separate module. Update the styling in the mode section.
This commit is contained in:
parent
4dc2c9858b
commit
41eba58105
2 changed files with 33 additions and 28 deletions
|
@ -40,32 +40,14 @@ local function setHighlight(str)
|
||||||
return string.format("%%#%s#", str)
|
return string.format("%%#%s#", str)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local theme = require("statusline.themes.tokyonight")
|
||||||
|
|
||||||
|
local ns = vim.api.nvim_create_namespace("statusline")
|
||||||
|
|
||||||
function M.output()
|
function M.output()
|
||||||
local palette = {
|
|
||||||
cyan = "#7dcfff",
|
|
||||||
blue = "#7aa2f7",
|
|
||||||
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)
|
vim.api.nvim__set_hl_ns(ns)
|
||||||
|
|
||||||
for name, settings in pairs(theme) do
|
for name, settings in pairs(theme.theme) do
|
||||||
vim.api.nvim_set_hl(ns, name, settings)
|
vim.api.nvim_set_hl(ns, name, settings)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,21 +63,21 @@ function M.output()
|
||||||
local percentage = "[%3p%%] "
|
local percentage = "[%3p%%] "
|
||||||
|
|
||||||
return table.concat{
|
return table.concat{
|
||||||
setHighlight(statuslineMode),
|
setHighlight(theme.statuslineMode),
|
||||||
mode,
|
mode,
|
||||||
setHighlight(statuslineBlueText),
|
|
||||||
separator,
|
separator,
|
||||||
|
setHighlight(theme.statuslineBlueText),
|
||||||
open_file,
|
open_file,
|
||||||
buf_nr,
|
buf_nr,
|
||||||
separator,
|
separator,
|
||||||
setHighlight(statuslineTransparent),
|
setHighlight(theme.statuslineTransparent),
|
||||||
right_align,
|
right_align,
|
||||||
setHighlight(statuslineBlueText),
|
setHighlight(theme.statuslineBlueText),
|
||||||
separator,
|
separator,
|
||||||
file_format,
|
file_format,
|
||||||
file_type,
|
file_type,
|
||||||
encoding,
|
encoding,
|
||||||
setHighlight(statuslineMagentaText),
|
setHighlight(theme.statuslineMagentaText),
|
||||||
separator,
|
separator,
|
||||||
line_no,
|
line_no,
|
||||||
percentage,
|
percentage,
|
23
neovim/lua/statusline/themes/tokyonight.lua
Normal file
23
neovim/lua/statusline/themes/tokyonight.lua
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local palette = {
|
||||||
|
cyan = "#7dcfff",
|
||||||
|
blue = "#7aa2f7",
|
||||||
|
magenta = "#bb9af7",
|
||||||
|
black = "#15161e",
|
||||||
|
none = "NONE",
|
||||||
|
}
|
||||||
|
|
||||||
|
M.statuslineMode = "StatuslineMode"
|
||||||
|
M.statuslineTransparent = "StatuslineTransparent"
|
||||||
|
M.statuslineBlueText = "StatuslineBlueText"
|
||||||
|
M.statuslineMagentaText = "StatuslineMagentaText"
|
||||||
|
|
||||||
|
M.theme = {
|
||||||
|
[M.statuslineMode] = {fg = palette["black"], bg = palette["magenta"], bold = true},
|
||||||
|
[M.statuslineTransparent] = {bg = palette["none"]},
|
||||||
|
[M.statuslineBlueText] = {bg = palette["black"], fg = palette["blue"], bold = true},
|
||||||
|
[M.statuslineMagentaText] = {bg = palette["black"], fg = palette["magenta"], bold = true},
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
Loading…
Reference in a new issue