From bb9a136cd4a9f95832053f441494079a3c66c54f Mon Sep 17 00:00:00 2001 From: psychhim Date: Mon, 13 Oct 2025 02:33:35 +0530 Subject: [PATCH] Update: Lazy-load for Neo-tree. --- lua/plugins/custom/filetree.lua | 37 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/lua/plugins/custom/filetree.lua b/lua/plugins/custom/filetree.lua index c388f5c..0a004f0 100644 --- a/lua/plugins/custom/filetree.lua +++ b/lua/plugins/custom/filetree.lua @@ -1,6 +1,4 @@ -- Unless you are still migrating, remove the deprecated commands from v1.x -vim.cmd [[ let g:neo_tree_remove_legacy_commands = 1 ]] - return { 'nvim-neo-tree/neo-tree.nvim', version = '*', @@ -9,7 +7,29 @@ return { 'nvim-tree/nvim-web-devicons', 'MunifTanjim/nui.nvim', }, + -- Lazy-load when this command is used + cmd = { 'Neotree' }, + -- Lazy load on n + keys = { + { + 'n', + function() + require('neo-tree.command').execute { toggle = true } -- toggle Neo-tree + end, + desc = 'Toggle Neo-tree', + }, + }, config = function() + vim.cmd [[ let g:neo_tree_remove_legacy_commands = 1 ]] + + -- Track last created file or folder + local last_created_path = nil + vim.api.nvim_set_hl(0, 'NeoTreeLastCreated', { fg = '#00ff00', bold = true }) + + local function normalize_path(path) + return vim.fn.fnamemodify(path, ':p') + end + -- Handling deleted file or folder buffers, marking them as removed local function delete_file_mark_removed(state) local node = state.tree:get_node() @@ -70,12 +90,8 @@ return { end return true end - -- Track last created file or folder - local last_created_path = nil - vim.api.nvim_set_hl(0, 'NeoTreeLastCreated', { fg = '#00ff00', bold = true }) - local function normalize_path(path) - return vim.fn.fnamemodify(path, ':p') - end + + -- Smart open file local function smart_open(state) local node = state.tree:get_node() if not node then @@ -145,7 +161,8 @@ return { end end end - -- Smart_open_split for split windows + + -- Smart open in split windows local function smart_open_split(state, direction) local node = state.tree:get_node() if not node then @@ -197,6 +214,8 @@ return { vim.cmd('edit ' .. vim.fn.fnameescape(path)) end + + -- Setup Neo-tree require('neo-tree').setup { close_if_last_window = true, popup_border_style = 'rounded',