From 7532a0e0a698fc1e33b6732b5913a6661a43450c Mon Sep 17 00:00:00 2001 From: Bryan Date: Thu, 17 Oct 2024 00:59:32 -0600 Subject: [PATCH] Add before cd hooks --- lua/cd-project/adapter/init.lua | 2 +- lua/cd-project/api.lua | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lua/cd-project/adapter/init.lua b/lua/cd-project/adapter/init.lua index 9249d23..67f033f 100644 --- a/lua/cd-project/adapter/init.lua +++ b/lua/cd-project/adapter/init.lua @@ -1,4 +1,4 @@ --- TODO: refator to picker +-- TODO: refactor to picker local function cd_project_in_tab() local projects_picker = vim.g.cd_project_config.projects_picker diff --git a/lua/cd-project/api.lua b/lua/cd-project/api.lua index ea6c546..1d49498 100644 --- a/lua/cd-project/api.lua +++ b/lua/cd-project/api.lua @@ -87,6 +87,11 @@ local function cd_project_in_tab(dir) return end + local hooks = cd_hooks.get_hooks(vim.g.cd_project_config.hooks, dir, "BEFORE_CD") + for _, hook in ipairs(hooks) do + hook(dir) + end + vim.fn.execute("tabe | tcd " .. vim.fn.fnameescape(dir)) local hooks = cd_hooks.get_hooks(vim.g.cd_project_config.hooks, dir, "AFTER_CD") @@ -99,6 +104,12 @@ end local function cd_project(dir) vim.g.cd_project_last_project = vim.g.cd_project_current_project vim.g.cd_project_current_project = dir + + local hooks = cd_hooks.get_hooks(vim.g.cd_project_config.hooks, dir, "BEFORE_CD") + for _, hook in ipairs(hooks) do + hook(dir) + end + vim.fn.execute("cd " .. vim.fn.fnameescape(dir)) local hooks = cd_hooks.get_hooks(vim.g.cd_project_config.hooks, dir, "AFTER_CD")