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