Skip to content

Commit 951b6e7

Browse files
chomosukeD0otalex-courtis
authored
fix(#1836): add view.debounce_delay (#1871)
* fix(#1836):add view.debounce_delay to avoid some unnecessary explorer reloads * fixed BufReadPost & BufUnload nil pointer * update_focused_file.debouce_delay to view.debounce_delay * changed docs to be more accurate * added debounce on modified update * Using same event for filter buffer * removed unused View.debounce_delay * changed docs to be more accurate Co-authored-by: doot <gugegby@gmail.com> Co-authored-by: Alexander Courtis <alex@courtis.org>
1 parent e322fbb commit 951b6e7

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

doc/nvim-tree-lua.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ Subsequent calls to setup will replace the previous configuration.
192192
adaptive_size = false,
193193
centralize_selection = false,
194194
cursorline = true,
195+
debounce_delay = 15,
195196
width = 30,
196197
hide_root_folder = false,
197198
side = "left",
@@ -286,7 +287,6 @@ Subsequent calls to setup will replace the previous configuration.
286287
},
287288
update_focused_file = {
288289
enable = false,
289-
debounce_delay = 15,
290290
update_root = false,
291291
ignore_list = {},
292292
},
@@ -520,11 +520,6 @@ until it finds the file.
520520
Enable this feature.
521521
Type: `boolean`, Default: `false`
522522

523-
*nvim-tree.update_focused_file.debounce_delay*
524-
Idle milliseconds between BufEnter and update.
525-
The last BufEnter will be focused, others are discarded.
526-
Type: `number`, Default: `15` (ms)
527-
528523
*nvim-tree.update_focused_file.update_root* (previously `update_focused_file.update_cwd`)
529524
Update the root directory of the tree if the file is not under current
530525
root directory. It prefers vim's cwd and `root_dirs`.
@@ -716,6 +711,11 @@ Window / buffer setup.
716711
Enable |cursorline| in the tree window.
717712
Type: `boolean`, Default: `true`
718713

714+
*nvim-tree.view.debounce_delay*
715+
Idle milliseconds before some reload / refresh operations.
716+
Increase if you experience performance issues around screen refresh.
717+
Type: `number`, Default: `15` (ms)
718+
719719
*nvim-tree.view.hide_root_folder*
720720
Hide the path of the current working directory on top of the tree.
721721
Type: `boolean`, Default: `false`

lua/nvim-tree.lua

+12-6
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,9 @@ local function setup_autocommands(opts)
369369
(filters.config.filter_no_buffer or renderer.config.highlight_opened_files ~= "none")
370370
and vim.bo[data.buf].buftype == ""
371371
then
372-
reloaders.reload_explorer()
372+
utils.debounce("Buf:filter_buffer", opts.view.debounce_delay, function()
373+
reloaders.reload_explorer()
374+
end)
373375
end
374376
end,
375377
})
@@ -381,7 +383,9 @@ local function setup_autocommands(opts)
381383
(filters.config.filter_no_buffer or renderer.config.highlight_opened_files ~= "none")
382384
and vim.bo[data.buf].buftype == ""
383385
then
384-
reloaders.reload_explorer(nil, data.buf)
386+
utils.debounce("Buf:filter_buffer", opts.view.debounce_delay, function()
387+
reloaders.reload_explorer(nil, data.buf)
388+
end)
385389
end
386390
end,
387391
})
@@ -416,7 +420,7 @@ local function setup_autocommands(opts)
416420
if opts.update_focused_file.enable then
417421
create_nvim_tree_autocmd("BufEnter", {
418422
callback = function()
419-
utils.debounce("BufEnter:find_file", opts.update_focused_file.debounce_delay, function()
423+
utils.debounce("BufEnter:find_file", opts.view.debounce_delay, function()
420424
find_file(false)
421425
end)
422426
end,
@@ -481,8 +485,10 @@ local function setup_autocommands(opts)
481485
if opts.modified.enable then
482486
create_nvim_tree_autocmd({ "BufModifiedSet", "BufWritePost" }, {
483487
callback = function()
484-
modified.reload()
485-
reloaders.reload_explorer()
488+
utils.debounce("Buf:modified", opts.view.debounce_delay, function()
489+
modified.reload()
490+
reloaders.reload_explorer()
491+
end)
486492
end,
487493
})
488494
end
@@ -510,6 +516,7 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
510516
adaptive_size = false,
511517
centralize_selection = false,
512518
cursorline = true,
519+
debounce_delay = 15,
513520
width = 30,
514521
hide_root_folder = false,
515522
side = "left",
@@ -604,7 +611,6 @@ local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS
604611
},
605612
update_focused_file = {
606613
enable = false,
607-
debounce_delay = 15,
608614
update_root = false,
609615
ignore_list = {},
610616
},

lua/nvim-tree/legacy.lua

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ local function refactored(opts)
2424

2525
-- 2022/11/22
2626
utils.move_missing_val(opts, "renderer", "root_folder_modifier", opts, "renderer", "root_folder_label", true)
27+
28+
-- 2023/01/01
29+
utils.move_missing_val(opts, "update_focused_file", "debounce_delay", opts, "view", "debounce_delay", true)
2730
end
2831

2932
local function removed(opts)

0 commit comments

Comments
 (0)