kickstart.nvim/lua/kickstart/plugins/neo-tree.lua

92 lines
2.4 KiB
Lua

return {
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons',
'MunifTanjim/nui.nvim',
},
cmd = 'Neotree',
init = function()
vim.api.nvim_create_autocmd('VimEnter', {
pattern = '*',
command = 'Neotree current',
})
end,
lazy = false,
keys = {
{ '<leader>e', ':Neotree toggle<CR>', { desc = 'NeoTree toggle' } },
},
opts = {
event_handlers = {
{
event = 'neo_tree_buffer_enter',
handler = function()
vim.opt.relativenumber = true
end,
},
{
event = 'file_opened',
handler = function()
require('neo-tree.command').execute { action = 'close' }
end,
},
},
filesystem = {
bind_to_cwd = false,
follow_current_file = { enabled = true },
use_libuv_file_watcher = true,
hijack_netrw_behavior = 'open_current',
window = {
mappings = {
['<space>'] = 'none',
['<leader>E'] = 'close_window',
['J'] = function(state)
local tree = state.tree
local node = tree:get_node()
local siblings = tree:get_nodes(node:get_parent_id())
local renderer = require 'neo-tree.ui.renderer'
renderer.focus_node(state, siblings[#siblings]:get_id())
end,
['K'] = function(state)
local tree = state.tree
local node = tree:get_node()
local siblings = tree:get_nodes(node:get_parent_id())
local renderer = require 'neo-tree.ui.renderer'
renderer.focus_node(state, siblings[1]:get_id())
end,
['l'] = 'open',
['h'] = 'close_node',
},
},
filtered_items = {
hide_dotfiles = false,
hide_gitignored = false,
},
},
},
}
-- 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 = {
-- { '<leader>e', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
-- },
-- opts = {
-- filesystem = {
-- window = {
-- mappings = {
-- ['<leader>e'] = 'close_window',
-- },
-- },
-- },
-- },
-- }