mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
Use opts.path_display to customize (#76)
This commit is contained in:
parent
4d72ee8002
commit
3ef3d6cabe
@ -35,22 +35,16 @@ local state = {
|
|||||||
picker = {},
|
picker = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
local function format_filepath(filename, opts)
|
local function filepath_formatter(opts)
|
||||||
local original_filename = filename
|
local path_opts = {}
|
||||||
|
for k, v in pairs(opts) do
|
||||||
if state.active_filter then
|
path_opts[k] = v
|
||||||
filename = Path:new(filename):make_relative(state.active_filter)
|
|
||||||
else
|
|
||||||
filename = Path:new(filename):make_relative(state.cwd)
|
|
||||||
-- check relative to home/current
|
|
||||||
if vim.startswith(filename, os_home) then
|
|
||||||
filename = "~/" .. Path:new(filename):make_relative(os_home)
|
|
||||||
elseif filename ~= original_filename then
|
|
||||||
filename = "./" .. filename
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return utils.transform_path(opts, filename)
|
return function (filename)
|
||||||
|
path_opts.cwd = state.active_filter or state.cwd
|
||||||
|
return utils.transform_path(path_opts, filename)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- returns `true` if workspaces exist
|
-- returns `true` if workspaces exist
|
||||||
@ -128,13 +122,32 @@ local frecency = function(opts)
|
|||||||
items = get_display_cols(),
|
items = get_display_cols(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if not opts.path_display then
|
||||||
|
opts.path_display = function (path_opts, filename)
|
||||||
|
local original_filename = filename
|
||||||
|
|
||||||
|
filename = Path:new(filename):make_relative(path_opts.cwd)
|
||||||
|
if not state.active_filter then
|
||||||
|
if vim.startswith(filename, os_home) then
|
||||||
|
filename = "~/" .. Path:new(filename):make_relative(os_home)
|
||||||
|
elseif filename ~= original_filename then
|
||||||
|
filename = "./" .. filename
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return filename
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local formatter = filepath_formatter(opts)
|
||||||
|
|
||||||
local bufnr, buf_is_loaded, display_filename, hl_filename, display_items, icon, icon_highlight
|
local bufnr, buf_is_loaded, display_filename, hl_filename, display_items, icon, icon_highlight
|
||||||
local make_display = function(entry)
|
local make_display = function(entry)
|
||||||
bufnr = vim.fn.bufnr
|
bufnr = vim.fn.bufnr
|
||||||
buf_is_loaded = vim.api.nvim_buf_is_loaded
|
buf_is_loaded = vim.api.nvim_buf_is_loaded
|
||||||
display_filename = entry.name
|
display_filename = entry.name
|
||||||
hl_filename = buf_is_loaded(bufnr(display_filename)) and "TelescopeBufferLoaded" or ""
|
hl_filename = buf_is_loaded(bufnr(display_filename)) and "TelescopeBufferLoaded" or ""
|
||||||
display_filename = format_filepath(display_filename, opts)
|
display_filename = formatter(display_filename)
|
||||||
|
|
||||||
display_items = state.show_scores and { { entry.score, "TelescopeFrecencyScores" } } or {}
|
display_items = state.show_scores and { { entry.score, "TelescopeFrecencyScores" } } or {}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user