mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +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("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_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, ()| {
|
reg.add_method("found", |lua, me, ()| {
|
||||||
let cx = lua.named_registry_value::<CtxRef>("cx")?;
|
let cx = lua.named_registry_value::<CtxRef>("cx")?;
|
||||||
let Some(finder) = &cx.manager.active().finder else {
|
let Some(finder) = &cx.manager.active().finder else {
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ function Current:render(area)
|
||||||
|
|
||||||
local items, markers = {}, {}
|
local items, markers = {}, {}
|
||||||
for i, f in ipairs(files) do
|
for i, f in ipairs(files) do
|
||||||
local style = f:style()
|
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
|
||||||
:style(f:is_hovered() and style:patch(THEME.manager.hovered) or style)
|
|
||||||
|
|
||||||
-- Yanked/marked/selected files
|
-- Yanked/marked/selected files
|
||||||
local marker = File:marker(f)
|
local marker = File:marker(f)
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,17 @@ function File:full(file)
|
||||||
}
|
}
|
||||||
end
|
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)
|
function File:marker(file)
|
||||||
local yanked = file:is_yanked()
|
local yanked = file:is_yanked()
|
||||||
if yanked ~= 0 then
|
if yanked ~= 0 then
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ function Parent:render(area)
|
||||||
|
|
||||||
local items, markers = {}, {}
|
local items, markers = {}, {}
|
||||||
for i, f in ipairs(folder.window) do
|
for i, f in ipairs(folder.window) do
|
||||||
local style = f:style()
|
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
|
||||||
:style(f:is_hovered() and style:patch(THEME.manager.hovered) or style)
|
|
||||||
|
|
||||||
-- Yanked/marked/selected files
|
-- Yanked/marked/selected files
|
||||||
local marker = File:marker(f)
|
local marker = File:marker(f)
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,7 @@ function M:peek()
|
||||||
|
|
||||||
local items, markers = {}, {}
|
local items, markers = {}, {}
|
||||||
for i, f in ipairs(folder.window) do
|
for i, f in ipairs(folder.window) do
|
||||||
local style = f:style()
|
items[#items + 1] = ui.ListItem(ui.Line(File:full(f))):style(File:style(f))
|
||||||
items[#items + 1] = ui.ListItem(ui.Line(File:full(f)))
|
|
||||||
:style(f:is_hovered() and style:patch(THEME.manager.preview_hovered) or style)
|
|
||||||
|
|
||||||
-- Yanked/marked/selected files
|
-- Yanked/marked/selected files
|
||||||
local marker = File:marker(f)
|
local marker = File:marker(f)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue