From 4fac477dc67cd252840eab68320c37afe4e17c29 Mon Sep 17 00:00:00 2001 From: pika Date: Sat, 17 Aug 2024 21:38:48 +0200 Subject: [PATCH] addet correct edit function --- lua/pika/plugins/neo-tree.lua | 139 +++++++++++++++++----------------- 1 file changed, 68 insertions(+), 71 deletions(-) diff --git a/lua/pika/plugins/neo-tree.lua b/lua/pika/plugins/neo-tree.lua index 22e6232..54f7f41 100644 --- a/lua/pika/plugins/neo-tree.lua +++ b/lua/pika/plugins/neo-tree.lua @@ -13,98 +13,95 @@ local function setup_open_file_indicators() end end + -- Update open_buffers initially + update_open_buffers() + + -- Set up autocmds to update open_buffers and refresh Neo-tree + local group = vim.api.nvim_create_augroup("NeoTreeOpenFileIndicator", { clear = true }) + vim.api.nvim_create_autocmd({"BufAdd", "BufDelete", "BufWipeout"}, { + group = group, + callback = function() + update_open_buffers() + if package.loaded["neo-tree.sources.manager"] then + require("neo-tree.sources.manager").refresh("filesystem") + end + end, + }) + -- Custom component to display open file indicator local function open_file_indicator(config, node, state) local result = require("neo-tree.sources.common.components").icon(config, node, state) if node.type == "file" and open_buffers[node:get_id()] then - result.text = result.text .. " 󱞇" + result.text = result.text .. "󱞇 " end return result end - return { - update_open_buffers = update_open_buffers, - open_file_indicator = open_file_indicator - } + return open_file_indicator end return { { "nvim-neo-tree/neo-tree.nvim", - opts = { - sources = { "filesystem", "buffers", "git_status" }, - open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" }, - close_if_last_window = false, - popup_border_style = "rounded", - enable_git_status = true, - enable_diagnostics = true, - filesystem = { - bind_to_cwd = false, - follow_current_file = { enabled = true }, - use_libuv_file_watcher = true, - components = { - icon = setup_open_file_indicators().open_file_indicator, - }, - }, - window = { - mappings = { - ["l"] = "open", - ["h"] = "close_node", - [""] = "none", - ["Y"] = { - function(state) - local node = state.tree:get_node() - local path = node:get_id() - vim.fn.setreg("+", path, "c") - end, - desc = "Copy Path to Clipboard", - }, - ["O"] = { - function(state) - require("lazy.util").open(state.tree:get_node().path, { system = true }) - end, - desc = "Open with System Application", - }, - ["P"] = { "toggle_preview", config = { use_float = false } }, - }, - }, - default_component_configs = { - indent = { - with_expanders = true, - expander_collapsed = "", - expander_expanded = "", - expander_highlight = "NeoTreeExpander", - }, - git_status = { - symbols = { - unstaged = "󰄱", - staged = "󰱒", + opts = function() + return { + sources = { "filesystem", "buffers", "git_status" }, + open_files_do_not_replace_types = { "terminal", "Trouble", "trouble", "qf", "Outline" }, + close_if_last_window = false, + popup_border_style = "rounded", + enable_git_status = true, + enable_diagnostics = true, + filesystem = { + bind_to_cwd = false, + follow_current_file = { enabled = true }, + use_libuv_file_watcher = true, + components = { + icon = setup_open_file_indicators(), }, }, + window = { + mappings = { + ["l"] = "open", + ["h"] = "close_node", + [""] = "none", + ["Y"] = { + function(state) + local node = state.tree:get_node() + local path = node:get_id() + vim.fn.setreg("+", path, "c") + end, + desc = "Copy Path to Clipboard", + }, + ["O"] = { + function(state) + require("lazy.util").open(state.tree:get_node().path, { system = true }) + end, + desc = "Open with System Application", + }, + ["P"] = { "toggle_preview", config = { use_float = false } }, + }, + }, + default_component_configs = { + indent = { + with_expanders = true, + expander_collapsed = "", + expander_expanded = "", + expander_highlight = "NeoTreeExpander", + }, + git_status = { + symbols = { + unstaged = "󰄱", + staged = "󰱒", + }, + }, + } } - }, + end, branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree/nvim-web-devicons", "3rd/image.nvim", }, - config = function(_, opts) - local indicators = setup_open_file_indicators() - - -- Set up autocmds to update open_buffers and refresh Neo-tree - local group = vim.api.nvim_create_augroup("NeoTreeOpenFileIndicator", { clear = true }) - vim.api.nvim_create_autocmd({"BufAdd", "BufDelete", "BufWipeout"}, { - group = group, - callback = function() - indicators.update_open_buffers() - if package.loaded["neo-tree.sources.manager"] then - require("neo-tree.sources.manager").refresh("filesystem") - end - end, - }) - - require("neo-tree").setup(opts) - end, } }