return { 'nvim-neo-tree/neo-tree.nvim', version = '*', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended 'MunifTanjim/nui.nvim', }, cmd = 'Neotree', keys = { { '\\', ':Neotree reveal', desc = 'NeoTree reveal', silent = true }, }, opts = { filesystem = { hijack_netrw_behavior = 'open_default', window = { mappings = { ['\\'] = 'close_window', }, }, filtered_items = { visible = false, hide_dotfiles = false, hide_gitignored = true, hide_by_name = { '.git', '.DS_Store', }, never_show = {}, always_show_by_pattern = { '.env*', }, }, }, buffers = { follow_current_file = { enabled = true, }, }, window = { mappings = { [''] = 'open_vsplit', ['Y'] = function(state) local node = state.tree:get_node() local filepath = node:get_id() local filename = node.name local results = { vim.fn.fnamemodify(filepath, ':.'), filepath, filename, } local i = vim.fn.inputlist { 'Choose what to copy:', '1. ' .. results[1], '2. ' .. results[2], '3. ' .. results[3], } if i > 0 then local result = results[i] if not result then return print('Invalid choice: ' .. i) end vim.fn.setreg('"', result) end end, }, }, }, }