]> Arthur Taft Gitweb - nvim.git/blob - lua/plugins/neo-tree.lua
Initial commit
[nvim.git] / lua / plugins / neo-tree.lua
1 return {
2         {
3                 "nvim-neo-tree/neo-tree.nvim",
4                 branch = "v3.x",
5                 dependencies = {
6                         "nvim-lua/plenary.nvim",
7                         "nvim-tree/nvim-web-devicons", -- you already have this
8                         "MunifTanjim/nui.nvim",
9                 },
10                 cmd = { "Neotree" },
11                 keys = {
12                         { "<leader>fe", "<cmd>Neotree toggle left<cr>", desc = "Files (toggle sidebar)" },
13                         { "<leader>fE", "<cmd>Neotree reveal left<cr>", desc = "Files (reveal current)" },
14                         { "<leader>fgs", "<cmd>Neotree float git_status<cr>", desc = "Git status (float)" },
15                 },
16                 opts = {
17                         close_if_last_window = true,
18                         popup_border_style = "rounded",
19                         enable_git_status = true,
20                         enable_diagnostics = false,
21                         default_component_configs = {
22                                 indent = { padding = 1 },
23                                 name = { use_git_status_colors = true },
24                                 git_status = {
25                                         symbols = { unstaged = "●", staged = "✓", untracked = "★", renamed = "➡", deleted = "✖" },
26                                 },
27                         },
28                         filesystem = {
29                                 filtered_items = {
30                                         hide_dotfiles = false,
31                                         hide_gitignored = true,
32                                 },
33                                 follow_current_file = { enabled = true },
34                                 hijack_netrw_behavior = "open_default",
35                                 use_libuv_file_watcher = true,
36                         },
37                         window = {
38                                 width = 34,
39                                 mappings = {
40                                         ["<space>"] = "none",
41                                         ["l"] = "open",
42                                         ["h"] = "close_node",
43                                         ["o"] = "open",
44                                         ["<cr>"] = "open_with_window_picker",
45                                         ["s"] = "open_split",
46                                         ["v"] = "open_vsplit",
47                                         ["C"] = "close_all_nodes",
48                                         ["R"] = "refresh",
49                                         ["a"] = { "add", config = { show_path = "relative" } },
50                                         ["d"] = "delete",
51                                         ["r"] = "rename",
52                                         ["y"] = "copy_to_clipboard",
53                                         ["x"] = "cut_to_clipboard",
54                                         ["p"] = "paste_from_clipboard",
55                                 },
56                         },
57                         source_selector = { winbar = true, statusline = false }, -- nice tabs for Files/Git/Buffers
58                 },
59                 init = function()
60                         -- Optional: open the sidebar when you start in a directory or no file
61                         if vim.fn.argc() == 0 then
62                                 vim.api.nvim_create_autocmd("VimEnter", {
63                                         once = true,
64                                         callback = function()
65                                                 vim.cmd("Neotree show left")
66                                         end,
67                                 })
68                         end
69                 end,
70         },
71 }