Files
neovim/lua/kickstart/plugins/neo-tree.lua
2025-05-19 20:56:45 +01:00

75 lines
1.6 KiB
Lua

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<CR>', 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 = {
['<C-v>'] = '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,
},
},
},
}