Improve icon fetching by file extension (#423)
This commit is contained in:
@@ -46,7 +46,7 @@ local function file_new(cwd, name)
|
|||||||
name = name,
|
name = name,
|
||||||
absolute_path = absolute_path,
|
absolute_path = absolute_path,
|
||||||
executable = is_exec,
|
executable = is_exec,
|
||||||
extension = vim.fn.fnamemodify(name, ':e') or "",
|
extension = string.match(name, ".?[^.]+%.(.*)") or "",
|
||||||
match_name = path_to_matching_str(name),
|
match_name = path_to_matching_str(name),
|
||||||
match_path = path_to_matching_str(absolute_path),
|
match_path = path_to_matching_str(absolute_path),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,11 +58,14 @@ if icon_state.show_file_icon then
|
|||||||
get_file_icon = function(fname, extension, line, depth)
|
get_file_icon = function(fname, extension, line, depth)
|
||||||
local icon, hl_group = web_devicons.get_icon(fname, extension)
|
local icon, hl_group = web_devicons.get_icon(fname, extension)
|
||||||
|
|
||||||
if icon then
|
if icon and hl_group ~= "DevIconDefault" then
|
||||||
if hl_group then
|
if hl_group then
|
||||||
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
table.insert(hl, { hl_group, line, depth, depth + #icon + 1 })
|
||||||
end
|
end
|
||||||
return icon.." "
|
return icon.." "
|
||||||
|
elseif string.match(extension, "%.(.*)") then
|
||||||
|
-- If there are more extensions to the file, try to grab the icon for them recursively
|
||||||
|
return get_file_icon(fname, string.match(extension, "%.(.*)"), line, depth)
|
||||||
else
|
else
|
||||||
return #icon_state.icons.default > 0 and icon_state.icons.default.." " or ""
|
return #icon_state.icons.default > 0 and icon_state.icons.default.." " or ""
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user