From 2aa20a84da76dd5f0d7a9a39644e3d2c05bdd143 Mon Sep 17 00:00:00 2001 From: mpaulson Date: Fri, 3 Nov 2023 11:57:35 -0600 Subject: [PATCH] chore: moved types around --- lua/harpoon/config.lua | 25 +++++++++++++++++++++++++ lua/harpoon/init.lua | 20 -------------------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/lua/harpoon/config.lua b/lua/harpoon/config.lua index 01eb613..717ba74 100644 --- a/lua/harpoon/config.lua +++ b/lua/harpoon/config.lua @@ -1,9 +1,31 @@ local M = {} +---@alias HarpoonListItem {value: any, context: any} + +---@class HarpoonPartialConfigItem +---@field encode? (fun(list_item: HarpoonListItem): string) +---@field decode? (fun(obj: string): any) +---@field key? (fun(): string) +---@field display? (fun(list_item: HarpoonListItem): string) +---@field select? (fun(list_item: HarpoonListItem): nil) +---@field equals? (fun(list_line_a: HarpoonListItem, list_line_b: HarpoonListItem): boolean) +---@field add? fun(): HarpoonListItem + +---@class HarpoonSettings +---@field save_on_toggle boolean defaults to true +---@field jump_to_file_location boolean defaults to true + +---@class HarpoonConfig +---@field default HarpoonPartialConfigItem +---@field settings HarpoonSettings +---@field [string] HarpoonPartialConfigItem + +---@return HarpoonConfig function M.get_config(config, name) return vim.tbl_extend("force", {}, config.default, config[name] or {}) end +---@return HarpoonConfig function M.get_default_config() return { settings = { @@ -51,6 +73,9 @@ function M.get_default_config() } end +---@param partial_config HarpoonConfig +---@param latest_config HarpoonConfig? +---@return HarpoonConfig function M.merge_config(partial_config, latest_config) local config = latest_config or M.get_default_config() for k, v in pairs(partial_config) do diff --git a/lua/harpoon/init.lua b/lua/harpoon/init.lua index ed62302..d7de3c8 100644 --- a/lua/harpoon/init.lua +++ b/lua/harpoon/init.lua @@ -3,26 +3,6 @@ -- read from a config file -- ----@alias HarpoonListItem {value: any, context: any} - ----@class HarpoonPartialConfigItem ----@field encode? (fun(list_item: HarpoonListItem): string) ----@field decode? (fun(obj: string): any) ----@field key? (fun(): string) ----@field display? (fun(list_item: HarpoonListItem): string) ----@field select? (fun(list_item: HarpoonListItem): nil) ----@field equals? (fun(list_line_a: HarpoonListItem, list_line_b: HarpoonListItem): boolean) ----@field add? fun(): HarpoonListItem - ----@class HarpoonSettings ----@field save_on_toggle boolean defaults to true ----@field jump_to_file_location boolean defaults to true - ----@class HarpoonConfig ----@field default HarpoonPartialConfigItem ----@field settings HarpoonSettings ----@field [string] HarpoonPartialConfigItem - local M = {} ---@param c HarpoonConfig