Skip to content

Conversation

@alex-courtis
Copy link
Member

@alex-courtis alex-courtis commented Jan 17, 2026

fixes #3088
fixes #2668
addresses #3231 step 2

follows #3235

Goals

  • API function meta definitions with documentation
  • Help API generated from above
  • Absolute minimum number of dependent requires on requiring api.lua
  • Add some consistent structure to api with some non-breaking refactors

Scope

  • Create meta lua/nvim-tree/_meta/api/ and lua/nvim-tree/_meta/api.lua for namespaced
    • Empty API functions
    • API option classes
  • Expose above to user as the result of require("nvim-tree.api")
  • Hydrate functions with implementations
    • on require("nvim-tree.api") call api.impl.pre (fast)
      • error "nvim-tree setup not called" (removed wrap) OR
      • pre-setup implementations e.g. api.events.subscribe
    • after setup call api.impl.post (slow) to completes all remaining implementations
  • Documented node and git classes in annotations and help
  • Some API was refactored and grouped for clarity, retaining compatibility via api.impl.legacy called after pre and post
  • Corrected filter function names: hidden -> dotfiles
  • Rewrote *nvim-tree-commands* help

#3231 step 2 was added to scope as the api hydration was changed anyway and needed to be tested.

Review Please

I can't ask anyone to review the whole thing, with help and api not diffable, however I'd be most grateful for a review of

I'd also be really grateful for a test of:

  • make help-check
  • LSP
    • identifying API
    • completing API
    • validating params etc. e.g.
20260129_140745 20260129_142005

@stefgodin I'd be really grateful for a review of the Node and Git class documentation in the *nvim-tree-api* section of nvim-tree-lua.txt

@przepompownia and @perrin4869 I'd really appreciate a test of startup performance before and after api and setup

Startup timing:

Nothing required:

006.757  000.060  000.060: require('nvim-tree.commands')
006.810  000.120  000.060: sourcing /tmp/nd/local/share/nvim/site/pack/packer/start/nvim-tree.lua.dev/plugin/nvim-tree.lua

api

require("nvim-tree.api")
002.972  000.019  000.019: require('nvim-tree._meta.api.deprecated')
002.986  000.013  000.013: require('nvim-tree._meta.api.commands')
002.997  000.011  000.011: require('nvim-tree._meta.api.events')
003.017  000.019  000.019: require('nvim-tree._meta.api.filter')
003.044  000.027  000.027: require('nvim-tree._meta.api.fs')
003.056  000.011  000.011: require('nvim-tree._meta.api.git')
003.068  000.012  000.012: require('nvim-tree._meta.api.health')
003.082  000.013  000.013: require('nvim-tree._meta.api.map')
003.101  000.019  000.019: require('nvim-tree._meta.api.marks')
003.148  000.046  000.046: require('nvim-tree._meta.api.node')
003.183  000.035  000.035: require('nvim-tree._meta.api.tree')
003.277  000.064  000.064: require('nvim-tree.commands')
003.370  000.046  000.046: require('nvim-tree.notify')
003.373  000.095  000.049: require('nvim-tree.events')
003.458  000.085  000.085: require('nvim-tree.keymap')
003.539  000.032  000.032: require('nvim-tree.classic')
003.542  000.071  000.039: require('nvim-tree.renderer.decorator')
003.544  000.086  000.014: require('nvim-tree.renderer.decorator.user')
003.545  000.361  000.032: require('nvim-tree.api.impl.pre')
003.592  000.022  000.022: require('nvim-tree.api.impl.legacy')
003.594  000.664  000.057: require('nvim-tree.api')

setup

require("nvim-tree.api")
require("nvim-tree").setup(config)
log
003.151  000.020  000.020: require('nvim-tree._meta.api.deprecated')
003.164  000.013  000.013: require('nvim-tree._meta.api.commands')
003.176  000.012  000.012: require('nvim-tree._meta.api.events')
003.195  000.018  000.018: require('nvim-tree._meta.api.filter')
003.224  000.028  000.028: require('nvim-tree._meta.api.fs')
003.237  000.012  000.012: require('nvim-tree._meta.api.git')
003.251  000.014  000.014: require('nvim-tree._meta.api.health')
003.267  000.015  000.015: require('nvim-tree._meta.api.map')
003.288  000.021  000.021: require('nvim-tree._meta.api.marks')
003.346  000.058  000.058: require('nvim-tree._meta.api.node')
003.382  000.036  000.036: require('nvim-tree._meta.api.tree')
003.478  000.063  000.063: require('nvim-tree.commands')
003.572  000.046  000.046: require('nvim-tree.notify')
003.575  000.097  000.051: require('nvim-tree.events')
003.664  000.088  000.088: require('nvim-tree.keymap')
003.746  000.031  000.031: require('nvim-tree.classic')
003.750  000.072  000.041: require('nvim-tree.renderer.decorator')
003.751  000.087  000.014: require('nvim-tree.renderer.decorator.user')
003.752  000.370  000.034: require('nvim-tree.api.impl.pre')
003.798  000.024  000.024: require('nvim-tree.api.impl.legacy')
003.799  000.691  000.052: require('nvim-tree.api')
003.880  000.081  000.081: require('nvim-tree.log')
007.865  000.199  000.199: require('nvim-tree.utils')
007.874  000.504  000.305: require('nvim-tree.view')
007.984  000.026  000.026: require('nvim-tree.core')
008.174  000.067  000.067: require('nvim-tree.git.utils')
008.194  000.019  000.019: require('nvim-tree.renderer.components.devicons')
008.224  000.029  000.029: require('nvim-tree.iterators.node-iterator')
008.267  000.043  000.043: require('nvim-tree.node')
008.271  000.286  000.128: require('nvim-tree.node.directory')
008.272  000.361  000.049: require('nvim-tree.actions.finders.find-file')
008.318  000.045  000.045: require('nvim-tree.actions.finders.search-node')
008.318  000.423  000.017: require('nvim-tree.actions.finders')
008.425  000.046  000.046: require('nvim-tree.node.file')
008.426  000.092  000.046: require('nvim-tree.actions.fs.create-file')
008.545  000.054  000.054: require('nvim-tree.lib')
008.590  000.013  000.013: require('nvim-tree.node.link')
008.593  000.048  000.035: require('nvim-tree.node.directory-link')
008.595  000.168  000.066: require('nvim-tree.actions.fs.remove-file')
008.661  000.066  000.066: require('nvim-tree.actions.fs.rename-file')
008.718  000.056  000.056: require('nvim-tree.actions.fs.trash')
008.719  000.400  000.018: require('nvim-tree.actions.fs')
008.870  000.076  000.076: require('nvim-tree.diagnostics')
008.872  000.140  000.064: require('nvim-tree.actions.moves.item')
008.893  000.020  000.020: require('nvim-tree.actions.moves.parent')
008.918  000.025  000.025: require('nvim-tree.actions.moves.sibling')
008.919  000.199  000.014: require('nvim-tree.actions.moves')
008.974  000.039  000.039: require('nvim-tree.actions.node.file-popup')
009.185  000.058  000.058: require('nvim-tree.renderer.components.full-name')
009.187  000.212  000.154: require('nvim-tree.actions.node.open-file')
009.203  000.016  000.016: require('nvim-tree.actions.node.run-command')
009.247  000.044  000.044: require('nvim-tree.actions.node.system-open')
009.273  000.026  000.026: require('nvim-tree.actions.node.buffer')
009.274  000.355  000.019: require('nvim-tree.actions.node')
009.320  000.029  000.029: require('nvim-tree.actions.tree.find-file')
009.353  000.032  000.032: require('nvim-tree.actions.tree.collapse')
009.376  000.022  000.022: require('nvim-tree.actions.tree.open')
009.402  000.026  000.026: require('nvim-tree.actions.tree.toggle')
009.421  000.018  000.018: require('nvim-tree.actions.tree.resize')
009.422  000.147  000.019: require('nvim-tree.actions.tree')
009.422  001.548  000.023: require('nvim-tree.actions')
009.437  002.437  000.386: require('nvim-tree')
009.491  000.050  000.050: require('nvim-tree.legacy')
010.155  000.084  000.084: require('nvim-tree.appearance')
010.581  000.026  000.026: require('nvim-tree.buffers')
010.801  000.102  000.102: require('nvim-tree.git.runner')
010.885  000.082  000.082: require('nvim-tree.watcher')
010.887  000.306  000.121: require('nvim-tree.git')
010.943  000.033  000.033: require('nvim-tree.node.file-link')
010.944  000.056  000.023: require('nvim-tree.node.factory')
010.972  000.027  000.027: require('nvim-tree.node.root')
011.072  000.014  000.014: require('nvim-tree.enum')
011.074  000.102  000.087: require('nvim-tree.explorer.filters')
011.189  000.114  000.114: require('nvim-tree.marks')
011.285  000.096  000.096: require('nvim-tree.explorer.live-filter')
011.394  000.109  000.109: require('nvim-tree.explorer.sorter')
011.549  000.149  000.149: require('nvim-tree.actions.fs.clipboard')
011.800  000.027  000.027: require('nvim-tree.renderer.decorator.bookmarks')
011.817  000.016  000.016: require('nvim-tree.renderer.decorator.copied')
011.834  000.016  000.016: require('nvim-tree.renderer.decorator.cut')
011.896  000.061  000.061: require('nvim-tree.renderer.decorator.diagnostics')
011.981  000.084  000.084: require('nvim-tree.renderer.decorator.git')
012.009  000.027  000.027: require('nvim-tree.renderer.decorator.hidden')
012.040  000.031  000.031: require('nvim-tree.renderer.decorator.modified')
012.080  000.039  000.039: require('nvim-tree.renderer.decorator.opened')
012.159  000.078  000.078: require('nvim-tree.renderer.components.padding')
012.162  000.554  000.175: require('nvim-tree.renderer.builder')
012.165  000.616  000.061: require('nvim-tree.renderer')
012.174  001.888  000.289: require('nvim-tree.explorer')
012.231  000.056  000.056: require('nvim-tree.explorer.watch')
012.250  000.015  000.015: require('nvim-tree.renderer.components')
014.930  000.121  000.121: require('nvim-tree.help')
015.071  000.114  000.114: require('nvim-tree.api.impl.post')
016.535  000.049  000.049: sourcing /tmp/nd/local/share/nvim/site/pack/packer/start/nvim-tree.lua.dev/plugin/nvim-tree.lua

Manual Testing

:source
---@diagnostic disable: unused-local, unused-function

--- uncomment individual or groups of calls and :source

local api = require("nvim-tree.api")
local bufnr = -1
local path = "/home/alex"
local event_type = api.events.Event.NodeRenamed
local callback = function() print("NodeRenamed") end
local node = nil
local opts = {}

-- rg -IN "^function" lua/nvim-tree/_meta/api | sort | uniq | sed -E 's/function nvim_tree.//g ; s/ end//g' | wl-copy

local function post()
  api.config.mappings.get_keymap()
  api.filter.custom.toggle()
  api.filter.dotfiles.toggle()
  api.filter.git.clean.toggle()
  api.filter.git.ignored.toggle()
  api.filter.live.clear()
  api.filter.live.start()
  api.filter.no_bookmark.toggle()
  api.filter.no_buffer.toggle()
  api.filter.toggle()
  api.fs.clear_clipboard()
  api.fs.copy.absolute_path(node)
  api.fs.copy.basename(node)
  api.fs.copy.filename(node)
  api.fs.copy.node(node)
  api.fs.copy.relative_path(node)
  api.fs.create(node)
  api.fs.cut(node)
  api.fs.paste(node)
  api.fs.print_clipboard()
  api.fs.remove(node)
  api.fs.rename_basename(node)
  api.fs.rename_full(node)
  api.fs.rename(node)
  api.fs.rename_node(node)
  api.fs.rename_sub(node)
  api.fs.trash(node)
  api.git.reload()
  api.live_filter.clear()
  api.live_filter.start()
  api.map.keymap.current()
  api.marks.bulk.delete()
  api.marks.bulk.move()
  api.marks.bulk.trash()
  api.marks.clear()
  api.marks.get()
  api.marks.list()
  api.marks.navigate.next()
  api.marks.navigate.prev()
  api.marks.navigate.select()
  api.marks.toggle(node)
  api.node.buffer.delete(node, opts)
  api.node.buffer.wipe(node, opts)
  api.node.collapse(node, opts)
  api.node.expand(node, opts)
  api.node.navigate.diagnostics.next(node)
  api.node.navigate.diagnostics.next_recursive(node)
  api.node.navigate.diagnostics.prev(node)
  api.node.navigate.diagnostics.prev_recursive(node)
  api.node.navigate.git.next(node)
  api.node.navigate.git.next_recursive(node)
  api.node.navigate.git.next_skip_gitignored(node)
  api.node.navigate.git.prev(node)
  api.node.navigate.git.prev_recursive(node)
  api.node.navigate.git.prev_skip_gitignored(node)
  api.node.navigate.opened.next(node)
  api.node.navigate.opened.prev(node)
  api.node.navigate.parent_close(node)
  api.node.navigate.parent(node)
  api.node.navigate.sibling.first(node)
  api.node.navigate.sibling.last(node)
  api.node.navigate.sibling.next(node)
  api.node.navigate.sibling.prev(node)
  api.node.open.edit(node, opts)
  api.node.open.horizontal(node, opts)
  api.node.open.horizontal_no_picker(node, opts)
  api.node.open.no_window_picker(node, opts)
  api.node.open.preview(node, opts)
  api.node.open.preview_no_picker(node, opts)
  api.node.open.replace_tree_buffer(node)
  api.node.open.tab_drop(node)
  api.node.open.tab(node, opts)
  api.node.open.toggle_group_empty(node, opts)
  api.node.open.vertical(node, opts)
  api.node.open.vertical_no_picker(node, opts)
  api.node.run.cmd(node)
  api.node.run.system(node)
  api.node.show_info_popup(node)
  api.tree.change_root(path)
  api.tree.change_root_to_node(node)
  api.tree.change_root_to_parent(node)
  api.tree.close()
  api.tree.close_in_all_tabs()
  api.tree.close_in_this_tab()
  api.tree.collapse_all(opts)
  api.tree.expand_all(node, opts)
  api.tree.find_file(opts)
  api.tree.focus()
  api.tree.get_nodes()
  api.tree.get_node_under_cursor()
  api.tree.is_tree_buf(bufnr)
  api.tree.is_visible(opts)
  api.tree.open(opts)
  api.tree.reload()
  api.tree.resize(opts)
  api.tree.search_node()
  api.tree.toggle_custom_filter()
  api.tree.toggle_enable_filters()
  api.tree.toggle_git_clean_filter()
  api.tree.toggle_gitignore_filter()
  api.tree.toggle_help()
  api.tree.toggle_hidden_filter()
  api.tree.toggle_no_bookmark_filter()
  api.tree.toggle_no_buffer_filter()
  api.tree.toggle(opts)
  api.tree.winid(opts)
end


local function pre()
  api.commands.get()
  api.config.mappings.default_on_attach(bufnr)
  api.config.mappings.get_keymap_default()
  api.diagnostics.hi_test()
  api.events.subscribe(event_type, callback)
  api.health.hi_test()
  api.map.keymap.default()
  api.map.on_attach.default(bufnr)
end


--
-- before setup instrument hydrate_error with HydrateErrorCount
--
-- post()
-- should be 106
-- print(HydrateErrorCount)


--
-- pre before setup
--

-- print(vim.inspect(api.commands.get()))

-- api.diagnostics.hi_test()

-- api.events.subscribe(event_type, callback)

-- api.health.hi_test()

-- print(vim.inspect(api.config.mappings.get_keymap_default()))

-- print(vim.inspect(api.map.keymap.default()))

-- implicitly tested
-- print(vim.inspect(api.config.mappings.default_on_attach(bufnr)))
-- print(vim.inspect(api.map.on_attach.default(bufnr)))



--
-- pre after setup
--

-- print(vim.inspect(api.commands.get()))

-- api.diagnostics.hi_test()

-- api.events.subscribe(event_type, callback)

-- api.health.hi_test()

-- print(vim.inspect(api.config.mappings.get_keymap_default()))

-- print(vim.inspect(api.map.keymap.default()))


--
-- post after setup
--

-- print(vim.inspect(api.config.mappings.get_keymap()))
-- print(vim.inspect(api.map.keymap.current()))

-- api.filter.custom.toggle()
-- api.filter.dotfiles.toggle()
-- api.filter.git.clean.toggle()
-- api.filter.git.ignored.toggle()
-- api.filter.no_bookmark.toggle()
-- api.filter.no_buffer.toggle()
-- api.filter.toggle()

-- api.filter.live.start()
-- api.filter.live.clear()

-- api.fs.clear_clipboard()
-- api.fs.copy.absolute_path(node)
-- api.fs.copy.basename(node)
-- api.fs.copy.filename(node)
-- api.fs.copy.node(node)
-- api.fs.copy.relative_path(node)
-- api.fs.create(node)
-- api.fs.cut(node)
-- api.fs.paste(node)
-- api.fs.print_clipboard()
-- api.fs.remove(node)
-- api.fs.rename_basename(node)
-- api.fs.rename_full(node)
-- api.fs.rename(node)
-- api.fs.rename_node(node)
-- api.fs.rename_sub(node)
-- api.fs.trash(node)

-- api.git.reload()

-- api.live_filter.clear()
-- api.live_filter.start()

-- api.marks.bulk.delete()
-- api.marks.bulk.move()
-- api.marks.bulk.trash()
-- print(vim.inspect(api.marks.get()))
-- print(vim.inspect(api.marks.list()))
-- api.marks.clear()
-- api.marks.navigate.next()
-- api.marks.navigate.prev()
-- api.marks.navigate.select()
-- api.marks.toggle(node)

-- api.node.buffer.delete(nil, {})
-- api.node.buffer.wipe(nil, {})

-- api.node.collapse(nil, opts)
-- api.node.expand(nil, opts)

-- api.node.navigate.diagnostics.next(nil)
-- api.node.navigate.diagnostics.next_recursive(nil)
-- api.node.navigate.diagnostics.prev(nil)
-- api.node.navigate.diagnostics.prev_recursive(nil)
-- api.node.navigate.git.next(nil)
-- api.node.navigate.git.next_recursive(nil)
-- api.node.navigate.git.next_skip_gitignored(nil)
-- api.node.navigate.git.prev(nil)
-- api.node.navigate.git.prev_recursive(nil)
-- api.node.navigate.git.prev_skip_gitignored(nil)
-- api.node.navigate.opened.next(nil)
-- api.node.navigate.opened.prev(nil)
-- api.node.navigate.parent_close(nil)
-- api.node.navigate.parent(nil)
-- api.node.navigate.sibling.first(nil)
-- api.node.navigate.sibling.last(nil)
-- api.node.navigate.sibling.next(nil)
-- api.node.navigate.sibling.prev(nil)

-- api.node.open.edit(nil, {})
-- api.node.open.horizontal(nil, {})
-- api.node.open.horizontal_no_picker(nil, {})
-- api.node.open.no_window_picker(nil, {})
-- api.node.open.preview(nil, {})
-- api.node.open.preview_no_picker(nil, {})
-- api.node.open.replace_tree_buffer(nil)
-- api.node.open.tab_drop(nil)
-- api.node.open.tab(nil, {})
-- api.node.open.toggle_group_empty(nil, {})
-- api.node.open.vertical(nil, {})
-- api.node.open.vertical_no_picker(nil, {})

-- api.node.run.cmd(nil)
-- api.node.run.system(nil)

-- api.node.show_info_popup(nil)

-- api.tree.change_root(path)
-- api.tree.change_root_to_node(nil)
-- api.tree.change_root_to_parent(nil)

-- api.tree.close()
-- api.tree.close_in_all_tabs()
-- api.tree.close_in_this_tab()

-- api.tree.collapse_all(opts)
-- api.tree.expand_all(nil, {})

-- api.tree.find_file(opts)

-- api.tree.focus()

-- print(vim.inspect(api.tree.get_nodes()))

-- print(vim.inspect(api.tree.get_node_under_cursor()))

-- print(vim.inspect(api.tree.is_tree_buf(7)))

-- print(api.tree.is_visible(opts))

-- api.tree.open(opts)

-- api.tree.reload()

-- api.tree.resize({width = 40})

-- api.tree.search_node()

-- api.tree.toggle_custom_filter()
-- api.tree.toggle_enable_filters()
-- api.tree.toggle_git_clean_filter()
-- api.tree.toggle_gitignore_filter()
-- api.tree.toggle_hidden_filter()
-- api.tree.toggle_no_bookmark_filter()
-- api.tree.toggle_no_buffer_filter()

-- api.tree.toggle_help()

-- api.tree.toggle(opts)

-- print(api.tree.winid(opts))

…_decorator.lua changes, retain api opts classes but make them exact
--
-- Already required elsewhere
--
api.commands.get = commands.get
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@przepompownia : this was not available until after setup. I have changed it to before.

Is there any reason we didn't make it available before?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not find any related discussion.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @przepompownia , really appreciate the detailed AB testing.

@przepompownia
Copy link
Collaborator

empty
logs/master-empty.log:049.466  002.312  002.312: require('nvim-tree.commands')
logs/master-empty.log:050.209  003.127  000.815: sourcing .../nvimTreeMaster/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/pr3244-empty.log:047.452  002.309  002.309: require('nvim-tree.commands')
logs/pr3244-empty.log:048.274  003.200  000.891: sourcing .../pr3244/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
api
logs/master-api.log:044.474  002.207  002.207: require('nvim-tree.commands')
logs/master-api.log:044.691  002.504  000.296: sourcing .../nvimTreeMaster/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/master-api.log:054.278  000.367  000.367: require('nvim-tree.notify')
logs/master-api.log:054.310  000.811  000.444: require('nvim-tree.events')
logs/master-api.log:057.593  001.531  001.531: require('nvim-tree.utils')
logs/master-api.log:058.144  000.538  000.538: require('nvim-tree.log')
logs/master-api.log:058.252  003.934  001.865: require('nvim-tree.view')
logs/master-api.log:058.266  005.032  000.287: require('nvim-tree.core')
logs/master-api.log:060.811  000.663  000.663: require('nvim-tree.git.utils')
logs/master-api.log:061.021  000.198  000.198: require('nvim-tree.renderer.components.devicons')
logs/master-api.log:061.337  000.306  000.306: require('nvim-tree.iterators.node-iterator')
logs/master-api.log:062.153  000.368  000.368: require('nvim-tree.classic')
logs/master-api.log:062.193  000.846  000.478: require('nvim-tree.node')
logs/master-api.log:062.224  003.156  001.143: require('nvim-tree.node.directory')
logs/master-api.log:062.233  003.569  000.413: require('nvim-tree.actions.finders.find-file')
logs/master-api.log:062.703  000.464  000.464: require('nvim-tree.actions.finders.search-node')
logs/master-api.log:062.713  004.209  000.176: require('nvim-tree.actions.finders')
logs/master-api.log:063.747  000.404  000.404: require('nvim-tree.node.file')
logs/master-api.log:063.764  000.861  000.457: require('nvim-tree.actions.fs.create-file')
logs/master-api.log:065.656  000.866  000.866: require('nvim-tree.lib')
logs/master-api.log:066.247  000.157  000.157: require('nvim-tree.node.link')
logs/master-api.log:066.424  000.755  000.598: require('nvim-tree.node.directory-link')
logs/master-api.log:066.440  002.670  001.049: require('nvim-tree.actions.fs.remove-file')
logs/master-api.log:066.990  000.544  000.544: require('nvim-tree.actions.fs.rename-file')
logs/master-api.log:067.481  000.481  000.481: require('nvim-tree.actions.fs.trash')
logs/master-api.log:067.494  004.775  000.220: require('nvim-tree.actions.fs')
logs/master-api.log:068.766  000.622  000.622: require('nvim-tree.diagnostics')
logs/master-api.log:068.792  001.141  000.519: require('nvim-tree.actions.moves.item')
logs/master-api.log:069.006  000.206  000.206: require('nvim-tree.actions.moves.parent')
logs/master-api.log:069.240  000.226  000.226: require('nvim-tree.actions.moves.sibling')
logs/master-api.log:069.251  001.751  000.178: require('nvim-tree.actions.moves')
logs/master-api.log:069.761  000.327  000.327: require('nvim-tree.actions.node.file-popup')
logs/master-api.log:071.556  000.535  000.535: require('nvim-tree.renderer.components.full-name')
logs/master-api.log:071.586  001.814  001.279: require('nvim-tree.actions.node.open-file')
logs/master-api.log:071.765  000.172  000.172: require('nvim-tree.actions.node.run-command')
logs/master-api.log:072.131  000.357  000.357: require('nvim-tree.actions.node.system-open')
logs/master-api.log:072.390  000.250  000.250: require('nvim-tree.actions.node.buffer')
logs/master-api.log:072.401  003.144  000.225: require('nvim-tree.actions.node')
logs/master-api.log:072.826  000.254  000.254: require('nvim-tree.actions.tree.find-file')
logs/master-api.log:073.142  000.307  000.307: require('nvim-tree.actions.tree.collapse')
logs/master-api.log:073.365  000.213  000.213: require('nvim-tree.actions.tree.open')
logs/master-api.log:073.619  000.245  000.245: require('nvim-tree.actions.tree.toggle')
logs/master-api.log:073.815  000.188  000.188: require('nvim-tree.actions.tree.resize')
logs/master-api.log:073.826  001.420  000.214: require('nvim-tree.actions.tree')
logs/master-api.log:073.832  015.560  000.260: require('nvim-tree.actions')
logs/master-api.log:074.987  000.626  000.626: require('nvim-tree.appearance')
logs/master-api.log:075.019  001.149  000.522: require('nvim-tree.appearance.hi-test')
logs/master-api.log:076.383  000.604  000.604: require('nvim-tree.keymap')
logs/master-api.log:076.409  001.384  000.780: require('nvim-tree.help')
logs/master-api.log:076.720  000.302  000.302: require('nvim-tree.node.file-link')
logs/master-api.log:076.898  000.169  000.169: require('nvim-tree.node.root')
logs/master-api.log:077.342  000.324  000.324: require('nvim-tree.renderer.decorator')
logs/master-api.log:077.465  000.558  000.234: require('nvim-tree.renderer.decorator.user')
logs/master-api.log:077.637  025.544  001.390: require('nvim-tree.api')
logs/pr3244-api.log:047.928  002.257  002.257: require('nvim-tree.commands')
logs/pr3244-api.log:048.148  002.549  000.292: sourcing .../pr3244/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/pr3244-api.log:055.468  000.210  000.210: require('nvim-tree._meta.api.deprecated')
logs/pr3244-api.log:055.621  000.141  000.141: require('nvim-tree._meta.api.commands')
logs/pr3244-api.log:055.761  000.131  000.131: require('nvim-tree._meta.api.events')
logs/pr3244-api.log:055.956  000.185  000.185: require('nvim-tree._meta.api.filter')
logs/pr3244-api.log:056.206  000.242  000.242: require('nvim-tree._meta.api.fs')
logs/pr3244-api.log:056.336  000.121  000.121: require('nvim-tree._meta.api.git')
logs/pr3244-api.log:056.454  000.109  000.109: require('nvim-tree._meta.api.health')
logs/pr3244-api.log:056.603  000.140  000.140: require('nvim-tree._meta.api.map')
logs/pr3244-api.log:056.855  000.243  000.243: require('nvim-tree._meta.api.marks')
logs/pr3244-api.log:057.429  000.561  000.561: require('nvim-tree._meta.api.node')
logs/pr3244-api.log:057.779  000.337  000.337: require('nvim-tree._meta.api.tree')
logs/pr3244-api.log:058.891  000.486  000.486: require('nvim-tree.notify')
logs/pr3244-api.log:058.926  000.884  000.397: require('nvim-tree.events')
logs/pr3244-api.log:059.834  000.902  000.902: require('nvim-tree.keymap')
logs/pr3244-api.log:060.603  000.260  000.260: require('nvim-tree.classic')
logs/pr3244-api.log:060.627  000.618  000.358: require('nvim-tree.renderer.decorator')
logs/pr3244-api.log:060.640  000.791  000.173: require('nvim-tree.renderer.decorator.user')
logs/pr3244-api.log:060.655  002.866  000.290: require('nvim-tree.api.impl.pre')
logs/pr3244-api.log:061.105  000.214  000.214: require('nvim-tree.api.impl.legacy')
logs/pr3244-api.log:061.120  006.114  000.614: require('nvim-tree.api')
api + setup
logs/master-api-setup.log:050.401  002.510  002.510: require('nvim-tree.commands')
logs/master-api-setup.log:050.918  003.095  000.585: sourcing .../nvimTreeMaster/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/master-api-setup.log:059.834  000.318  000.318: require('nvim-tree.notify')
logs/master-api-setup.log:059.858  000.675  000.357: require('nvim-tree.events')
logs/master-api-setup.log:063.472  001.673  001.673: require('nvim-tree.utils')
logs/master-api-setup.log:064.051  000.565  000.565: require('nvim-tree.log')
logs/master-api-setup.log:064.171  004.306  002.068: require('nvim-tree.view')
logs/master-api-setup.log:064.184  005.237  000.256: require('nvim-tree.core')
logs/master-api-setup.log:066.813  000.652  000.652: require('nvim-tree.git.utils')
logs/master-api-setup.log:067.013  000.188  000.188: require('nvim-tree.renderer.components.devicons')
logs/master-api-setup.log:067.327  000.303  000.303: require('nvim-tree.iterators.node-iterator')
logs/master-api-setup.log:068.026  000.285  000.285: require('nvim-tree.classic')
logs/master-api-setup.log:068.065  000.728  000.443: require('nvim-tree.node')
logs/master-api-setup.log:068.100  003.012  001.141: require('nvim-tree.node.directory')
logs/master-api-setup.log:068.108  003.554  000.542: require('nvim-tree.actions.finders.find-file')
logs/master-api-setup.log:068.556  000.442  000.442: require('nvim-tree.actions.finders.search-node')
logs/master-api-setup.log:068.565  004.170  000.175: require('nvim-tree.actions.finders')
logs/master-api-setup.log:069.592  000.390  000.390: require('nvim-tree.node.file')
logs/master-api-setup.log:069.607  000.847  000.457: require('nvim-tree.actions.fs.create-file')
logs/master-api-setup.log:071.356  000.801  000.801: require('nvim-tree.lib')
logs/master-api-setup.log:071.828  000.123  000.123: require('nvim-tree.node.link')
logs/master-api-setup.log:072.127  000.759  000.636: require('nvim-tree.node.directory-link')
logs/master-api-setup.log:072.144  002.532  000.972: require('nvim-tree.actions.fs.remove-file')
logs/master-api-setup.log:072.756  000.606  000.606: require('nvim-tree.actions.fs.rename-file')
logs/master-api-setup.log:073.307  000.538  000.538: require('nvim-tree.actions.fs.trash')
logs/master-api-setup.log:073.329  004.758  000.236: require('nvim-tree.actions.fs')
logs/master-api-setup.log:074.584  000.608  000.608: require('nvim-tree.diagnostics')
logs/master-api-setup.log:074.601  001.126  000.518: require('nvim-tree.actions.moves.item')
logs/master-api-setup.log:074.816  000.209  000.209: require('nvim-tree.actions.moves.parent')
logs/master-api-setup.log:075.036  000.210  000.210: require('nvim-tree.actions.moves.sibling')
logs/master-api-setup.log:075.045  001.708  000.163: require('nvim-tree.actions.moves')
logs/master-api-setup.log:075.579  000.381  000.381: require('nvim-tree.actions.node.file-popup')
logs/master-api-setup.log:077.329  000.509  000.509: require('nvim-tree.renderer.components.full-name')
logs/master-api-setup.log:077.349  001.758  001.249: require('nvim-tree.actions.node.open-file')
logs/master-api-setup.log:077.521  000.166  000.166: require('nvim-tree.actions.node.run-command')
logs/master-api-setup.log:077.867  000.337  000.337: require('nvim-tree.actions.node.system-open')
logs/master-api-setup.log:078.087  000.212  000.212: require('nvim-tree.actions.node.buffer')
logs/master-api-setup.log:078.097  003.047  000.193: require('nvim-tree.actions.node')
logs/master-api-setup.log:078.490  000.235  000.235: require('nvim-tree.actions.tree.find-file')
logs/master-api-setup.log:078.784  000.284  000.284: require('nvim-tree.actions.tree.collapse')
logs/master-api-setup.log:078.991  000.198  000.198: require('nvim-tree.actions.tree.open')
logs/master-api-setup.log:079.228  000.228  000.228: require('nvim-tree.actions.tree.toggle')
logs/master-api-setup.log:079.411  000.175  000.175: require('nvim-tree.actions.tree.resize')
logs/master-api-setup.log:079.421  001.318  000.197: require('nvim-tree.actions.tree')
logs/master-api-setup.log:079.427  015.237  000.234: require('nvim-tree.actions')
logs/master-api-setup.log:080.506  000.604  000.604: require('nvim-tree.appearance')
logs/master-api-setup.log:080.537  001.103  000.499: require('nvim-tree.appearance.hi-test')
logs/master-api-setup.log:081.910  000.599  000.599: require('nvim-tree.keymap')
logs/master-api-setup.log:081.934  001.390  000.791: require('nvim-tree.help')
logs/master-api-setup.log:082.226  000.285  000.285: require('nvim-tree.node.file-link')
logs/master-api-setup.log:082.525  000.288  000.288: require('nvim-tree.node.root')
logs/master-api-setup.log:082.946  000.292  000.292: require('nvim-tree.renderer.decorator')
logs/master-api-setup.log:082.964  000.428  000.136: require('nvim-tree.renderer.decorator.user')
logs/master-api-setup.log:083.132  025.270  001.301: require('nvim-tree.api')
logs/master-api-setup.log:093.434  010.210  002.273: require('nvim-tree')
logs/master-api-setup.log:094.070  000.571  000.571: require('nvim-tree.legacy')
logs/master-api-setup.log:098.509  000.288  000.288: require('nvim-tree.buffers')
logs/master-api-setup.log:100.414  000.797  000.797: require('nvim-tree.git.runner')
logs/master-api-setup.log:101.502  001.076  001.076: require('nvim-tree.watcher')
logs/master-api-setup.log:101.564  003.042  001.169: require('nvim-tree.git')
logs/master-api-setup.log:101.877  000.305  000.305: require('nvim-tree.node.factory')
logs/master-api-setup.log:103.045  000.135  000.135: require('nvim-tree.enum')
logs/master-api-setup.log:103.091  001.202  001.067: require('nvim-tree.explorer.filters')
logs/master-api-setup.log:104.451  001.354  001.354: require('nvim-tree.marks')
logs/master-api-setup.log:105.185  000.723  000.723: require('nvim-tree.explorer.live-filter')
logs/master-api-setup.log:105.965  000.768  000.768: require('nvim-tree.explorer.sorter')
logs/master-api-setup.log:107.109  001.132  001.132: require('nvim-tree.actions.fs.clipboard')
logs/master-api-setup.log:108.981  000.282  000.282: require('nvim-tree.renderer.decorator.bookmarks')
logs/master-api-setup.log:109.206  000.213  000.213: require('nvim-tree.renderer.decorator.copied')
logs/master-api-setup.log:109.465  000.249  000.249: require('nvim-tree.renderer.decorator.cut')
logs/master-api-setup.log:109.843  000.367  000.367: require('nvim-tree.renderer.decorator.diagnostics')
logs/master-api-setup.log:110.413  000.560  000.560: require('nvim-tree.renderer.decorator.git')
logs/master-api-setup.log:110.635  000.212  000.212: require('nvim-tree.renderer.decorator.hidden')
logs/master-api-setup.log:110.962  000.319  000.319: require('nvim-tree.renderer.decorator.modified')
logs/master-api-setup.log:111.148  000.175  000.175: require('nvim-tree.renderer.decorator.opened')
logs/master-api-setup.log:111.632  000.475  000.475: require('nvim-tree.renderer.components.padding')
logs/master-api-setup.log:111.660  004.073  001.222: require('nvim-tree.renderer.builder')
logs/master-api-setup.log:111.679  004.558  000.485: require('nvim-tree.renderer')
logs/master-api-setup.log:111.816  016.090  002.716: require('nvim-tree.explorer')
logs/master-api-setup.log:112.250  000.424  000.424: require('nvim-tree.explorer.watch')
logs/master-api-setup.log:112.451  000.172  000.172: require('nvim-tree.renderer.components')
logs/pr3244-api-setup.log:049.945  002.361  002.361: require('nvim-tree.commands')
logs/pr3244-api-setup.log:050.159  002.642  000.281: sourcing .../pr3244/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/pr3244-api-setup.log:057.558  000.173  000.173: require('nvim-tree._meta.api.deprecated')
logs/pr3244-api-setup.log:057.694  000.126  000.126: require('nvim-tree._meta.api.commands')
logs/pr3244-api-setup.log:057.816  000.115  000.115: require('nvim-tree._meta.api.events')
logs/pr3244-api-setup.log:058.013  000.189  000.189: require('nvim-tree._meta.api.filter')
logs/pr3244-api-setup.log:058.224  000.203  000.203: require('nvim-tree._meta.api.fs')
logs/pr3244-api-setup.log:058.338  000.106  000.106: require('nvim-tree._meta.api.git')
logs/pr3244-api-setup.log:058.477  000.131  000.131: require('nvim-tree._meta.api.health')
logs/pr3244-api-setup.log:058.609  000.124  000.124: require('nvim-tree._meta.api.map')
logs/pr3244-api-setup.log:058.782  000.164  000.164: require('nvim-tree._meta.api.marks')
logs/pr3244-api-setup.log:059.180  000.390  000.390: require('nvim-tree._meta.api.node')
logs/pr3244-api-setup.log:059.501  000.312  000.312: require('nvim-tree._meta.api.tree')
logs/pr3244-api-setup.log:060.480  000.338  000.338: require('nvim-tree.notify')
logs/pr3244-api-setup.log:060.510  000.762  000.424: require('nvim-tree.events')
logs/pr3244-api-setup.log:061.139  000.623  000.623: require('nvim-tree.keymap')
logs/pr3244-api-setup.log:061.791  000.247  000.247: require('nvim-tree.classic')
logs/pr3244-api-setup.log:061.826  000.571  000.324: require('nvim-tree.renderer.decorator')
logs/pr3244-api-setup.log:061.840  000.691  000.120: require('nvim-tree.renderer.decorator.user')
logs/pr3244-api-setup.log:061.857  002.347  000.272: require('nvim-tree.api.impl.pre')
logs/pr3244-api-setup.log:062.272  000.217  000.217: require('nvim-tree.api.impl.legacy')
logs/pr3244-api-setup.log:062.286  005.141  000.544: require('nvim-tree.api')
logs/pr3244-api-setup.log:065.350  000.556  000.556: require('nvim-tree.log')
logs/pr3244-api-setup.log:069.845  002.260  002.260: require('nvim-tree.utils')
logs/pr3244-api-setup.log:069.953  004.588  002.328: require('nvim-tree.view')
logs/pr3244-api-setup.log:070.873  000.232  000.232: require('nvim-tree.core')
logs/pr3244-api-setup.log:072.346  000.566  000.566: require('nvim-tree.git.utils')
logs/pr3244-api-setup.log:072.538  000.180  000.180: require('nvim-tree.renderer.components.devicons')
logs/pr3244-api-setup.log:072.801  000.253  000.253: require('nvim-tree.iterators.node-iterator')
logs/pr3244-api-setup.log:073.197  000.387  000.387: require('nvim-tree.node')
logs/pr3244-api-setup.log:073.230  002.346  000.960: require('nvim-tree.node.directory')
logs/pr3244-api-setup.log:073.239  002.926  000.348: require('nvim-tree.actions.finders.find-file')
logs/pr3244-api-setup.log:073.628  000.383  000.383: require('nvim-tree.actions.finders.search-node')
logs/pr3244-api-setup.log:073.637  003.461  000.151: require('nvim-tree.actions.finders')
logs/pr3244-api-setup.log:074.758  000.499  000.499: require('nvim-tree.node.file')
logs/pr3244-api-setup.log:074.775  000.962  000.463: require('nvim-tree.actions.fs.create-file')
logs/pr3244-api-setup.log:075.764  000.446  000.446: require('nvim-tree.lib')
logs/pr3244-api-setup.log:076.220  000.131  000.131: require('nvim-tree.node.link')
logs/pr3244-api-setup.log:076.250  000.476  000.346: require('nvim-tree.node.directory-link')
logs/pr3244-api-setup.log:076.263  001.482  000.560: require('nvim-tree.actions.fs.remove-file')
logs/pr3244-api-setup.log:076.778  000.510  000.510: require('nvim-tree.actions.fs.rename-file')
logs/pr3244-api-setup.log:077.255  000.466  000.466: require('nvim-tree.actions.fs.trash')
logs/pr3244-api-setup.log:077.266  003.623  000.203: require('nvim-tree.actions.fs')
logs/pr3244-api-setup.log:078.504  000.601  000.601: require('nvim-tree.diagnostics')
logs/pr3244-api-setup.log:078.520  001.107  000.506: require('nvim-tree.actions.moves.item')
logs/pr3244-api-setup.log:078.725  000.198  000.198: require('nvim-tree.actions.moves.parent')
logs/pr3244-api-setup.log:078.955  000.221  000.221: require('nvim-tree.actions.moves.sibling')
logs/pr3244-api-setup.log:078.964  001.693  000.167: require('nvim-tree.actions.moves')
logs/pr3244-api-setup.log:079.449  000.319  000.319: require('nvim-tree.actions.node.file-popup')
logs/pr3244-api-setup.log:081.122  000.475  000.475: require('nvim-tree.renderer.components.full-name')
logs/pr3244-api-setup.log:081.143  001.683  001.208: require('nvim-tree.actions.node.open-file')
logs/pr3244-api-setup.log:081.310  000.162  000.162: require('nvim-tree.actions.node.run-command')
logs/pr3244-api-setup.log:081.674  000.355  000.355: require('nvim-tree.actions.node.system-open')
logs/pr3244-api-setup.log:081.926  000.243  000.243: require('nvim-tree.actions.node.buffer')
logs/pr3244-api-setup.log:082.004  003.033  000.271: require('nvim-tree.actions.node')
logs/pr3244-api-setup.log:082.488  000.264  000.264: require('nvim-tree.actions.tree.find-file')
logs/pr3244-api-setup.log:082.800  000.302  000.302: require('nvim-tree.actions.tree.collapse')
logs/pr3244-api-setup.log:083.025  000.216  000.216: require('nvim-tree.actions.tree.open')
logs/pr3244-api-setup.log:083.274  000.240  000.240: require('nvim-tree.actions.tree.toggle')
logs/pr3244-api-setup.log:083.467  000.184  000.184: require('nvim-tree.actions.tree.resize')
logs/pr3244-api-setup.log:083.477  001.466  000.260: require('nvim-tree.actions.tree')
logs/pr3244-api-setup.log:083.484  013.523  000.247: require('nvim-tree.actions')
logs/pr3244-api-setup.log:090.601  028.309  002.687: require('nvim-tree')
logs/pr3244-api-setup.log:091.674  001.025  001.025: require('nvim-tree.legacy')
logs/pr3244-api-setup.log:092.872  000.823  000.823: require('nvim-tree.appearance')
logs/pr3244-api-setup.log:097.308  000.282  000.282: require('nvim-tree.buffers')
logs/pr3244-api-setup.log:099.209  000.790  000.790: require('nvim-tree.git.runner')
logs/pr3244-api-setup.log:100.338  001.117  001.117: require('nvim-tree.watcher')
logs/pr3244-api-setup.log:100.399  003.078  001.171: require('nvim-tree.git')
logs/pr3244-api-setup.log:101.131  000.390  000.390: require('nvim-tree.node.file-link')
logs/pr3244-api-setup.log:101.145  000.738  000.348: require('nvim-tree.node.factory')
logs/pr3244-api-setup.log:101.387  000.235  000.235: require('nvim-tree.node.root')
logs/pr3244-api-setup.log:102.683  000.134  000.134: require('nvim-tree.enum')
logs/pr3244-api-setup.log:102.742  001.345  001.211: require('nvim-tree.explorer.filters')
logs/pr3244-api-setup.log:103.916  001.167  001.167: require('nvim-tree.marks')
logs/pr3244-api-setup.log:104.613  000.686  000.686: require('nvim-tree.explorer.live-filter')
logs/pr3244-api-setup.log:105.331  000.707  000.707: require('nvim-tree.explorer.sorter')
logs/pr3244-api-setup.log:106.361  001.018  001.018: require('nvim-tree.actions.fs.clipboard')
logs/pr3244-api-setup.log:108.619  000.332  000.332: require('nvim-tree.renderer.decorator.bookmarks')
logs/pr3244-api-setup.log:108.854  000.222  000.222: require('nvim-tree.renderer.decorator.copied')
logs/pr3244-api-setup.log:109.061  000.197  000.197: require('nvim-tree.renderer.decorator.cut')
logs/pr3244-api-setup.log:109.492  000.421  000.421: require('nvim-tree.renderer.decorator.diagnostics')
logs/pr3244-api-setup.log:110.284  000.781  000.781: require('nvim-tree.renderer.decorator.git')
logs/pr3244-api-setup.log:110.645  000.348  000.348: require('nvim-tree.renderer.decorator.hidden')
logs/pr3244-api-setup.log:110.907  000.251  000.251: require('nvim-tree.renderer.decorator.modified')
logs/pr3244-api-setup.log:111.077  000.161  000.161: require('nvim-tree.renderer.decorator.opened')
logs/pr3244-api-setup.log:111.575  000.488  000.488: require('nvim-tree.renderer.components.padding')
logs/pr3244-api-setup.log:111.710  004.708  001.509: require('nvim-tree.renderer.builder')
logs/pr3244-api-setup.log:111.732  005.361  000.652: require('nvim-tree.renderer')
logs/pr3244-api-setup.log:111.776  017.538  002.920: require('nvim-tree.explorer')
logs/pr3244-api-setup.log:112.261  000.477  000.477: require('nvim-tree.explorer.watch')
logs/pr3244-api-setup.log:112.467  000.175  000.175: require('nvim-tree.renderer.components')
logs/pr3244-api-setup.log:113.438  000.694  000.694: require('nvim-tree.help')
logs/pr3244-api-setup.log:114.106  000.569  000.569: require('nvim-tree.api.impl.post')
only setup
logs/master-setup.log:050.724  002.286  002.286: require('nvim-tree.commands')
logs/master-setup.log:051.522  003.203  000.917: sourcing .../nvimTreeMaster/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/master-setup.log:061.044  000.405  000.405: require('nvim-tree.log')
logs/master-setup.log:063.576  000.381  000.381: require('nvim-tree.notify')
logs/master-setup.log:063.621  000.848  000.466: require('nvim-tree.events')
logs/master-setup.log:065.194  001.567  001.567: require('nvim-tree.utils')
logs/master-setup.log:065.285  004.230  001.815: require('nvim-tree.view')
logs/master-setup.log:066.257  000.264  000.264: require('nvim-tree.core')
logs/master-setup.log:067.969  000.629  000.629: require('nvim-tree.git.utils')
logs/master-setup.log:068.155  000.175  000.175: require('nvim-tree.renderer.components.devicons')
logs/master-setup.log:068.559  000.394  000.394: require('nvim-tree.iterators.node-iterator')
logs/master-setup.log:069.373  000.362  000.362: require('nvim-tree.classic')
logs/master-setup.log:069.430  000.858  000.496: require('nvim-tree.node')
logs/master-setup.log:069.518  003.249  001.193: require('nvim-tree.node.directory')
logs/master-setup.log:069.527  003.927  000.413: require('nvim-tree.actions.finders.find-file')
logs/master-setup.log:070.218  000.685  000.685: require('nvim-tree.actions.finders.search-node')
logs/master-setup.log:070.227  004.745  000.133: require('nvim-tree.actions.finders')
logs/master-setup.log:071.616  000.538  000.538: require('nvim-tree.node.file')
logs/master-setup.log:071.633  001.200  000.661: require('nvim-tree.actions.fs.create-file')
logs/master-setup.log:072.642  000.479  000.479: require('nvim-tree.lib')
logs/master-setup.log:073.056  000.122  000.122: require('nvim-tree.node.link')
logs/master-setup.log:073.087  000.432  000.310: require('nvim-tree.node.directory-link')
logs/master-setup.log:073.101  001.462  000.551: require('nvim-tree.actions.fs.remove-file')
logs/master-setup.log:073.615  000.508  000.508: require('nvim-tree.actions.fs.rename-file')
logs/master-setup.log:074.078  000.454  000.454: require('nvim-tree.actions.fs.trash')
logs/master-setup.log:074.090  003.857  000.233: require('nvim-tree.actions.fs')
logs/master-setup.log:075.288  000.594  000.594: require('nvim-tree.diagnostics')
logs/master-setup.log:075.304  001.085  000.491: require('nvim-tree.actions.moves.item')
logs/master-setup.log:075.674  000.364  000.364: require('nvim-tree.actions.moves.parent')
logs/master-setup.log:076.231  000.538  000.538: require('nvim-tree.actions.moves.sibling')
logs/master-setup.log:076.252  002.157  000.170: require('nvim-tree.actions.moves')
logs/master-setup.log:076.929  000.428  000.428: require('nvim-tree.actions.node.file-popup')
logs/master-setup.log:078.788  000.531  000.531: require('nvim-tree.renderer.components.full-name')
logs/master-setup.log:078.819  001.869  001.339: require('nvim-tree.actions.node.open-file')
logs/master-setup.log:079.042  000.212  000.212: require('nvim-tree.actions.node.run-command')
logs/master-setup.log:079.394  000.340  000.340: require('nvim-tree.actions.node.system-open')
logs/master-setup.log:079.624  000.222  000.222: require('nvim-tree.actions.node.buffer')
logs/master-setup.log:079.643  003.377  000.305: require('nvim-tree.actions.node')
logs/master-setup.log:080.098  000.245  000.245: require('nvim-tree.actions.tree.find-file')
logs/master-setup.log:080.467  000.357  000.357: require('nvim-tree.actions.tree.collapse')
logs/master-setup.log:080.698  000.220  000.220: require('nvim-tree.actions.tree.open')
logs/master-setup.log:080.926  000.219  000.219: require('nvim-tree.actions.tree.toggle')
logs/master-setup.log:081.101  000.168  000.168: require('nvim-tree.actions.tree.resize')
logs/master-setup.log:081.111  001.457  000.248: require('nvim-tree.actions.tree')
logs/master-setup.log:081.118  015.824  000.232: require('nvim-tree.actions')
logs/master-setup.log:087.538  028.956  002.186: require('nvim-tree')
logs/master-setup.log:088.046  000.450  000.450: require('nvim-tree.legacy')
logs/master-setup.log:089.452  000.832  000.832: require('nvim-tree.keymap')
logs/master-setup.log:090.152  000.683  000.683: require('nvim-tree.appearance')
logs/master-setup.log:094.688  000.268  000.268: require('nvim-tree.buffers')
logs/master-setup.log:096.695  000.819  000.819: require('nvim-tree.git.runner')
logs/master-setup.log:097.663  000.955  000.955: require('nvim-tree.watcher')
logs/master-setup.log:097.709  002.929  001.155: require('nvim-tree.git')
logs/master-setup.log:098.273  000.303  000.303: require('nvim-tree.node.file-link')
logs/master-setup.log:098.287  000.570  000.268: require('nvim-tree.node.factory')
logs/master-setup.log:098.513  000.219  000.219: require('nvim-tree.node.root')
logs/master-setup.log:099.385  000.132  000.132: require('nvim-tree.enum')
logs/master-setup.log:099.415  000.890  000.758: require('nvim-tree.explorer.filters')
logs/master-setup.log:100.512  001.091  001.091: require('nvim-tree.marks')
logs/master-setup.log:101.465  000.941  000.941: require('nvim-tree.explorer.live-filter')
logs/master-setup.log:102.446  000.967  000.967: require('nvim-tree.explorer.sorter')
logs/master-setup.log:104.072  001.614  001.614: require('nvim-tree.actions.fs.clipboard')
logs/master-setup.log:106.667  000.284  000.284: require('nvim-tree.renderer.decorator')
logs/master-setup.log:106.691  000.507  000.223: require('nvim-tree.renderer.decorator.bookmarks')
logs/master-setup.log:106.908  000.211  000.211: require('nvim-tree.renderer.decorator.copied')
logs/master-setup.log:107.107  000.189  000.189: require('nvim-tree.renderer.decorator.cut')
logs/master-setup.log:107.515  000.399  000.399: require('nvim-tree.renderer.decorator.diagnostics')
logs/master-setup.log:108.128  000.603  000.603: require('nvim-tree.renderer.decorator.git')
logs/master-setup.log:108.457  000.318  000.318: require('nvim-tree.renderer.decorator.hidden')
logs/master-setup.log:108.683  000.215  000.215: require('nvim-tree.renderer.decorator.modified')
logs/master-setup.log:108.933  000.242  000.242: require('nvim-tree.renderer.decorator.opened')
logs/master-setup.log:109.165  000.222  000.222: require('nvim-tree.renderer.decorator.user')
logs/master-setup.log:109.665  000.490  000.490: require('nvim-tree.renderer.components.padding')
logs/master-setup.log:109.692  004.747  001.349: require('nvim-tree.renderer.builder')
logs/master-setup.log:109.709  005.625  000.878: require('nvim-tree.renderer')
logs/master-setup.log:109.754  017.700  002.585: require('nvim-tree.explorer')
logs/master-setup.log:110.154  000.392  000.392: require('nvim-tree.explorer.watch')
logs/master-setup.log:110.322  000.139  000.139: require('nvim-tree.renderer.components')
logs/master-setup.log:111.313  000.736  000.736: require('nvim-tree.help')
logs/master-setup.log:112.820  000.570  000.570: require('nvim-tree.appearance.hi-test')
logs/master-setup.log:112.980  001.655  001.085: require('nvim-tree.api')
logs/pr3244-setup.log:047.656  002.317  002.317: require('nvim-tree.commands')
logs/pr3244-setup.log:047.949  002.680  000.363: sourcing .../pr3244/pack/plugins/opt/nvim-tree/plugin/nvim-tree.lua
logs/pr3244-setup.log:057.811  000.171  000.171: require('nvim-tree._meta.api.deprecated')
logs/pr3244-setup.log:057.952  000.127  000.127: require('nvim-tree._meta.api.commands')
logs/pr3244-setup.log:058.068  000.106  000.106: require('nvim-tree._meta.api.events')
logs/pr3244-setup.log:058.340  000.263  000.263: require('nvim-tree._meta.api.filter')
logs/pr3244-setup.log:058.609  000.257  000.257: require('nvim-tree._meta.api.fs')
logs/pr3244-setup.log:058.732  000.114  000.114: require('nvim-tree._meta.api.git')
logs/pr3244-setup.log:058.867  000.127  000.127: require('nvim-tree._meta.api.health')
logs/pr3244-setup.log:059.014  000.139  000.139: require('nvim-tree._meta.api.map')
logs/pr3244-setup.log:059.224  000.202  000.202: require('nvim-tree._meta.api.marks')
logs/pr3244-setup.log:059.726  000.493  000.493: require('nvim-tree._meta.api.node')
logs/pr3244-setup.log:060.085  000.349  000.349: require('nvim-tree._meta.api.tree')
logs/pr3244-setup.log:061.161  000.414  000.414: require('nvim-tree.notify')
logs/pr3244-setup.log:061.192  000.840  000.426: require('nvim-tree.events')
logs/pr3244-setup.log:061.922  000.724  000.724: require('nvim-tree.keymap')
logs/pr3244-setup.log:062.741  000.306  000.306: require('nvim-tree.classic')
logs/pr3244-setup.log:062.769  000.713  000.407: require('nvim-tree.renderer.decorator')
logs/pr3244-setup.log:062.783  000.850  000.136: require('nvim-tree.renderer.decorator.user')
logs/pr3244-setup.log:062.790  002.696  000.282: require('nvim-tree.api.impl.pre')
logs/pr3244-setup.log:063.187  000.211  000.211: require('nvim-tree.api.impl.legacy')
logs/pr3244-setup.log:063.203  005.768  000.513: require('nvim-tree.api')
logs/pr3244-setup.log:063.655  000.447  000.447: require('nvim-tree.log')
logs/pr3244-setup.log:067.592  001.284  001.284: require('nvim-tree.utils')
logs/pr3244-setup.log:067.650  003.986  002.702: require('nvim-tree.view')
logs/pr3244-setup.log:068.477  000.222  000.222: require('nvim-tree.core')
logs/pr3244-setup.log:069.913  000.541  000.541: require('nvim-tree.git.utils')
logs/pr3244-setup.log:070.093  000.169  000.169: require('nvim-tree.renderer.components.devicons')
logs/pr3244-setup.log:070.418  000.314  000.314: require('nvim-tree.iterators.node-iterator')
logs/pr3244-setup.log:070.829  000.400  000.400: require('nvim-tree.node')
logs/pr3244-setup.log:070.886  002.399  000.974: require('nvim-tree.node.directory')
logs/pr3244-setup.log:070.907  002.969  000.348: require('nvim-tree.actions.finders.find-file')
logs/pr3244-setup.log:071.455  000.542  000.542: require('nvim-tree.actions.finders.search-node')
logs/pr3244-setup.log:071.470  003.643  000.132: require('nvim-tree.actions.finders')
logs/pr3244-setup.log:072.622  000.483  000.483: require('nvim-tree.node.file')
logs/pr3244-setup.log:072.640  000.917  000.434: require('nvim-tree.actions.fs.create-file')
logs/pr3244-setup.log:073.640  000.457  000.457: require('nvim-tree.lib')
logs/pr3244-setup.log:074.252  000.229  000.229: require('nvim-tree.node.link')
logs/pr3244-setup.log:074.287  000.637  000.408: require('nvim-tree.node.directory-link')
logs/pr3244-setup.log:074.302  001.656  000.562: require('nvim-tree.actions.fs.remove-file')
logs/pr3244-setup.log:074.928  000.621  000.621: require('nvim-tree.actions.fs.rename-file')
logs/pr3244-setup.log:075.635  000.693  000.693: require('nvim-tree.actions.fs.trash')
logs/pr3244-setup.log:075.653  004.173  000.286: require('nvim-tree.actions.fs')
logs/pr3244-setup.log:077.002  000.623  000.623: require('nvim-tree.diagnostics')
logs/pr3244-setup.log:077.019  001.159  000.535: require('nvim-tree.actions.moves.item')
logs/pr3244-setup.log:077.224  000.199  000.199: require('nvim-tree.actions.moves.parent')
logs/pr3244-setup.log:077.474  000.241  000.241: require('nvim-tree.actions.moves.sibling')
logs/pr3244-setup.log:077.488  001.826  000.227: require('nvim-tree.actions.moves')
logs/pr3244-setup.log:078.260  000.551  000.551: require('nvim-tree.actions.node.file-popup')
logs/pr3244-setup.log:080.098  000.541  000.541: require('nvim-tree.renderer.components.full-name')
logs/pr3244-setup.log:080.119  001.846  001.305: require('nvim-tree.actions.node.open-file')
logs/pr3244-setup.log:080.301  000.176  000.176: require('nvim-tree.actions.node.run-command')
logs/pr3244-setup.log:080.665  000.354  000.354: require('nvim-tree.actions.node.system-open')
logs/pr3244-setup.log:080.921  000.246  000.246: require('nvim-tree.actions.node.buffer')
logs/pr3244-setup.log:081.015  003.518  000.345: require('nvim-tree.actions.node')
logs/pr3244-setup.log:081.459  000.269  000.269: require('nvim-tree.actions.tree.find-file')
logs/pr3244-setup.log:081.770  000.301  000.301: require('nvim-tree.actions.tree.collapse')
logs/pr3244-setup.log:082.001  000.221  000.221: require('nvim-tree.actions.tree.open')
logs/pr3244-setup.log:082.316  000.305  000.305: require('nvim-tree.actions.tree.toggle')
logs/pr3244-setup.log:082.512  000.185  000.185: require('nvim-tree.actions.tree.resize')
logs/pr3244-setup.log:082.523  001.501  000.221: require('nvim-tree.actions.tree')
logs/pr3244-setup.log:082.530  014.873  000.213: require('nvim-tree.actions')
logs/pr3244-setup.log:090.522  035.217  002.338: require('nvim-tree')
logs/pr3244-setup.log:091.102  000.529  000.529: require('nvim-tree.legacy')
logs/pr3244-setup.log:092.883  000.830  000.830: require('nvim-tree.appearance')
logs/pr3244-setup.log:097.899  000.253  000.253: require('nvim-tree.buffers')
logs/pr3244-setup.log:099.506  000.669  000.669: require('nvim-tree.git.runner')
logs/pr3244-setup.log:100.138  000.619  000.619: require('nvim-tree.watcher')
logs/pr3244-setup.log:100.164  002.251  000.964: require('nvim-tree.git')
logs/pr3244-setup.log:100.829  000.454  000.454: require('nvim-tree.node.file-link')
logs/pr3244-setup.log:100.857  000.685  000.231: require('nvim-tree.node.factory')
logs/pr3244-setup.log:101.104  000.237  000.237: require('nvim-tree.node.root')
logs/pr3244-setup.log:101.930  000.135  000.135: require('nvim-tree.enum')
logs/pr3244-setup.log:101.960  000.841  000.707: require('nvim-tree.explorer.filters')
logs/pr3244-setup.log:103.099  001.133  001.133: require('nvim-tree.marks')
logs/pr3244-setup.log:103.864  000.752  000.752: require('nvim-tree.explorer.live-filter')
logs/pr3244-setup.log:104.658  000.781  000.781: require('nvim-tree.explorer.sorter')
logs/pr3244-setup.log:105.725  001.055  001.055: require('nvim-tree.actions.fs.clipboard')
logs/pr3244-setup.log:107.546  000.221  000.221: require('nvim-tree.renderer.decorator.bookmarks')
logs/pr3244-setup.log:107.715  000.156  000.156: require('nvim-tree.renderer.decorator.copied')
logs/pr3244-setup.log:107.870  000.145  000.145: require('nvim-tree.renderer.decorator.cut')
logs/pr3244-setup.log:108.349  000.471  000.471: require('nvim-tree.renderer.decorator.diagnostics')
logs/pr3244-setup.log:108.946  000.585  000.585: require('nvim-tree.renderer.decorator.git')
logs/pr3244-setup.log:109.165  000.208  000.208: require('nvim-tree.renderer.decorator.hidden')
logs/pr3244-setup.log:109.479  000.305  000.305: require('nvim-tree.renderer.decorator.modified')
logs/pr3244-setup.log:109.661  000.171  000.171: require('nvim-tree.renderer.decorator.opened')
logs/pr3244-setup.log:110.133  000.462  000.462: require('nvim-tree.renderer.components.padding')
logs/pr3244-setup.log:110.365  004.126  001.402: require('nvim-tree.renderer.builder')
logs/pr3244-setup.log:110.388  004.650  000.524: require('nvim-tree.renderer')
logs/pr3244-setup.log:110.431  016.071  003.433: require('nvim-tree.explorer')
logs/pr3244-setup.log:110.855  000.417  000.417: require('nvim-tree.explorer.watch')
logs/pr3244-setup.log:111.032  000.148  000.148: require('nvim-tree.renderer.components')
logs/pr3244-setup.log:112.020  000.736  000.736: require('nvim-tree.help')
logs/pr3244-setup.log:113.025  000.866  000.866: require('nvim-tree.api.impl.post')
init.lua (appname: master or pr3244, require calls possibly uncommented)
local thisInitFile = debug.getinfo(1, 'S').source:sub(2)
local cwd = vim.fs.dirname(thisInitFile)
local appname = vim.env.NVIM_APPNAME or 'pr3244'

vim.env.XDG_CONFIG_HOME = cwd
vim.env.XDG_DATA_HOME = vim.fs.joinpath(cwd, '.xdg', 'data')
vim.env.XDG_STATE_HOME = vim.fs.joinpath(cwd, '.xdg', 'state')
vim.env.XDG_CACHE_HOME = vim.fs.joinpath(cwd, '.xdg', 'cache')
vim.fn.mkdir(vim.fs.joinpath(vim.env.XDG_CACHE_HOME, appname), 'p')
local stdPathConfig = vim.fn.stdpath('config')

vim.opt.runtimepath:prepend(stdPathConfig)
vim.opt.packpath:prepend(stdPathConfig)

local extuiExists, extui = pcall(require, 'vim._extui')
if extuiExists then
  extui.enable({enable = true, msg = {target = 'msg'}})
end

local function gitClone(url, installPath, branch)
  if vim.fn.isdirectory(installPath) ~= 0 then
    return
  end

  local command = {'git', 'clone', '--', url, installPath}
  if branch then
    table.insert(command, 3, '--branch')
    table.insert(command, 4, branch)
  end

  vim.notify(('Cloning %s dependency into %s...'):format(url, installPath), vim.log.levels.INFO, {})
  local sysObj = vim.system(command, {}):wait()
  if sysObj.code ~= 0 then
    error(sysObj.stderr)
  end
  vim.notify(sysObj.stdout)
  vim.notify(sysObj.stderr, vim.log.levels.WARN)
end

local pluginsPath = vim.fs.joinpath(cwd, appname, 'pack/plugins/opt')
vim.fn.mkdir(pluginsPath, 'p')
pluginsPath = assert(vim.uv.fs_realpath(pluginsPath))

--- @type table<string, {url:string, branch: string?}>
local plugins = {
  ['nvim-tree'] = {url = 'https://github.com/nvim-tree/nvim-tree.lua', branch = '3088-gen_vimdoc-api-3231-remove-api-requires'},
}

for name, repo in pairs(plugins) do
  local installPath = vim.fs.joinpath(pluginsPath, name)
  gitClone(repo.url, installPath, repo.branch)
  vim.opt.runtimepath:append(installPath)
  -- vim.cmd.packadd({args = {name}, bang = true})
end

local function init()
  -- require('nvim-tree.api')
  -- require('nvim-tree').setup({})
end

vim.api.nvim_create_autocmd('UIEnter', {
  once = true,
  callback = init,
})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentation: API luals Annotations And Help Full And Sanitized Node Documentation

3 participants