Files
dotfiles/.config/nvim/lua/plugins/neotree.lua
Baerspektivo 0379a21780 feat: Complete Neovim Scratch setup with all fixes
- Complete migration from Kickstart to Scratch config
- Add Python LSP support (pyright) for workflow scripts
- Improve Neo-tree: ASCII mode, better folder navigation (o, Z keys)
- Add htop config as btop fallback
- Configure Ghostty with Hack font + font-thicken
- Remove all Zsh configs (Fish-only now)
- Update install.sh for new structure
- Add comprehensive README.md

Working setup:
- TypeScript/Playwright QA optimized
- Go development ready
- Fish shell + Ghostty terminal
- All configs synced to dotfiles
2025-10-13 11:38:18 +02:00

116 lines
3.4 KiB
Lua

-- ============================================================================
-- Neo-tree - File Explorer (ASCII Mode - Keine Nerd Font Icons benötigt)
-- ============================================================================
return {
{
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons',
'MunifTanjim/nui.nvim',
},
cmd = 'Neotree',
keys = {
{ '<leader>e', '<cmd>Neotree toggle right<CR>', desc = 'Explorer toggle' },
{ '<leader>ef', '<cmd>Neotree focus filesystem right<CR>', desc = 'Explorer focus' },
{ '<leader>eb', '<cmd>Neotree focus buffers right<CR>', desc = 'Explorer buffers' },
{ '<leader>eg', '<cmd>Neotree focus git_status right<CR>', desc = 'Explorer git' },
},
config = function()
require('neo-tree').setup({
close_if_last_window = false,
popup_border_style = 'rounded',
enable_git_status = true,
enable_diagnostics = true,
default_component_configs = {
indent = {
indent_size = 2,
padding = 1,
with_markers = true,
indent_marker = '',
last_indent_marker = '',
with_expanders = true,
expander_collapsed = '>', -- ASCII Pfeil
expander_expanded = 'v', -- ASCII Pfeil nach unten
},
icon = {
folder_closed = "[+]",
folder_open = "[-]",
folder_empty = "[ ]",
default = "",
},
modified = {
symbol = '[+]',
},
git_status = {
symbols = {
added = "+",
modified = "~",
deleted = "-",
renamed = ">",
untracked = "?",
ignored = "!",
unstaged = "*",
staged = "",
conflict = "!",
}
},
},
window = {
position = 'right',
width = 35,
mappings = {
['<space>'] = 'none',
['<2-LeftMouse>'] = 'open',
['<cr>'] = 'open',
['o'] = 'toggle_node', -- Ordner auf/zuklappen
['S'] = 'open_split',
['s'] = 'open_vsplit',
['t'] = 'open_tabnew',
['C'] = 'close_node',
['z'] = 'close_all_nodes',
['Z'] = 'expand_all_nodes', -- Alle Ordner aufklappen
['R'] = 'refresh',
['a'] = {
'add',
config = {
show_path = 'relative'
}
},
['d'] = 'delete',
['r'] = 'rename',
['y'] = 'copy_to_clipboard',
['x'] = 'cut_to_clipboard',
['p'] = 'paste_from_clipboard',
['q'] = 'close_window',
['?'] = 'show_help',
}
},
filesystem = {
filtered_items = {
visible = false,
hide_dotfiles = false,
hide_gitignored = false,
hide_by_name = {
'node_modules'
},
never_show = {
'.DS_Store',
},
},
follow_current_file = {
enabled = true,
leave_dirs_open = true, -- Ordner bleiben offen beim Navigieren
},
use_libuv_file_watcher = true,
},
})
end,
},
}