diff --git a/README.md b/README.md index 9e8dd5d..f77af56 100644 --- a/README.md +++ b/README.md @@ -120,8 +120,9 @@ harpoon:setup({ --- This function gets invoked with the options being passed in from --- list:select(index, <...options...>) --- @param list_item {value: any, context: any} + --- @param list { ... } --- @param option any - select = function(list_item, option) + select = function(list_item, list, option) -- WOAH, IS THIS HTMX LEVEL XSS ATTACK?? vim.cmd(list_item.value) end @@ -144,7 +145,7 @@ There is quite a bit of behavior you can configure via `harpoon:setup()` ---@field encode? (fun(list_item: HarpoonListItem): string) ---@field decode? (fun(obj: string): any) ---@field display? (fun(list_item: HarpoonListItem): string) ----@field select? (fun(list_item: HarpoonListItem, options: any?): nil) +---@field select? (fun(list_item?: HarpoonListItem, list: HarpoonList, options: any?): nil) ---@field equals? (fun(list_line_a: HarpoonListItem, list_line_b: HarpoonListItem): boolean) ---@field add? fun(item: any?): HarpoonListItem ---@field BufLeave? fun(evt: any, list: HarpoonList): nil diff --git a/lua/harpoon/config.lua b/lua/harpoon/config.lua index 8e3710b..966f19e 100644 --- a/lua/harpoon/config.lua +++ b/lua/harpoon/config.lua @@ -16,7 +16,7 @@ M.DEFAULT_LIST = DEFAULT_LIST ---@field encode? (fun(list_item: HarpoonListItem): string) ---@field decode? (fun(obj: string): any) ---@field display? (fun(list_item: HarpoonListItem): string) ----@field select? (fun(list_item?: HarpoonListItem, options: any?): nil) +---@field select? (fun(list_item?: HarpoonListItem, list: HarpoonList, options: any?): nil) ---@field equals? (fun(list_line_a: HarpoonListItem, list_line_b: HarpoonListItem): boolean) ---@field add? fun(config: HarpoonPartialConfigItem, item: any?): HarpoonListItem ---@field BufLeave? fun(evt: any, list: HarpoonList): nil @@ -80,8 +80,9 @@ function M.get_default_config() --- the select function is called when a user selects an item from the corresponding list and can be nil if select_with_nil is true ---@param list_item? HarpoonListFileItem + ---@param list HarpoonList ---@param options HarpoonListFileOptions - select = function(list_item, options) + select = function(list_item, list, options) options = options or {} if list_item == nil then return diff --git a/lua/harpoon/list.lua b/lua/harpoon/list.lua index d88ff0f..52588d9 100644 --- a/lua/harpoon/list.lua +++ b/lua/harpoon/list.lua @@ -160,7 +160,7 @@ function HarpoonList:select(index, options) Listeners.event_names.SELECT, { list = self, item = item, idx = index } ) - self.config.select(item, options) + self.config.select(item, self, options) end end