Skip to content

Commit a2e0ac9

Browse files
authored
refactor(log): add types, improve perf, more level configuration (#1874)
1 parent 8dd9f08 commit a2e0ac9

File tree

24 files changed

+409
-233
lines changed

24 files changed

+409
-233
lines changed

lua/neo-tree/collections.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,11 @@ function Queue:for_each(func)
9898
elseif type(result) == "table" then
9999
if result.handled == true then
100100
log.trace(
101-
"Handler ",
101+
"Handler",
102102
node.value.id,
103-
" for "
104-
.. node.value.event
105-
.. " returned handled = true, skipping the rest of the queue."
103+
"for",
104+
node.value.event,
105+
"was handled, skipping the rest of the queue."
106106
)
107107
return result
108108
end

lua/neo-tree/defaults.lua

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,17 @@ local config = {
3131
hide_root_node = false, -- Hide the root node.
3232
retain_hidden_root_indent = false, -- IF the root node is hidden, keep the indentation anyhow.
3333
-- This is needed if you use expanders because they render in the indent.
34-
log_level = "info", -- "trace", "debug", "info", "warn", "error", "fatal"
35-
log_to_file = false, -- true, false, "/path/to/file.log", use ':lua require("neo-tree").show_logs()' to show the file
34+
-- The minimum level of log statements that should be logged to the log file.
35+
log_level = vim.log.levels.INFO, -- or other vim.log.levels (up to .ERROR), or "trace", "debug", "info", "warn", "error", "fatal"
36+
-- For usabiliity, the minimum console log level = max(log_level, INFO) unless set explicitly using a table:
37+
-- log_level = {
38+
-- file = vim.log.levels.INFO,
39+
-- console = vim.log.levels.INFO,
40+
-- },
41+
42+
-- true, false, "/path/to/file.log", use ':lua require("neo-tree").show_logs()' to show the file.
43+
-- Default location is `vim.fn.stdpath("data") .. "/" .. "neo-tree.nvim.log"`
44+
log_to_file = false,
3645
open_files_in_last_window = true, -- false = open files in top left window
3746
open_files_do_not_replace_types = { "terminal", "Trouble", "qf", "edgy" }, -- when opening files, do not use windows containing these filetypes or buftypes
3847
open_files_using_relative_paths = false,

lua/neo-tree/events/init.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ end
6767
---@param seed_fn function?
6868
---@param nested boolean?
6969
M.define_autocmd_event = function(event_name, autocmds, debounce_frequency, seed_fn, nested)
70-
log.debug("Defining autocmd event: %s", event_name)
70+
log.debug("Defining autocmd event:", event_name)
7171
local augroup_name = "NeoTreeEvent_" .. event_name
7272
q.define_event(event_name, {
7373
setup = function()
@@ -91,7 +91,7 @@ M.define_autocmd_event = function(event_name, autocmds, debounce_frequency, seed
9191
end,
9292
seed = seed_fn,
9393
teardown = function()
94-
log.trace("Teardown autocmds for ", event_name)
94+
log.trace("Teardown autocmds for", event_name)
9595
vim.api.nvim_create_augroup(augroup_name, { clear = true })
9696
end,
9797
debounce_frequency = debounce_frequency,

lua/neo-tree/events/queue.lua

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ M.destroy_event = function(event_name)
5858
if existing.setup_was_run and type(existing.teardown) == "function" then
5959
local success, result = pcall(existing.teardown)
6060
if not success then
61-
error("Error in teardown for " .. event_name .. ": " .. result)
61+
log.error("Error in teardown for", event_name, ":", result)
6262
end
6363
existing.setup_was_run = false
6464
end
@@ -73,21 +73,21 @@ local fire_event_internal = function(event, args)
7373
if queue == nil then
7474
return nil
7575
end
76-
--log.trace("Firing event: ", event, " with args: ", args)
7776

7877
if queue:is_empty() then
7978
--log.trace("Event queue is empty")
8079
return nil
8180
end
81+
log.trace("Firing event:", event, "with args:", args)
8282
local seed = utils.get_value(event_definitions, event .. ".seed")
8383
if seed ~= nil then
8484
local success, result = pcall(seed, args)
8585
if success and result then
86-
log.trace("Seed for " .. event .. " returned: " .. tostring(result))
86+
log.trace("Seed for", event, "returned: ", result)
8787
elseif success then
88-
log.trace("Seed for " .. event .. " returned falsy, cancelling event")
88+
log.trace("Seed for", event, "returned falsy, cancelling event")
8989
else
90-
log.error("Error in seed function for " .. event .. ": " .. result)
90+
log.error("Error in seed function for", event .. ": ", result)
9191
end
9292
end
9393

@@ -97,9 +97,9 @@ local fire_event_internal = function(event, args)
9797
local success, result = pcall(event_handler.handler, args)
9898
local id = event_handler.id or event_handler
9999
if success then
100-
log.trace("Handler ", id, " for " .. event .. " called successfully.")
100+
log.trace("Handler", id, "for", event, "called successfully.")
101101
else
102-
log.error(string.format("Error in event handler for event %s[%s]: %s", event, id, result))
102+
log.at.error.format("Error in event handler for event %s[%s]: %s", event, id, result)
103103
end
104104
if event_handler.once then
105105
event_handler.cancelled = true
@@ -115,7 +115,6 @@ end
115115
M.fire_event = function(event, args)
116116
local freq = utils.get_value(event_definitions, event .. ".debounce_frequency", 0, true)
117117
local strategy = utils.get_value(event_definitions, event .. ".debounce_strategy", 0, true)
118-
log.trace("Firing event: ", event, " with args: ", args)
119118
if freq > 0 then
120119
utils.debounce("EVENT_FIRED: " .. event, function()
121120
fire_event_internal(event, args or {})
@@ -131,21 +130,21 @@ M.subscribe = function(event_handler)
131130

132131
local queue = event_queues[event_handler.event]
133132
if queue == nil then
134-
log.debug("Creating queue for event: " .. event_handler.event)
133+
log.debug("Creating queue for event:", event_handler.event)
135134
queue = Queue:new()
136135
local def = event_definitions[event_handler.event]
137136
if def and type(def.setup) == "function" then
138137
local success, result = pcall(def.setup)
139138
if success then
140139
def.setup_was_run = true
141-
log.debug("Setup for event " .. event_handler.event .. " was run")
140+
log.debug("Ran setup for event", event_handler.event)
142141
else
143-
log.error("Error in setup for " .. event_handler.event .. ": " .. result)
142+
log.error("Error in setup for", event_handler.event, ":", result)
144143
end
145144
end
146145
event_queues[event_handler.event] = queue
147146
end
148-
log.debug("Adding event handler [", event_handler.id, "] for event: ", event_handler.event)
147+
log.debug("Adding event handler [", event_handler.id, "] for event:", event_handler.event)
149148
queue:add(event_handler)
150149
end
151150

lua/neo-tree/git/ignored.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ M.mark_ignored = function(state, items, callback)
145145
enabled_recording = true,
146146
writer = folder_items,
147147
on_start = function()
148-
log.trace("IGNORED: Running async git with args: ", args)
148+
log.trace("IGNORED: Running async git with args:", args)
149149
end,
150150
on_exit = function(self, code, _)
151151
local results
@@ -170,7 +170,7 @@ M.mark_ignored = function(state, items, callback)
170170
else
171171
for folder, folder_items in pairs(folders) do
172172
local cmd = { "git", "-C", folder, "check-ignore", unpack(folder_items) }
173-
log.trace("IGNORED: Running cmd: ", cmd)
173+
log.trace("IGNORED: Running cmd:", cmd)
174174
local result = vim.fn.systemlist(cmd)
175175
if vim.v.shell_error == 128 then
176176
log.debug("Failed to load ignored files for", state.path, ":", result)

lua/neo-tree/git/status.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ M.status_async = function(path, base, opts)
215215
if utils.truthy(git_root) then
216216
log.trace("git.status.status_async called")
217217
else
218-
log.trace("status_async: not a git folder: ", path)
218+
log.trace("status_async: not a git folder:", path)
219219
return false
220220
end
221221

lua/neo-tree/git/utils.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ M.get_repository_root = function(path, callback)
1818
enabled_recording = true,
1919
on_exit = function(self, code, _)
2020
if code ~= 0 then
21-
log.trace("GIT ROOT ERROR ", self:stderr_result())
21+
log.trace("GIT ROOT ERROR", self:stderr_result())
2222
callback(nil)
2323
return
2424
end
@@ -35,7 +35,7 @@ M.get_repository_root = function(path, callback)
3535
else
3636
local ok, git_output = utils.execute_command({ "git", unpack(args) })
3737
if not ok then
38-
log.trace("GIT ROOT ERROR ", git_output)
38+
log.trace("GIT ROOT ERROR", git_output)
3939
return nil
4040
end
4141
local git_root = git_output[1]

0 commit comments

Comments
 (0)