fix formatting log lines causing errors
This commit is contained in:
@ -20,16 +20,29 @@ end
|
|||||||
---@param log_line string log line
|
---@param log_line string log line
|
||||||
---@return chunk[] chunks
|
---@return chunk[] chunks
|
||||||
function format.log_line(log_line)
|
function format.log_line(log_line)
|
||||||
local log_time = string.sub( log_line, string.find(log_line, "%[") + 1,
|
-- make sure we don't do operations on nil values
|
||||||
string.find(log_line, "%]") - 1)
|
if not log_line or log_line == "" then
|
||||||
local colon = string.find(log_line, ":", 11)
|
return {}
|
||||||
local log_path = string.sub(log_line, string.find(log_line, "%]") + 2,
|
end
|
||||||
colon - 1)
|
|
||||||
local log_path_ln = string.sub(log_line, colon + 1,
|
-- error on any nil values, this should prevent us from parsing an incorrectly
|
||||||
string.find(log_line, ":", colon + 1) - 1)
|
-- formatted log line
|
||||||
local level = string.sub(log_line, string.find(log_line, "%(") + 1,
|
local log_time, colon, log_path, log_path_ln, level, rest
|
||||||
string.find(log_line, "%)") - 1)
|
local ok = pcall(function()
|
||||||
local rest = string.sub(log_line, string.find(log_line, "%)") + 2)
|
log_time = string.sub(log_line, string.find(log_line, "%[") + 1,
|
||||||
|
string.find(log_line, "%]") - 1)
|
||||||
|
colon = string.find(log_line, ":", 11)
|
||||||
|
log_path = string.sub(log_line, string.find(log_line, "%]") + 2,
|
||||||
|
colon - 1)
|
||||||
|
log_path_ln = string.sub(log_line, colon + 1,
|
||||||
|
string.find(log_line, ":", colon + 1) - 1)
|
||||||
|
level = string.sub(log_line, string.find(log_line, "%(") + 1,
|
||||||
|
string.find(log_line, "%)") - 1)
|
||||||
|
rest = string.sub(log_line, string.find(log_line, "%)") + 2)
|
||||||
|
end)
|
||||||
|
if not ok then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ "[", "" },
|
{ "[", "" },
|
||||||
|
@ -17,6 +17,14 @@ describe("ui log formatting", function()
|
|||||||
},
|
},
|
||||||
dep_ui_format.log_line("[11:22:33] file.lua:1:(vim) some fancy message")
|
dep_ui_format.log_line("[11:22:33] file.lua:1:(vim) some fancy message")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- malformed log line
|
||||||
|
assert.same({},
|
||||||
|
dep_ui_format.log_line("11:22:33] file.lua:1:(vim) some fancy message"))
|
||||||
|
|
||||||
|
-- test nil values
|
||||||
|
assert.same({}, dep_ui_format.log_line(""))
|
||||||
|
assert.same({}, dep_ui_format.log_line(nil))
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user