From 584b7388c3f16d79f5e8eec4956ecf0c48f4fe79 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 2 Jan 2023 12:21:35 +1100 Subject: [PATCH 1/4] feat(event): add OnAttachPost --- doc/nvim-tree-lua.txt | 5 +++++ lua/nvim-tree/events.lua | 6 ++++++ lua/nvim-tree/view.lua | 1 + 3 files changed, 12 insertions(+) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 2dac973970a..262a7cf6b88 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1639,6 +1639,11 @@ e.g. handler for node renamed: > handler parameters: ~ {folder_name} `{string}` Absolute path to the removed folder. +- Event.OnAttachPost + Invoked after |nvim-tree.on_attach| has been called. + handler parameters: ~ + {buf} `{number} `API buffer handle (buffer number) + ============================================================================== 9. BOOKMARKS *nvim-tree-bookmarks* diff --git a/lua/nvim-tree/events.lua b/lua/nvim-tree/events.lua index 0fbe8158797..f30294b4aa7 100644 --- a/lua/nvim-tree/events.lua +++ b/lua/nvim-tree/events.lua @@ -15,6 +15,7 @@ M.Event = { FolderCreated = "FolderCreated", FolderRemoved = "FolderRemoved", Resize = "Resize", + OnAttachPost = "OnAttachPost", } local function get_handlers(event_name) @@ -86,6 +87,11 @@ function M._dispatch_on_tree_resize(size) dispatch(M.Event.Resize, size) end +--@private +function M._dispatch_on_attach_post(buf) + dispatch(M.Event.OnAttachPost, buf) +end + --- @deprecated function M.on_nvim_tree_ready(handler) M.subscribe(M.Event.Ready, handler) diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index f9e1ad1cf3b..e13a89bcba6 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -92,6 +92,7 @@ local function create_buffer(bufnr) if type(M.on_attach) == "function" then require("nvim-tree.keymap").set_keymaps(M.get_bufnr()) M.on_attach(M.get_bufnr()) + events._dispatch_on_attach_post(M.get_bufnr()) else require("nvim-tree.actions").apply_mappings(M.get_bufnr()) end From a9de04f4c1855aa5748680040486f49caaee4d6f Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 2 Jan 2023 12:46:40 +1100 Subject: [PATCH 2/4] feat(event): add TreeAttachPost --- doc/nvim-tree-lua.txt | 2 +- lua/nvim-tree/events.lua | 6 +++--- lua/nvim-tree/view.lua | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 262a7cf6b88..07ca2541d0a 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1639,7 +1639,7 @@ e.g. handler for node renamed: > handler parameters: ~ {folder_name} `{string}` Absolute path to the removed folder. -- Event.OnAttachPost +- Event.TreeAttachPost Invoked after |nvim-tree.on_attach| has been called. handler parameters: ~ {buf} `{number} `API buffer handle (buffer number) diff --git a/lua/nvim-tree/events.lua b/lua/nvim-tree/events.lua index f30294b4aa7..a755a64697c 100644 --- a/lua/nvim-tree/events.lua +++ b/lua/nvim-tree/events.lua @@ -15,7 +15,7 @@ M.Event = { FolderCreated = "FolderCreated", FolderRemoved = "FolderRemoved", Resize = "Resize", - OnAttachPost = "OnAttachPost", + TreeAttachedPost = "TreeAttachedPost", } local function get_handlers(event_name) @@ -88,8 +88,8 @@ function M._dispatch_on_tree_resize(size) end --@private -function M._dispatch_on_attach_post(buf) - dispatch(M.Event.OnAttachPost, buf) +function M._dispatch_tree_attach_post(buf) + dispatch(M.Event.TreeAttachedPost, buf) end --- @deprecated diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index e13a89bcba6..dc16d8f1a6b 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -92,7 +92,7 @@ local function create_buffer(bufnr) if type(M.on_attach) == "function" then require("nvim-tree.keymap").set_keymaps(M.get_bufnr()) M.on_attach(M.get_bufnr()) - events._dispatch_on_attach_post(M.get_bufnr()) + events._dispatch_tree_attach_post(M.get_bufnr()) else require("nvim-tree.actions").apply_mappings(M.get_bufnr()) end From a4c05bfbbb3d413777c08fed5907c3f80bda442c Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 2 Jan 2023 12:47:43 +1100 Subject: [PATCH 3/4] feat(event): add TreeAttachPost --- doc/nvim-tree-lua.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 07ca2541d0a..b053538c6ac 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1639,7 +1639,7 @@ e.g. handler for node renamed: > handler parameters: ~ {folder_name} `{string}` Absolute path to the removed folder. -- Event.TreeAttachPost +- Event.TreeAttachedPost Invoked after |nvim-tree.on_attach| has been called. handler parameters: ~ {buf} `{number} `API buffer handle (buffer number) From 35f200e3062adeb14012eb9c0fc904e7758bea05 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Tue, 3 Jan 2023 10:13:22 +1100 Subject: [PATCH 4/4] feat(event): TreeAttachedPost fired after all mappings created, not just on_attach --- doc/nvim-tree-lua.txt | 3 ++- lua/nvim-tree/events.lua | 2 +- lua/nvim-tree/view.lua | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index b053538c6ac..91f30bd15e1 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1640,7 +1640,8 @@ e.g. handler for node renamed: > {folder_name} `{string}` Absolute path to the removed folder. - Event.TreeAttachedPost - Invoked after |nvim-tree.on_attach| has been called. + Invoked after the tree's buffer has been created and mappings + have been applied: |nvim-tree-mappings| or |nvim-tree.on_attach| handler parameters: ~ {buf} `{number} `API buffer handle (buffer number) diff --git a/lua/nvim-tree/events.lua b/lua/nvim-tree/events.lua index a755a64697c..63a9f80b654 100644 --- a/lua/nvim-tree/events.lua +++ b/lua/nvim-tree/events.lua @@ -88,7 +88,7 @@ function M._dispatch_on_tree_resize(size) end --@private -function M._dispatch_tree_attach_post(buf) +function M._dispatch_tree_attached_post(buf) dispatch(M.Event.TreeAttachedPost, buf) end diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index dc16d8f1a6b..4da5ad65ca5 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -92,10 +92,10 @@ local function create_buffer(bufnr) if type(M.on_attach) == "function" then require("nvim-tree.keymap").set_keymaps(M.get_bufnr()) M.on_attach(M.get_bufnr()) - events._dispatch_tree_attach_post(M.get_bufnr()) else require("nvim-tree.actions").apply_mappings(M.get_bufnr()) end + events._dispatch_tree_attached_post(M.get_bufnr()) end local function get_size()