mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
move as_bytes to inner scope
This commit is contained in:
parent
740e679b13
commit
fc4a6e8693
2 changed files with 25 additions and 20 deletions
|
|
@ -1,7 +1,13 @@
|
||||||
use core::files::File;
|
use core::files::File;
|
||||||
|
|
||||||
use config::{MANAGER, THEME};
|
use config::{MANAGER, THEME};
|
||||||
use ratatui::{buffer::Buffer, layout::Rect, style::{Color, Modifier, Style}, text::{Line, Span}, widgets::{List, ListItem, Widget}};
|
use ratatui::{
|
||||||
|
buffer::Buffer,
|
||||||
|
layout::Rect,
|
||||||
|
style::{Color, Modifier, Style},
|
||||||
|
text::{Line, Span},
|
||||||
|
widgets::{List, ListItem, Widget},
|
||||||
|
};
|
||||||
use shared::short_path;
|
use shared::short_path;
|
||||||
|
|
||||||
use crate::Ctx;
|
use crate::Ctx;
|
||||||
|
|
@ -65,13 +71,7 @@ impl<'a> Folder<'a> {
|
||||||
|
|
||||||
let v = self.is_find.then_some(()).and_then(|_| {
|
let v = self.is_find.then_some(()).and_then(|_| {
|
||||||
let finder = self.cx.manager.active().finder()?;
|
let finder = self.cx.manager.active().finder()?;
|
||||||
#[cfg(target_os = "windows")]
|
let (head, body, tail) = finder.explode(short.name.to_string_lossy())?;
|
||||||
let (head, body, tail) = finder.explode(short.name.to_string_lossy().as_bytes())?;
|
|
||||||
#[cfg(not(target_os = "windows"))]
|
|
||||||
let (head, body, tail) = {
|
|
||||||
use std::os::unix::ffi::OsStrExt;
|
|
||||||
finder.explode(short.name.as_bytes())?
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: to be configured by THEME?
|
// TODO: to be configured by THEME?
|
||||||
let style = Style::new().fg(Color::Rgb(255, 255, 50)).add_modifier(Modifier::ITALIC);
|
let style = Style::new().fg(Color::Rgb(255, 255, 50)).add_modifier(Modifier::ITALIC);
|
||||||
|
|
|
||||||
|
|
@ -111,22 +111,27 @@ impl Finder {
|
||||||
|
|
||||||
/// Explode the name into three parts: head, body, tail.
|
/// Explode the name into three parts: head, body, tail.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn explode<'a>(&self, name: &[u8]) -> Option<(String, String, String)> {
|
pub fn explode<'a>(&self, name: Cow<'a, str>) -> Option<(String, String, String)> {
|
||||||
let range = self.query.find(name).map(|m| m.range())?;
|
let b = name.as_bytes();
|
||||||
|
let range = self.query.find(b).map(|m| m.range())?;
|
||||||
Some((
|
Some((
|
||||||
String::from_utf8_lossy(&name[..range.start]).to_string(),
|
String::from_utf8_lossy(&b[..range.start]).to_string(),
|
||||||
String::from_utf8_lossy(&name[range.start..range.end]).to_string(),
|
String::from_utf8_lossy(&b[range.start..range.end]).to_string(),
|
||||||
String::from_utf8_lossy(&name[range.end..]).to_string(),
|
String::from_utf8_lossy(&b[range.end..]).to_string(),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Finder {
|
impl Finder {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn matched(&self) -> &BTreeMap<Url, u8> { &self.matched }
|
pub fn matched(&self) -> &BTreeMap<Url, u8> {
|
||||||
|
&self.matched
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn has_matched(&self) -> bool { !self.matched.is_empty() }
|
pub fn has_matched(&self) -> bool {
|
||||||
|
!self.matched.is_empty()
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn matched_idx(&self, url: &Url) -> Option<u8> {
|
pub fn matched_idx(&self, url: &Url) -> Option<u8> {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue