diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/telescope/config.lua | 14 | ||||
| -rw-r--r-- | lua/telescope/utils.lua | 7 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lua/telescope/config.lua b/lua/telescope/config.lua index 8c90bbb..8e5b682 100644 --- a/lua/telescope/config.lua +++ b/lua/telescope/config.lua @@ -273,6 +273,20 @@ append( Similarly, `path_display.shorten = 2` will give a path like: `al/be/ga/delta.txt` + You can also further customise the shortening behaviour by + setting `path_display.shorten = { len = num, exclude = list }`, + where `len` acts as above, and `exclude` is a list of positions + that are not shortened. Negative numbers in the list are considered + relative to the end of the path. + e.g. for a path like + `alpha/beta/gamma/delta.txt` + setting `path_display.shorten = { len = 1, exclude = {1, -1} }` + will give a path like: + `alpha/b/g/delta.txt` + setting `path_display.shorten = { len = 2, exclude = {2, -2} }` + will give a path like: + `al/beta/gamma/de` + path_display can also be set to 'hidden' string to hide file names path_display can also be set to a function for custom formatting of diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua index 5a14cc6..e8aefd4 100644 --- a/lua/telescope/utils.lua +++ b/lua/telescope/utils.lua @@ -363,7 +363,12 @@ utils.transform_path = function(opts, path) end if vim.tbl_contains(path_display, "shorten") or path_display["shorten"] ~= nil then - transformed_path = Path:new(transformed_path):shorten(path_display["shorten"]) + if type(path_display["shorten"]) == "table" then + local shorten = path_display["shorten"] + transformed_path = Path:new(transformed_path):shorten(shorten.len, shorten.exclude) + else + transformed_path = Path:new(transformed_path):shorten(path_display["shorten"]) + end end if vim.tbl_contains(path_display, "truncate") or path_display.truncate then if opts.__length == nil then |
