mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2026-02-04 23:02:06 +00:00
feat!: make use_sqlite = false be the default (#148)
* refactor: load lazily sqlite to get filename * feat: add logic to start migration automatically * feat: make use_sqlite = false be the default * docs: update README for removing dependencies * feat: migrate silently when use_sqlite = false * chore: remove `SQLite3` from messages * test: run again max to 5 times in Windows
This commit is contained in:
committed by
GitHub
parent
4bdd9bafc7
commit
daf59744f6
@@ -7,7 +7,6 @@ local Path = require "plenary.path" --[[@as PlenaryPath]]
|
||||
|
||||
---@class FrecencyDatabaseNative: FrecencyDatabase
|
||||
---@field version "v1"
|
||||
---@field filename string
|
||||
---@field file_lock FrecencyFileLock
|
||||
---@field table FrecencyDatabaseNativeTable
|
||||
local Native = {}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local sqlite = require "frecency.sqlite"
|
||||
local log = require "plenary.log"
|
||||
local Path = require "plenary.path" --[[@as PlenaryPath]]
|
||||
|
||||
---@class FrecencySqliteDB: sqlite_db
|
||||
---@field files sqlite_tbl
|
||||
@@ -25,20 +26,32 @@ local Sqlite = {}
|
||||
---@param config FrecencyDatabaseConfig
|
||||
---@return FrecencyDatabaseSqlite
|
||||
Sqlite.new = function(fs, config)
|
||||
local lib = sqlite.lib
|
||||
local self = setmetatable(
|
||||
{ config = config, buf_registered_flag_name = "telescope_frecency_registered", fs = fs },
|
||||
{ __index = Sqlite }
|
||||
)
|
||||
self.sqlite = sqlite {
|
||||
uri = self.config.root .. "/file_frecency.sqlite3",
|
||||
files = { id = true, count = { "integer", default = 1, required = true }, path = "string" },
|
||||
timestamps = {
|
||||
id = true,
|
||||
file_id = { "integer", reference = "files.id", on_delete = "cascade" },
|
||||
timestamp = { "real", default = lib.julianday "now" },
|
||||
},
|
||||
}
|
||||
self.filename = Path.new(self.config.root, "file_frecency.sqlite3").filename
|
||||
self.sqlite = setmetatable({}, {
|
||||
__index = function(this, key)
|
||||
if not rawget(this, "instance") then
|
||||
local lib = sqlite.lib
|
||||
rawset(
|
||||
this,
|
||||
"instance",
|
||||
sqlite {
|
||||
uri = self.filename,
|
||||
files = { id = true, count = { "integer", default = 1, required = true }, path = "string" },
|
||||
timestamps = {
|
||||
id = true,
|
||||
file_id = { "integer", reference = "files.id", on_delete = "cascade" },
|
||||
timestamp = { "real", default = lib.julianday "now" },
|
||||
},
|
||||
}
|
||||
)
|
||||
end
|
||||
return rawget(this, "instance")[key]
|
||||
end,
|
||||
})
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user