Skip to content

Commit 8661fea

Browse files
committed
refactor: use lua for nvim-tree autocmd
1 parent d4ed066 commit 8661fea

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

lua/nvim-tree.lua

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ local utils = require "nvim-tree.utils"
1010
local change_dir = require "nvim-tree.actions.change-dir"
1111
local legacy = require "nvim-tree.legacy"
1212
local core = require "nvim-tree.core"
13+
local reloaders = require "nvim-tree.actions.reloaders"
1314

1415
local _config = {}
1516

@@ -272,40 +273,53 @@ function M.change_dir(name)
272273
end
273274

274275
local function setup_autocommands(opts)
275-
vim.cmd "augroup NvimTree"
276-
vim.cmd "autocmd!"
276+
local augroup_id = vim.api.nvim_create_augroup("NvimTree", {})
277+
local function create_nvim_tree_autocmd(name, custom_opts)
278+
local default_opts = { group = augroup_id }
279+
vim.api.nvim_create_autocmd(name, vim.tbl_extend("force", default_opts, custom_opts))
280+
end
277281

278282
-- reset highlights when colorscheme is changed
279-
vim.cmd "au ColorScheme * lua require'nvim-tree'.reset_highlight()"
283+
create_nvim_tree_autocmd("ColorScheme", { callback = M.reset_highlight })
284+
280285
if opts.auto_reload_on_write then
281-
vim.cmd "au BufWritePost * lua require'nvim-tree.actions.reloaders'.reload_explorer()"
286+
create_nvim_tree_autocmd("BufWritePost", { callback = reloaders.reload_explorer })
282287
end
283-
vim.cmd "au User FugitiveChanged,NeogitStatusRefreshed lua require'nvim-tree.actions.reloaders'.reload_git()"
288+
create_nvim_tree_autocmd("User", {
289+
pattern = { "FugitiveChanged", "NeogitStatusRefreshed" },
290+
callback = reloaders.reload_git,
291+
})
284292

285293
if opts.open_on_tab then
286-
vim.cmd "au TabEnter * lua require'nvim-tree'.tab_change()"
294+
create_nvim_tree_autocmd("TabEnter", { callback = M.tab_change })
287295
end
288296
if opts.hijack_cursor then
289-
vim.cmd "au CursorMoved NvimTree_* lua require'nvim-tree'.place_cursor_on_node()"
297+
create_nvim_tree_autocmd("CursorMoved", { pattern = "NvimTree_*", callback = M.place_cursor_on_node })
290298
end
291299
if opts.update_cwd then
292-
vim.cmd "au DirChanged * lua require'nvim-tree'.change_dir(vim.loop.cwd())"
300+
create_nvim_tree_autocmd("DirChanged", {
301+
callback = function()
302+
M.change_dir(vim.loop.cwd)
303+
end,
304+
})
293305
end
294306
if opts.update_focused_file.enable then
295-
vim.cmd "au BufEnter * lua require'nvim-tree'.find_file(false)"
307+
create_nvim_tree_autocmd("BufEnter", {
308+
callback = function()
309+
M.find_file(false)
310+
end,
311+
})
296312
end
297313

298314
if not opts.actions.open_file.quit_on_open then
299-
vim.cmd "au BufWipeout NvimTree_* lua require'nvim-tree.view'._prevent_buffer_override()"
315+
create_nvim_tree_autocmd("BufWipeout", { pattern = "NvimTree_*", callback = view._prevent_buffer_override })
300316
else
301-
vim.cmd "au BufWipeout NvimTree_* lua require'nvim-tree.view'.abandon_current_window()"
317+
create_nvim_tree_autocmd("BufWipeout", { pattern = "NvimTree_*", callback = view.abandon_current_window })
302318
end
303319

304320
if opts.hijack_directories.enable then
305-
vim.cmd "au BufEnter,BufNewFile * lua require'nvim-tree'.open_on_directory()"
321+
create_nvim_tree_autocmd({ "BufEnter", "BufNewFile" }, { callback = M.open_on_directory })
306322
end
307-
308-
vim.cmd "augroup end"
309323
end
310324

311325
local DEFAULT_OPTS = { -- BEGIN_DEFAULT_OPTS

0 commit comments

Comments
 (0)