summaryrefslogtreecommitdiff
path: root/lua/telescope/utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/telescope/utils.lua')
-rw-r--r--lua/telescope/utils.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index 3938bae..b8d2b6b 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -275,6 +275,46 @@ utils.path_tail = (function()
end
end)()
+utils.is_path_hidden = function(opts, path_display)
+ path_display = path_display or utils.get_default(opts.path_display, require('telescope.config').values.path_display)
+
+ return path_display == nil or path_display == "hidden" or
+ type(path_display) ~= "table" or vim.tbl_contains(path_display, "hidden")
+end
+
+utils.transform_path = function(opts, path)
+ local path_display = utils.get_default(opts.path_display, require('telescope.config').values.path_display)
+
+ if utils.is_path_hidden(nil, path_display) then
+ return ''
+ end
+
+ local transformed_path = path
+
+ if vim.tbl_contains(path_display, "tail") then
+ transformed_path = utils.path_tail(transformed_path)
+ else
+ if not vim.tbl_contains(path_display, "absolute") then
+ local cwd
+ if opts.cwd then
+ cwd = opts.cwd
+ if not vim.in_fast_event() then
+ cwd = vim.fn.expand(opts.cwd)
+ end
+ else
+ cwd = vim.loop.cwd();
+ end
+ transformed_path = pathlib.make_relative(transformed_path, cwd)
+ end
+
+ if vim.tbl_contains(path_display, "shorten") then
+ transformed_path = pathlib.shorten(transformed_path)
+ end
+ end
+
+ return transformed_path
+end
+
-- local x = utils.make_default_callable(function(opts)
-- return function()
-- print(opts.example, opts.another)