From 784ee91cc6178692a28d0907880560870020522b Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Sun, 19 Nov 2023 15:52:51 +0100 Subject: [PATCH 1/5] feat: add `api.tree.inspect_node_under_cursor` --- lua/nvim-tree/api.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index 0b8df43f88e..4821845fa34 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -107,6 +107,11 @@ Api.tree.change_root_to_parent = wrap_node(require("nvim-tree.actions.root.dir-u Api.tree.get_node_under_cursor = wrap(require("nvim-tree.lib").get_node_at_cursor) +Api.tree.inspect_node_under_cursor = wrap_node(function(node) + -- until wrap_node(vim.print) works correctly + vim.api.nvim_echo({ { vim.inspect(node) } }, false, {}) +end) + Api.tree.get_nodes = wrap(require("nvim-tree.lib").get_nodes) ---@class ApiTreeFindFileOpts From 6dc396d0a5edcdeb4b50bbfb6966708befe5b497 Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Sun, 19 Nov 2023 16:18:06 +0100 Subject: [PATCH 2/5] Add documentation --- doc/nvim-tree-lua.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 9633d9e9946..04465a9764e 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1617,6 +1617,11 @@ tree.get_node_under_cursor() *nvim-tree-api.tree.get_node_under_cursor()* Return: ~ node or nil if tree is not visible + *nvim-tree-api.tree.inspect_node_under_cursor()* +tree.inspect_node_under_cursor() + Retrieve the currently focused node and display its contents. + Equivalent to `vim.print(require("nvim-tree-api").tree.get_node_under_cursor())`. + tree.get_nodes() *nvim-tree-api.tree.get_nodes()* Retrieve a hierarchical list of all the nodes. This is a cloned list for reference purposes only and should not be passed into other API functions. From 2b16fc292b2779a44f755b2745ed552d9aeeb795 Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Tue, 21 Nov 2023 14:33:22 +0100 Subject: [PATCH 3/5] Revert "feat: add `api.tree.inspect_node_under_cursor`" This reverts commit 784ee91cc6178692a28d0907880560870020522b. --- lua/nvim-tree/api.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index 4821845fa34..0b8df43f88e 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -107,11 +107,6 @@ Api.tree.change_root_to_parent = wrap_node(require("nvim-tree.actions.root.dir-u Api.tree.get_node_under_cursor = wrap(require("nvim-tree.lib").get_node_at_cursor) -Api.tree.inspect_node_under_cursor = wrap_node(function(node) - -- until wrap_node(vim.print) works correctly - vim.api.nvim_echo({ { vim.inspect(node) } }, false, {}) -end) - Api.tree.get_nodes = wrap(require("nvim-tree.lib").get_nodes) ---@class ApiTreeFindFileOpts From 0aac1a3b0dd257da3f41868a0566d75b6c558c81 Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Tue, 21 Nov 2023 14:34:43 +0100 Subject: [PATCH 4/5] Revert "Add documentation" This reverts commit 6dc396d0a5edcdeb4b50bbfb6966708befe5b497. --- doc/nvim-tree-lua.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 04465a9764e..9633d9e9946 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -1617,11 +1617,6 @@ tree.get_node_under_cursor() *nvim-tree-api.tree.get_node_under_cursor()* Return: ~ node or nil if tree is not visible - *nvim-tree-api.tree.inspect_node_under_cursor()* -tree.inspect_node_under_cursor() - Retrieve the currently focused node and display its contents. - Equivalent to `vim.print(require("nvim-tree-api").tree.get_node_under_cursor())`. - tree.get_nodes() *nvim-tree-api.tree.get_nodes()* Retrieve a hierarchical list of all the nodes. This is a cloned list for reference purposes only and should not be passed into other API functions. From 6acac209638d90d719d5f59eeff0fc0fb4cba373 Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Thu, 23 Nov 2023 22:17:08 +0100 Subject: [PATCH 5/5] feat(log): add node inspection function --- lua/nvim-tree/log.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lua/nvim-tree/log.lua b/lua/nvim-tree/log.lua index 10d5c4dcc18..72dce2e9f0e 100644 --- a/lua/nvim-tree/log.lua +++ b/lua/nvim-tree/log.lua @@ -61,6 +61,26 @@ function M.line(typ, fmt, ...) end end +local inspect_opts = {} + +--- @param opts table +function M.set_inspect_opts(opts) + inspect_opts = opts +end + +--- Write to log file the inspection of a node +--- defaults to the node under cursor if none is provided +--- @param typ string as per log.types config +--- @param node table|nil node to be inspected +--- @param fmt string for string.format +--- @vararg any arguments for string.format +function M.node(typ, node, fmt, ...) + if M.enabled(typ) then + node = node or require("nvim-tree.lib").get_node_at_cursor() + M.raw(typ, string.format("[%s] [%s] %s\n%s\n", os.date "%Y-%m-%d %H:%M:%S", typ, (fmt or "???"), vim.inspect(node, inspect_opts)), ...) + end +end + --- Logging is enabled for typ or all --- @param typ string as per log.types config --- @return boolean