47 lines
1.3 KiB
Lua
47 lines
1.3 KiB
Lua
local logger = require("dep.log")
|
|
|
|
local format = {}
|
|
|
|
--- format a boolean to a chunk with highlights
|
|
---@param b boolean
|
|
---@return chunk chunk
|
|
function format.bool(b)
|
|
return { vim.inspect(b), b and "DiffAdd" or "DiffDelete" }
|
|
end
|
|
|
|
--- format a number to a chunk with highlights
|
|
---@param n number
|
|
---@return chunk chunk
|
|
function format.number(n)
|
|
return { vim.inspect(n), "Number" }
|
|
end
|
|
|
|
--- format a log line with highlights
|
|
---@param log_line string log line
|
|
---@return chunk[] chunks
|
|
function format.log_line(log_line)
|
|
local log_time = string.sub( log_line, string.find(log_line, "%[") + 1,
|
|
string.find(log_line, "%]") - 1)
|
|
local colon = string.find(log_line, ":", 11)
|
|
local log_path = string.sub(log_line, string.find(log_line, "%]") + 2,
|
|
colon - 1)
|
|
local log_path_ln = string.sub(log_line, colon + 1,
|
|
string.find(log_line, ":", colon + 1) - 1)
|
|
local level = string.sub(log_line, string.find(log_line, "%(") + 1,
|
|
string.find(log_line, "%)") - 1)
|
|
local rest = string.sub(log_line, string.find(log_line, "%)") + 2)
|
|
|
|
return {
|
|
{ "[", "" },
|
|
{ log_time, "Boolean" },
|
|
{ "] ", "" },
|
|
{ log_path, "String" },
|
|
{ ":", "" },
|
|
{ log_path_ln, "Number" },
|
|
{ ": ", "" },
|
|
{ rest, logger.stage_colors[level] or "" }
|
|
}
|
|
end
|
|
|
|
return format
|