From 61742f45c830afe6ad61e63390143387465c48f3 Mon Sep 17 00:00:00 2001 From: Will Hopkins Date: Sat, 9 Dec 2023 00:13:36 -0800 Subject: [PATCH] fix: only dispatch remove evt if an item is actually removed by removeAt --- lua/harpoon/list.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lua/harpoon/list.lua b/lua/harpoon/list.lua index d14ae31..62d7f9b 100644 --- a/lua/harpoon/list.lua +++ b/lua/harpoon/list.lua @@ -99,12 +99,14 @@ end ---@return HarpoonList function HarpoonList:removeAt(index) - Listeners.listeners:emit( - Listeners.event_names.REMOVE, - { list = self, item = self.items[index], idx = index } - ) - Logger:log("HarpoonList:removeAt", { item = self.items[index], index = index }) - table.remove(self.items, index) + if self.items[index] then + Logger:log("HarpoonList:removeAt", { item = self.items[index], index = index }) + Listeners.listeners:emit( + Listeners.event_names.REMOVE, + { list = self, item = self.items[index], idx = index } + ) + table.remove(self.items, index) + end return self end