vim.cmd [[set runtimepath=$VIMRUNTIME]] vim.cmd [[set packpath=/tmp/nvt-min/site]] local package_root = "/tmp/nvt-min/site/pack" local install_path = package_root .. "/packer/start/packer.nvim" local function load_plugins() require("packer").startup { { "wbthomason/packer.nvim", "nvim-tree/nvim-tree.lua", "nvim-tree/nvim-web-devicons", -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE }, config = { package_root = package_root, compile_path = install_path .. "/plugin/packer_compiled.lua", display = { non_interactive = true }, }, } end if vim.fn.isdirectory(install_path) == 0 then print "Installing nvim-tree and dependencies." vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path } end load_plugins() require("packer").sync() vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]] vim.opt.termguicolors = true vim.opt.cursorline = true -- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE _G.setup = function() local my_sort_by_mode = "length" local my_sort_by_function = function(nodes) print("sorting by " .. my_sort_by_mode) table.sort(nodes, function(a, b) if my_sort_by_mode == "length" then -- sort by name length return #a.name < #b.name else -- sort by name alphanumerically return a.name <= b.name end end) end local my_sort_by_action_callback = function() if my_sort_by_mode == "length" then my_sort_by_mode = "name" else my_sort_by_mode = "length" end require("nvim-tree.api").tree.reload() end require("nvim-tree").setup { sort_by = my_sort_by_function, view = { mappings = { custom_only = false, list = { { key = "T", action = "toggle_sort_mode", action_cb = my_sort_by_action_callback, }, }, }, } } end