125 lines
10 KiB
Lua
125 lines
10 KiB
Lua
local function getLen(str, start_pos)
|
|
local byte = string.byte(str, start_pos)
|
|
if not byte then
|
|
return nil
|
|
end
|
|
|
|
return (byte < 0x80 and 1) or (byte < 0xE0 and 2) or (byte < 0xF0 and 3) or (byte < 0xF8 and 4) or 1
|
|
end
|
|
|
|
local function colorize(header, header_color_map, colors)
|
|
for letter, color in pairs(colors) do
|
|
local color_name = "AlphaJemuelKwelKwelWalangTatay" .. letter
|
|
vim.api.nvim_set_hl(0, color_name, color)
|
|
colors[letter] = color_name
|
|
end
|
|
|
|
local colorized = {}
|
|
|
|
for i, line in ipairs(header_color_map) do
|
|
local colorized_line = {}
|
|
local pos = 0
|
|
|
|
for j = 1, #line do
|
|
local start = pos
|
|
pos = pos + getLen(header[i], start + 1)
|
|
|
|
local color_name = colors[line:sub(j, j)]
|
|
if color_name then
|
|
table.insert(colorized_line, { color_name, start, pos })
|
|
end
|
|
end
|
|
|
|
table.insert(colorized, colorized_line)
|
|
end
|
|
|
|
return colorized
|
|
end
|
|
|
|
local M = {}
|
|
|
|
M.setup = function(dashboard)
|
|
local header = {
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
[[ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ]],
|
|
}
|
|
|
|
local color_map = {
|
|
[[ WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBWWWWWWWWWWWWWW ]],
|
|
[[ RRRRWWWWWWWWWWWWWWWWRRRRRRRRRRRRRRRRWWWWWWWWWWWWWWWWBBPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPBBWWWWWWWWWWWW ]],
|
|
[[ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRBBPPPPPPHHHHHHHHHHHHHHHHHHHHHHHHHHPPPPPPBBWWWWWWWWWW ]],
|
|
[[ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRBBPPPPHHHHHHHHHHHHFFHHHHFFHHHHHHHHHHPPPPBBWWWWWWWWWW ]],
|
|
[[ OOOORRRRRRRRRRRRRRRROOOOOOOOOOOOOOOORRRRRRRRRRRRRRBBPPHHHHFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHPPBBWWWWWWWWWW ]],
|
|
[[ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOBBPPHHHHHHHHHHHHHHHHHHHHBBBBHHHHFFHHHHPPBBWWBBBBWWWW ]],
|
|
[[ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOBBPPHHHHHHHHHHHHHHHHHHBBMMMMBBHHHHHHHHPPBBBBMMMMBBWW ]],
|
|
[[ YYYYOOOOOOOOOOOOOOOOYYYYYYYYYYYYYYYYOOBBBBBBBBOOOOBBPPHHHHHHHHHHHHFFHHHHBBMMMMMMBBHHHHHHPPBBMMMMMMBBWW ]],
|
|
[[ YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBBMMMMBBBBOOBBPPHHHHHHHHHHHHHHHHHHBBMMMMMMMMBBBBBBBBMMMMMMMMBBWW ]],
|
|
[[ YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYBBBBMMMMBBBBBBPPHHHHHHFFHHHHHHHHHHBBMMMMMMMMMMMMMMMMMMMMMMMMBBWW ]],
|
|
[[ GGGGYYYYYYYYYYYYYYYYGGGGGGGGGGGGGGGGYYYYBBBBMMMMBBBBPPHHHHHHHHHHHHHHFFBBMMMMMMMMMMMMMMMMMMMMMMMMMMMMBB ]],
|
|
[[ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBBBBMMMMBBPPHHFFHHHHHHHHHHHHBBMMMMMMCCBBMMMMMMMMMMCCBBMMMMBB ]],
|
|
[[ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBBBBBBBBPPHHHHHHHHHHHHHHHHBBMMMMMMBBBBMMMMMMBBMMBBBBMMMMBB ]],
|
|
[[ UUUUGGGGGGGGGGGGGGGGUUUUUUUUUUUUUUUUGGGGGGGGGGGGBBBBPPHHHHHHHHHHFFHHHHBBMMRRRRMMMMMMMMMMMMMMMMMMRRRRBB ]],
|
|
[[ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUBBPPPPHHFFHHHHHHHHHHBBMMRRRRMMBBMMMMBBMMMMBBMMRRRRBB ]],
|
|
[[ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUBBPPPPPPHHHHHHHHHHHHHHBBMMMMMMBBBBBBBBBBBBBBMMMMBBWW ]],
|
|
[[ VVVVUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVUUUUUUUUUUUUBBBBBBPPPPPPPPPPPPPPPPPPPPBBMMMMMMMMMMMMMMMMMMMMBBWWWW ]],
|
|
[[ VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBBMMMMMMBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBWWWWWW ]],
|
|
[[ VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVBBMMMMBBBBWWBBMMMMBBWWWWWWWWWWBBMMMMBBWWBBMMMMBBWWWWWWWW ]],
|
|
[[ WWWWVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWVVVVVVVVVVBBBBBBBBWWWWBBBBBBWWWWWWWWWWWWWWBBBBBBWWWWBBBBWWWWWWWWWW ]],
|
|
}
|
|
|
|
local c = {
|
|
color0 = "#191724",
|
|
color1 = "#eb6f92",
|
|
color2 = "#31748f",
|
|
color3 = "#f6c177",
|
|
color4 = "#9ccfd8",
|
|
color5 = "#c4a7e7",
|
|
color6 = "#ebbcba",
|
|
color7 = "#908caa",
|
|
color8 = "#26233a",
|
|
color15 = "#e0def4",
|
|
}
|
|
|
|
local colors = {
|
|
["W"] = { fg = c.color0 },
|
|
["C"] = { fg = c.color15 },
|
|
["B"] = { fg = c.color8 },
|
|
["R"] = { fg = c.color1 },
|
|
["O"] = { fg = c.color6 },
|
|
["Y"] = { fg = c.color3 },
|
|
["G"] = { fg = c.color4 },
|
|
["U"] = { fg = c.color2 },
|
|
["P"] = { fg = c.color3 },
|
|
["H"] = { fg = c.color5 },
|
|
["F"] = { fg = c.color1 },
|
|
["M"] = { fg = c.color7 },
|
|
["V"] = { fg = c.color5 },
|
|
}
|
|
|
|
dashboard.section.header.val = header
|
|
dashboard.section.header.opts = {
|
|
hl = colorize(header, color_map, colors),
|
|
position = "center",
|
|
}
|
|
end
|
|
|
|
return M
|