Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions lua/frecency/klass.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions lua/frecency/v1/table.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 0 additions & 2 deletions lua/frecency/v2/entry.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
9 changes: 9 additions & 0 deletions lua/frecency/v2/table.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading