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

102 lines
2.7 KiB
Lua

-- Neo-tree is a Neovim plugin to browse the file system
-- https://github.com/nvim-neo-tree/neo-tree.nvim
return {
'nvim-neo-tree/neo-tree.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons',
'MunifTanjim/nui.nvim',
},
event = 'VeryLazy',
keys = {
{ '<leader>e', ':Neotree toggle float<CR>', silent = true, desc = 'Float File Explorer' },
{ '<leader><Tab>', ':Neotree toggle left<CR>', silent = true, desc = 'Left File Explorer' },
},
config = function()
require('neo-tree').setup {
close_if_last_window = true,
popup_border_style = 'single',
enable_git_status = true,
enable_modified_markers = true,
enable_diagnostics = true,
sort_case_insensitive = true,
default_component_configs = {
indent = {
with_markers = true,
with_expanders = true,
},
modified = {
symbol = '',
highlight = 'NeoTreeModified',
},
icon = {
folder_closed = '',
folder_open = '',
folder_empty = '',
folder_empty_open = '',
},
git_status = {
symbols = {
-- Change type
added = '',
deleted = '',
modified = '',
renamed = '',
-- Status type
untracked = '',
ignored = '',
unstaged = '',
staged = '',
conflict = '',
},
},
},
window = {
position = 'float',
width = 35,
},
filesystem = {
use_libuv_file_watcher = true,
filtered_items = {
hide_dotfiles = false,
hide_gitignored = false,
hide_by_name = {
'node_modules',
},
never_show = {
'.DS_Store',
'thumbs.db',
},
},
},
source_selector = {
winbar = true,
sources = {
{ source = 'filesystem', display_name = '  Files ' },
{ source = 'buffers', display_name = '  Bufs ' },
{ source = 'git_status', display_name = '  Git ' },
},
},
event_handlers = {
{
event = 'neo_tree_window_after_open',
handler = function(args)
if args.position == 'left' or args.position == 'right' then
vim.cmd 'wincmd ='
end
end,
},
{
event = 'neo_tree_window_after_close',
handler = function(args)
if args.position == 'left' or args.position == 'right' then
vim.cmd 'wincmd ='
end
end,
},
},
}
end,
}