mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
* refactor: make logic for Database be abstract * feat: add logic for DB by string.dump * fix: run with async.void to run synchronously * test: add tests for native feature * feat!: sort candidates by path when score is same This is needed because candidates from SQLite is sorted by id, but ones from native is sorted by path. * chore: clean up types * feat: add lock/unlock feature to access DB * test: use async version of busted And disable benchmark tests (fix later) * test: add tests for file_lock * chore: use more explicit names * chore: use plenary.log instead * fix: wait async functions definitely * feat: add migrator * chore: fix logging * fix: detect emptiness of the table * fix: deal with buffer with no names * test: loosen the condition temporarily * test: add tests for migrator * fix: return true when the table is not empty * feat: load sqlite lazily not to require in start * chore: add logging to calculate time for fetching * feat: add converter from native code to SQLite * feat: warn when sqlite.lua is not available * feat: add FrecencyMigrateDB to migrate DB * docs: add note for native code logic * test: ignore type bug
44 lines
1.1 KiB
Lua
44 lines
1.1 KiB
Lua
---@diagnostic disable: missing-return, unused-local
|
|
---@class FrecencyDatabaseConfig
|
|
---@field root string
|
|
|
|
---@class FrecencyDatabaseGetFilesOptions
|
|
---@field path string?
|
|
---@field workspace string?
|
|
|
|
---@class FrecencyDatabase
|
|
---@field config FrecencyDatabaseConfig
|
|
---@field has_entry fun(): boolean
|
|
---@field new fun(fs: FrecencyFS, config: FrecencyDatabaseConfig): FrecencyDatabase
|
|
---@field protected fs FrecencyFS
|
|
local Database = {}
|
|
|
|
---@param paths string[]
|
|
---@return nil
|
|
function Database:insert_files(paths) end
|
|
|
|
---@return integer[]|string[]
|
|
function Database:unlinked_entries() end
|
|
|
|
---@param files integer[]|string[]
|
|
---@return nil
|
|
function Database:remove_files(files) end
|
|
|
|
---@param path string
|
|
---@param max_count integer
|
|
---@param datetime string?
|
|
---@return nil
|
|
function Database:update(path, max_count, datetime) end
|
|
|
|
---@async
|
|
---@class FrecencyDatabaseEntry
|
|
---@field ages number[]
|
|
---@field count integer
|
|
---@field path string
|
|
---@field score number
|
|
|
|
---@param workspace string?
|
|
---@param datetime string?
|
|
---@return FrecencyDatabaseEntry[]
|
|
function Database:get_entries(workspace, datetime) end
|