mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
feat(recency_values): customize recency_values (#190)
Co-authored-by: zhaogang <zhaogang@dustess.com>
This commit is contained in:
parent
2a22815b09
commit
08a28ec511
14
README.md
14
README.md
@ -172,6 +172,20 @@ least, it matches against exact the same as you input.
|
||||
|
||||
See [default configuration](https://github.com/nvim-telescope/telescope.nvim#telescope-defaults) for full details on configuring Telescope.
|
||||
|
||||
- `recency_values` (default: see follow)
|
||||
|
||||
```lua
|
||||
-- recency_values default:
|
||||
recency_values = {
|
||||
{ age = 240, value = 100 }, -- past 4 hours
|
||||
{ age = 1440, value = 80 }, -- past day
|
||||
{ age = 4320, value = 60 }, -- past 3 days
|
||||
{ age = 10080, value = 40 }, -- past week
|
||||
{ age = 43200, value = 20 }, -- past month
|
||||
{ age = 129600, value = 10 }, -- past 90 days
|
||||
}
|
||||
```
|
||||
|
||||
- `auto_validate` (default: `true`)
|
||||
|
||||
If `true`, it removes stale entries count over than `db_validate_threshold`. See
|
||||
|
||||
@ -5,6 +5,7 @@ local os_util = require "frecency.os_util"
|
||||
local Config = {}
|
||||
|
||||
---@class FrecencyRawConfig
|
||||
---@field recency_values table<integer, { age: integer, value: integer }> default: {}
|
||||
---@field auto_validate boolean default: true
|
||||
---@field db_root string default: vim.fn.stdpath "data"
|
||||
---@field db_safe_mode boolean default: true
|
||||
@ -24,6 +25,14 @@ local Config = {}
|
||||
---@return FrecencyConfig
|
||||
Config.new = function()
|
||||
local default_values = {
|
||||
recency_values = {
|
||||
{ age = 240, value = 100 }, -- past 4 hours
|
||||
{ age = 1440, value = 80 }, -- past day
|
||||
{ age = 4320, value = 60 }, -- past 3 days
|
||||
{ age = 10080, value = 40 }, -- past week
|
||||
{ age = 43200, value = 20 }, -- past month
|
||||
{ age = 129600, value = 10 }, -- past 90 days
|
||||
},
|
||||
auto_validate = true,
|
||||
db_root = vim.fn.stdpath "data",
|
||||
db_safe_mode = true,
|
||||
@ -43,6 +52,7 @@ Config.new = function()
|
||||
}
|
||||
---@type table<string, boolean>
|
||||
local keys = {
|
||||
recency_values = true,
|
||||
auto_validate = true,
|
||||
db_root = true,
|
||||
db_safe_mode = true,
|
||||
@ -85,6 +95,7 @@ end
|
||||
Config.setup = function(ext_config)
|
||||
local opts = vim.tbl_extend("force", config.values, ext_config or {})
|
||||
vim.validate {
|
||||
recency_values = { opts.recency_values, "t" },
|
||||
auto_validate = { opts.auto_validate, "b" },
|
||||
db_root = { opts.db_root, "s" },
|
||||
db_safe_mode = { opts.db_safe_mode, "b" },
|
||||
|
||||
@ -7,14 +7,7 @@ local Recency = {}
|
||||
---@return FrecencyRecency
|
||||
Recency.new = function()
|
||||
return setmetatable({
|
||||
modifier = {
|
||||
{ age = 240, value = 100 }, -- past 4 hours
|
||||
{ age = 1440, value = 80 }, -- past day
|
||||
{ age = 4320, value = 60 }, -- past 3 days
|
||||
{ age = 10080, value = 40 }, -- past week
|
||||
{ age = 43200, value = 20 }, -- past month
|
||||
{ age = 129600, value = 10 }, -- past 90 days
|
||||
},
|
||||
modifier = config.recency_values,
|
||||
}, { __index = Recency })
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user