diff --git a/lua/frecency/klass.lua b/lua/frecency/klass.lua index aa6cdad0..8546aa05 100644 --- a/lua/frecency/klass.lua +++ b/lua/frecency/klass.lua @@ -239,17 +239,18 @@ function Frecency:query(opts, epoch) end) :totable() table.sort(objects, self.database.query_sorter(opts.order, opts.direction)) - local results = opts.record and objects + local records = opts.record and objects or vim .iter(objects) :map(function(obj) return obj.path end) :totable() - if #results > opts.limit then - results = vim.list_slice(results, 1, opts.limit) + if #records > opts.limit then + records = vim.list_slice(records, 1, opts.limit) end - return opts.json and vim.json.encode(results) or results + local dumped = self.database.tbl:dump(records) + return opts.json and vim.json.encode(dumped) or dumped end ---@private diff --git a/lua/frecency/v1/table.lua b/lua/frecency/v1/table.lua index 83063e43..e9ac5c2f 100644 --- a/lua/frecency/v1/table.lua +++ b/lua/frecency/v1/table.lua @@ -105,4 +105,10 @@ function TableV1:remove_record(key) self.data.records[key] = nil end +---@param records table[] +---@return table +function TableV1:dump(records) + return { version = self.version, records = records } +end + return TableV1 diff --git a/lua/frecency/v2/entry.lua b/lua/frecency/v2/entry.lua index 2254337a..efe21613 100644 --- a/lua/frecency/v2/entry.lua +++ b/lua/frecency/v2/entry.lua @@ -33,8 +33,6 @@ end function EntryV2:obj() return { path = self.path, - half_life = self.half_life, - reference_time = self.reference_time, last_accessed = self.last_accessed, num_accesses = self.num_accesses, score = self.score, diff --git a/lua/frecency/v2/table.lua b/lua/frecency/v2/table.lua index 6adc603d..3f687811 100644 --- a/lua/frecency/v2/table.lua +++ b/lua/frecency/v2/table.lua @@ -134,4 +134,13 @@ function TableV2:reset_reference_time(epoch) end end +---@param records table[] +---@return table +function TableV2:dump(records) + local dumped = TableV1.dump(self, records) + dumped.reference_time = self:reference_time() + dumped.half_life = self:half_life() + return dumped +end + return TableV2