summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorMat Jones <mat@mjones.network>2022-12-01 13:20:52 -0500
committerGitHub <noreply@github.com>2022-12-01 19:20:52 +0100
commitf37c603303925c643056437f31a0998e4cf2232d (patch)
tree814edcf6ed8295b2a4ba70e6a7c12b40c7e8da23 /lua
parent3c2e5fb23e9f6ca1aa682ae16bac3319bfe03e38 (diff)
feat: support for multi-part file extensions like *.test.js (#2252)
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/utils.lua16
1 files changed, 14 insertions, 2 deletions
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index dcc3276..97ef2e3 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -432,6 +432,16 @@ local load_once = function(f)
end
end
+utils.file_extension = function(filename)
+ local parts = vim.split(filename, "%.")
+ -- this check enables us to get multi-part extensions, like *.test.js for example
+ if #parts > 2 then
+ return table.concat(vim.list_slice(parts, #parts - 1), ".")
+ else
+ return table.concat(vim.list_slice(parts, #parts), ".")
+ end
+end
+
utils.transform_devicons = load_once(function()
local has_devicons, devicons = pcall(require, "nvim-web-devicons")
@@ -446,7 +456,8 @@ utils.transform_devicons = load_once(function()
return display
end
- local icon, icon_highlight = devicons.get_icon(utils.path_tail(filename), nil, { default = true })
+ local basename = utils.path_tail(filename)
+ local icon, icon_highlight = devicons.get_icon(basename, utils.file_extension(basename), { default = true })
local icon_display = (icon or " ") .. " " .. (display or "")
if conf.color_devicons then
@@ -476,7 +487,8 @@ utils.get_devicons = load_once(function()
return ""
end
- local icon, icon_highlight = devicons.get_icon(utils.path_tail(filename), nil, { default = true })
+ local basename = utils.path_tail(filename)
+ local icon, icon_highlight = devicons.get_icon(basename, utils.file_extension(basename), { default = true })
if conf.color_devicons then
return icon, icon_highlight
else