mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-23 15:51:03 +00:00
fix: rendering fails when no file type style is matched (#721)
This commit is contained in:
parent
8ea7556625
commit
5e43f878c6
5 changed files with 20 additions and 9 deletions
|
|
@ -95,7 +95,13 @@ impl File {
|
|||
})
|
||||
});
|
||||
reg.add_method("is_selected", |_, me, ()| Ok(me.tab().selected.contains(&me.url)));
|
||||
reg.add_method("in_parent", |_, me, ()| {
|
||||
Ok(me.tab().parent.as_ref().is_some_and(|f| me.folder().cwd == f.cwd))
|
||||
});
|
||||
reg.add_method("in_current", |_, me, ()| Ok(me.folder().cwd == me.tab().current.cwd));
|
||||
reg.add_method("in_preview", |_, me, ()| {
|
||||
Ok(me.tab().current.hovered().is_some_and(|f| me.folder().cwd == f.url))
|
||||
});
|
||||
reg.add_method("found", |lua, me, ()| {
|
||||
let cx = lua.named_registry_value::<CtxRef>("cx")?;
|
||||
let Some(finder) = &cx.manager.active().finder else {
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ function Current:render(area)
|
|||
|
||||
local items, markers = {}, {}
|
||||
for i, f in ipairs(files) do
|
||||
local style = f:style()
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
||||
:style(f:is_hovered() and style:patch(THEME.manager.hovered) or style)
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||
|
||||
-- Yanked/marked/selected files
|
||||
local marker = File:marker(f)
|
||||
|
|
|
|||
|
|
@ -72,6 +72,17 @@ function File:full(file)
|
|||
}
|
||||
end
|
||||
|
||||
function File:style(file)
|
||||
local style = file:style()
|
||||
if not file:is_hovered() then
|
||||
return style
|
||||
elseif file:in_preview() then
|
||||
return style and style:patch(THEME.manager.preview_hovered) or THEME.manager.preview_hovered
|
||||
else
|
||||
return style and style:patch(THEME.manager.hovered) or THEME.manager.hovered
|
||||
end
|
||||
end
|
||||
|
||||
function File:marker(file)
|
||||
local yanked = file:is_yanked()
|
||||
if yanked ~= 0 then
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ function Parent:render(area)
|
|||
|
||||
local items, markers = {}, {}
|
||||
for i, f in ipairs(folder.window) do
|
||||
local style = f:style()
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
||||
:style(f:is_hovered() and style:patch(THEME.manager.hovered) or style)
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||
|
||||
-- Yanked/marked/selected files
|
||||
local marker = File:marker(f)
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@ function M:peek()
|
|||
|
||||
local items, markers = {}, {}
|
||||
for i, f in ipairs(folder.window) do
|
||||
local style = f:style()
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
||||
:style(f:is_hovered() and style:patch(THEME.manager.preview_hovered) or style)
|
||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||
|
||||
-- Yanked/marked/selected files
|
||||
local marker = File:marker(f)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue