mirror of
https://github.com/sxyazi/yazi.git
synced 2026-05-13 08:16:40 +00:00
fix: warnings should be output to stderr instead of stdout (#1669)
This commit is contained in:
parent
1a1820cf77
commit
631afd09ee
143 changed files with 266 additions and 280 deletions
114
Cargo.lock
generated
114
Cargo.lock
generated
|
|
@ -4,9 +4,9 @@ version = 3
|
|||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
version = "0.22.0"
|
||||
version = "0.24.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
|
||||
checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
|
||||
dependencies = [
|
||||
"gimli",
|
||||
]
|
||||
|
|
@ -135,9 +135,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.88"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356"
|
||||
checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
|
||||
|
||||
[[package]]
|
||||
name = "arbitrary"
|
||||
|
|
@ -208,17 +208,17 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "backtrace"
|
||||
version = "0.3.73"
|
||||
version = "0.3.74"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
|
||||
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
|
||||
dependencies = [
|
||||
"addr2line",
|
||||
"cc",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"miniz_oxide 0.7.4",
|
||||
"miniz_oxide 0.8.0",
|
||||
"object",
|
||||
"rustc-demangle",
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -330,9 +330,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
|
|||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
version = "1.7.1"
|
||||
version = "1.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
|
||||
checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
|
||||
|
||||
[[package]]
|
||||
name = "cassowary"
|
||||
|
|
@ -351,9 +351,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.17"
|
||||
version = "1.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a93fe60e2fc87b6ba2c117f67ae14f66e3fc7d6a1e612a25adb238cc980eadb3"
|
||||
checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0"
|
||||
dependencies = [
|
||||
"jobserver",
|
||||
"libc",
|
||||
|
|
@ -390,9 +390,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.17"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
|
||||
checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
|
|
@ -400,9 +400,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.17"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73"
|
||||
checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
|
|
@ -412,9 +412,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_complete"
|
||||
version = "4.5.26"
|
||||
version = "4.5.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "205d5ef6d485fa47606b98b0ddc4ead26eb850aaa86abfb562a94fb3280ecba0"
|
||||
checksum = "8937760c3f4c60871870b8c3ee5f9b30771f792a7045c48bcbba999d7d6b3b8e"
|
||||
dependencies = [
|
||||
"clap",
|
||||
]
|
||||
|
|
@ -441,9 +441,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.13"
|
||||
version = "4.5.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
|
||||
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
|
|
@ -752,9 +752,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "error-code"
|
||||
version = "3.2.0"
|
||||
version = "3.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
|
||||
checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f"
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
|
|
@ -978,18 +978,6 @@ dependencies = [
|
|||
"wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getset"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9"
|
||||
dependencies = [
|
||||
"proc-macro-error",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gif"
|
||||
version = "0.13.1"
|
||||
|
|
@ -1002,9 +990,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "gimli"
|
||||
version = "0.29.0"
|
||||
version = "0.31.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
|
||||
checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
|
||||
|
||||
[[package]]
|
||||
name = "globset"
|
||||
|
|
@ -1062,9 +1050,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.60"
|
||||
version = "0.1.61"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
|
||||
checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"core-foundation-sys",
|
||||
|
|
@ -1482,9 +1470,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "mlua-sys"
|
||||
version = "0.6.2"
|
||||
version = "0.6.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ab7a5b4756b8177a2dfa8e0bbcde63bd4000afbc4ab20cbb68d114a25470f29"
|
||||
checksum = "ebe026d6bd1583a9cf9080e189030ddaea7e6f5f0deb366a8e26f8a26c4135b8"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cfg-if",
|
||||
|
|
@ -1733,9 +1721,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
|||
|
||||
[[package]]
|
||||
name = "parking"
|
||||
version = "2.2.0"
|
||||
version = "2.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
|
||||
checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
|
|
@ -2038,9 +2026,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.5.3"
|
||||
version = "0.5.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
|
||||
checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
]
|
||||
|
|
@ -2108,9 +2096,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
|
|||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.38.36"
|
||||
version = "0.38.37"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36"
|
||||
checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"errno",
|
||||
|
|
@ -2356,7 +2344,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
|
|
@ -2597,9 +2584,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.22.20"
|
||||
version = "0.22.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
|
||||
checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"serde",
|
||||
|
|
@ -2714,24 +2701,24 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
|
|||
|
||||
[[package]]
|
||||
name = "unicode-ident"
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-normalization"
|
||||
version = "0.1.23"
|
||||
version = "0.1.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
|
||||
checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
|
||||
dependencies = [
|
||||
"tinyvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unicode-segmentation"
|
||||
version = "1.11.0"
|
||||
version = "1.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
|
||||
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
||||
|
||||
[[package]]
|
||||
name = "unicode-truncate"
|
||||
|
|
@ -2746,9 +2733,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.1.13"
|
||||
version = "0.1.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
|
||||
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
|
|
@ -2832,9 +2819,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
|||
|
||||
[[package]]
|
||||
name = "vergen"
|
||||
version = "9.0.0"
|
||||
version = "9.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c32e7318e93a9ac53693b6caccfb05ff22e04a44c7cf8a279051f24c09da286f"
|
||||
checksum = "349ed9e45296a581f455bc18039878f409992999bc1d5da12a6800eb18c8752f"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"derive_builder",
|
||||
|
|
@ -2845,9 +2832,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "vergen-gitcl"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3bbdc9746577cb4767f218d320ee0b623d415e8130332f8f562b910b61cc2c4e"
|
||||
checksum = "2a3a7f91caabecefc3c249fd864b11d4abe315c166fbdb568964421bccfd2b7a"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"derive_builder",
|
||||
|
|
@ -2859,13 +2846,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "vergen-lib"
|
||||
version = "0.1.3"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e06bee42361e43b60f363bad49d63798d0f42fb1768091812270eca00c784720"
|
||||
checksum = "229eaddb0050920816cf051e619affaf18caa3dd512de8de5839ccbc8e53abb0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"derive_builder",
|
||||
"getset",
|
||||
"rustversion",
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ strip = true
|
|||
|
||||
[workspace.dependencies]
|
||||
ansi-to-tui = "6.0.0"
|
||||
anyhow = "1.0.88"
|
||||
anyhow = "1.0.89"
|
||||
arc-swap = "1.7.1"
|
||||
base64 = "0.22.1"
|
||||
bitflags = "2.6.0"
|
||||
clap = { version = "4.5.17", features = [ "derive" ] }
|
||||
clap = { version = "4.5.18", features = [ "derive" ] }
|
||||
crossterm = { version = "0.28.1", features = [ "event-stream" ] }
|
||||
dirs = "5.0.1"
|
||||
futures = "0.3.30"
|
||||
|
|
@ -34,5 +34,5 @@ tokio = { version = "1.40.0", features = [ "full" ] }
|
|||
tokio-stream = "0.1.16"
|
||||
tokio-util = "0.7.12"
|
||||
tracing = { version = "0.1.40", features = [ "max_level_debug", "release_max_level_warn" ] }
|
||||
unicode-width = "0.1.13"
|
||||
unicode-width = "0.1.14"
|
||||
uzers = "0.12.1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
color = "Never"
|
||||
condense_wildcard_suffixes = true
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
enum_discrim_align_threshold = 99
|
||||
fn_single_line = true
|
||||
format_code_in_doc_comments = false
|
||||
|
|
@ -10,7 +10,7 @@ format_macro_bodies = true
|
|||
format_strings = false
|
||||
hard_tabs = true
|
||||
hex_literal_case = "Lower"
|
||||
hide_parse_errors = true
|
||||
show_parse_errors = false
|
||||
imports_indent = "Visual"
|
||||
imports_layout = "Horizontal"
|
||||
imports_granularity = "Crate"
|
||||
|
|
@ -27,5 +27,5 @@ unstable_features = true
|
|||
use_field_init_shorthand = true
|
||||
use_small_heuristics = "Max"
|
||||
use_try_shorthand = true
|
||||
version = "Two"
|
||||
style_edition = "2024"
|
||||
wrap_comments = true
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use tracing::warn;
|
|||
use yazi_shared::env_exists;
|
||||
|
||||
use super::{Iip, Kitty, KittyOld};
|
||||
use crate::{Chafa, Emulator, Sixel, Ueberzug, SHOWN, TMUX, WSL};
|
||||
use crate::{Chafa, Emulator, SHOWN, Sixel, TMUX, Ueberzug, WSL};
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
|
||||
pub enum Adapter {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{io::Write, path::Path, process::Stdio};
|
||||
|
||||
use ansi_to_tui::IntoText;
|
||||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use crossterm::{cursor::MoveTo, queue};
|
||||
use ratatui::layout::Rect;
|
||||
use tokio::process::Command;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
use std::{env, io::{stderr, LineWriter}, time::Duration};
|
||||
use std::{env, io::{LineWriter, stderr}, time::Duration};
|
||||
|
||||
use anyhow::{anyhow, bail, Result};
|
||||
use anyhow::{Result, anyhow, bail};
|
||||
use crossterm::{cursor::{RestorePosition, SavePosition}, execute, style::Print, terminal::{disable_raw_mode, enable_raw_mode}};
|
||||
use scopeguard::defer;
|
||||
use tokio::{io::{AsyncReadExt, BufReader}, time::timeout};
|
||||
use tracing::{error, warn};
|
||||
use yazi_shared::env_exists;
|
||||
|
||||
use crate::{tcsi, Adapter, TMUX};
|
||||
use crate::{Adapter, TMUX, tcsi};
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum Emulator {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
use std::{fmt::Write, io::Write as ioWrite, path::Path};
|
||||
|
||||
use anyhow::Result;
|
||||
use base64::{engine::{general_purpose::STANDARD, Config}, Engine};
|
||||
use base64::{Engine, engine::{Config, general_purpose::STANDARD}};
|
||||
use crossterm::{cursor::MoveTo, queue};
|
||||
use image::{codecs::{jpeg::JpegEncoder, png::PngEncoder}, DynamicImage, ExtendedColorType, ImageEncoder};
|
||||
use image::{DynamicImage, ExtendedColorType, ImageEncoder, codecs::{jpeg::JpegEncoder, png::PngEncoder}};
|
||||
use ratatui::layout::Rect;
|
||||
use yazi_config::PREVIEW;
|
||||
|
||||
use super::image::Image;
|
||||
use crate::{adapter::Adapter, Emulator, CLOSE, START};
|
||||
use crate::{CLOSE, Emulator, START, adapter::Adapter};
|
||||
|
||||
pub(super) struct Iip;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::{fs::File, io::BufReader, path::{Path, PathBuf}};
|
|||
|
||||
use anyhow::Result;
|
||||
use exif::{In, Tag};
|
||||
use image::{codecs::{jpeg::JpegEncoder, png::PngEncoder}, imageops::{self, FilterType}, DynamicImage, ExtendedColorType, ImageEncoder, ImageError, Limits};
|
||||
use image::{DynamicImage, ExtendedColorType, ImageEncoder, ImageError, Limits, codecs::{jpeg::JpegEncoder, png::PngEncoder}, imageops::{self, FilterType}};
|
||||
use ratatui::layout::Rect;
|
||||
use yazi_config::{PREVIEW, TASKS};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ use core::str;
|
|||
use std::{io::Write, path::Path};
|
||||
|
||||
use anyhow::Result;
|
||||
use base64::{engine::general_purpose, Engine};
|
||||
use base64::{Engine, engine::general_purpose};
|
||||
use crossterm::{cursor::MoveTo, queue};
|
||||
use image::DynamicImage;
|
||||
use ratatui::layout::Rect;
|
||||
|
||||
use super::image::Image;
|
||||
use crate::{adapter::Adapter, Emulator, CLOSE, ESCAPE, START};
|
||||
use crate::{CLOSE, ESCAPE, Emulator, START, adapter::Adapter};
|
||||
|
||||
static DIACRITICS: [char; 297] = [
|
||||
'\u{0305}',
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
use core::str;
|
||||
use std::{io::{stderr, LineWriter, Write}, path::Path};
|
||||
use std::{io::{LineWriter, Write, stderr}, path::Path};
|
||||
|
||||
use anyhow::Result;
|
||||
use base64::{engine::general_purpose, Engine};
|
||||
use base64::{Engine, engine::general_purpose};
|
||||
use image::DynamicImage;
|
||||
use ratatui::layout::Rect;
|
||||
|
||||
use super::image::Image;
|
||||
use crate::{adapter::Adapter, Emulator, CLOSE, ESCAPE, START};
|
||||
use crate::{CLOSE, ESCAPE, Emulator, START, adapter::Adapter};
|
||||
|
||||
pub(super) struct KittyOld;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ use kitty::*;
|
|||
use kitty_old::*;
|
||||
use sixel::*;
|
||||
use ueberzug::*;
|
||||
use yazi_shared::{env_exists, in_wsl, RoCell};
|
||||
use yazi_shared::{RoCell, env_exists, in_wsl};
|
||||
|
||||
pub use crate::image::*;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
use std::{io::Write, path::Path};
|
||||
|
||||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use color_quant::NeuQuant;
|
||||
use crossterm::{cursor::MoveTo, queue};
|
||||
use image::DynamicImage;
|
||||
use ratatui::layout::Rect;
|
||||
use yazi_config::PREVIEW;
|
||||
|
||||
use crate::{adapter::Adapter, Emulator, Image, CLOSE, ESCAPE, START};
|
||||
use crate::{CLOSE, ESCAPE, Emulator, Image, START, adapter::Adapter};
|
||||
|
||||
pub(super) struct Sixel;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
use std::{path::{Path, PathBuf}, process::Stdio};
|
||||
|
||||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use imagesize::ImageSize;
|
||||
use ratatui::layout::Rect;
|
||||
use tokio::{io::AsyncWriteExt, process::{Child, Command}, sync::mpsc::{self, UnboundedSender}};
|
||||
use tracing::{debug, warn};
|
||||
use yazi_config::PREVIEW;
|
||||
use yazi_shared::{env_exists, RoCell};
|
||||
use yazi_shared::{RoCell, env_exists};
|
||||
|
||||
use crate::{Adapter, Dimension};
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ serde = { workspace = true }
|
|||
|
||||
[build-dependencies]
|
||||
clap = { workspace = true }
|
||||
clap_complete = "4.5.26"
|
||||
clap_complete = "4.5.29"
|
||||
clap_complete_fig = "4.5.2"
|
||||
clap_complete_nushell = "4.5.3"
|
||||
vergen-gitcl = { version = "1.0.0", features = [ "build" ] }
|
||||
vergen-gitcl = { version = "1.0.1", features = [ "build" ] }
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mod args;
|
|||
use std::{env, error::Error};
|
||||
|
||||
use clap::CommandFactory;
|
||||
use clap_complete::{generate_to, Shell};
|
||||
use clap_complete::{Shell, generate_to};
|
||||
use vergen_gitcl::{BuildBuilder, Emitter, GitclBuilder};
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use clap::{command, Parser};
|
||||
use clap::{Parser, command};
|
||||
|
||||
#[derive(Debug, Default, Parser)]
|
||||
#[command(name = "yazi")]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{collections::HashSet, ffi::OsString, path::PathBuf};
|
||||
|
||||
use serde::Serialize;
|
||||
use yazi_shared::{fs::{current_cwd, expand_path}, Xdg};
|
||||
use yazi_shared::{Xdg, fs::{current_cwd, expand_path}};
|
||||
|
||||
#[derive(Debug, Default, Serialize)]
|
||||
pub struct Boot {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ crossterm = { workspace = true }
|
|||
md-5 = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
toml_edit = "0.22.20"
|
||||
toml_edit = "0.22.21"
|
||||
|
||||
[build-dependencies]
|
||||
yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
|
||||
|
|
@ -28,11 +28,11 @@ yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
|
|||
# External build dependencies
|
||||
anyhow = { workspace = true }
|
||||
clap = { workspace = true }
|
||||
clap_complete = "4.5.26"
|
||||
clap_complete = "4.5.29"
|
||||
clap_complete_fig = "4.5.2"
|
||||
clap_complete_nushell = "4.5.3"
|
||||
serde_json = { workspace = true }
|
||||
vergen-gitcl = { version = "1.0.0", features = [ "build" ] }
|
||||
vergen-gitcl = { version = "1.0.1", features = [ "build" ] }
|
||||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
crossterm = { workspace = true, features = [ "use-dev-tty", "libc" ] }
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ mod args;
|
|||
use std::{env, error::Error};
|
||||
|
||||
use clap::CommandFactory;
|
||||
use clap_complete::{generate_to, Shell};
|
||||
use clap_complete::{Shell, generate_to};
|
||||
use vergen_gitcl::{BuildBuilder, Emitter, GitclBuilder};
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::borrow::Cow;
|
||||
|
||||
use anyhow::{bail, Result};
|
||||
use clap::{command, Parser, Subcommand};
|
||||
use anyhow::{Result, bail};
|
||||
use clap::{Parser, Subcommand, command};
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(name = "Ya", about, long_about = None)]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use anyhow::{bail, Context, Result};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use tokio::fs;
|
||||
use yazi_shared::{fs::{maybe_exists, must_exists}, Xdg};
|
||||
use yazi_shared::{Xdg, fs::{maybe_exists, must_exists}};
|
||||
|
||||
use super::Package;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::path::Path;
|
||||
|
||||
use anyhow::{bail, Context, Result};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use tokio::process::Command;
|
||||
use yazi_shared::strip_trailing_newline;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use anyhow::{bail, Context, Result};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use tokio::fs;
|
||||
use toml_edit::{Array, DocumentMut, InlineTable, Item, Value};
|
||||
use yazi_shared::Xdg;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{fmt, str::FromStr};
|
||||
|
||||
use anyhow::Result;
|
||||
use serde::{de::{self, Visitor}, Deserializer};
|
||||
use serde::{Deserializer, de::{self, Visitor}};
|
||||
use yazi_shared::event::Cmd;
|
||||
|
||||
use crate::keymap::Key;
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ Please replace e.g. `shell` with `shell --interactive`, `shell "my-template"` wi
|
|||
|
||||
// TODO: Remove in v0.3.6
|
||||
if matches!(INPUT.create_title, popup::InputCreateTitle::One(_)) {
|
||||
println!(
|
||||
eprintln!(
|
||||
r#"WARNING: The `create_title` under `[input]` now accepts an array instead of a string to support different titles for `create` and `create --dir` command.
|
||||
|
||||
Please change `create_title = "Create:"` to `create_title = ["Create:", "Create (dir):"]` in your yazi.toml.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use bitflags::bitflags;
|
||||
use crossterm::event::MouseEventKind;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use serde::{Deserialize, Deserializer};
|
|||
use yazi_shared::MIME_DIR;
|
||||
|
||||
use super::Opener;
|
||||
use crate::{open::OpenRule, Preset};
|
||||
use crate::{Preset, open::OpenRule};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Open {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::fmt;
|
||||
|
||||
use serde::{de::{self, Visitor}, Deserialize, Deserializer};
|
||||
use serde::{Deserialize, Deserializer, de::{self, Visitor}};
|
||||
|
||||
use crate::pattern::Pattern;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::path::Path;
|
||||
|
||||
use serde::Deserialize;
|
||||
use yazi_shared::{event::Cmd, Condition, MIME_DIR};
|
||||
use yazi_shared::{Condition, MIME_DIR, event::Cmd};
|
||||
|
||||
use crate::{Pattern, Priority};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use std::{collections::HashSet, path::Path, str::FromStr};
|
|||
use serde::Deserialize;
|
||||
|
||||
use super::{Fetcher, Preloader, Previewer};
|
||||
use crate::{plugin::MAX_PREWORKERS, Preset};
|
||||
use crate::{Preset, plugin::MAX_PREWORKERS};
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct Plugin {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::path::Path;
|
||||
|
||||
use serde::Deserialize;
|
||||
use yazi_shared::{event::Cmd, MIME_DIR};
|
||||
use yazi_shared::{MIME_DIR, event::Cmd};
|
||||
|
||||
use crate::{Pattern, Priority};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::path::Path;
|
||||
|
||||
use serde::Deserialize;
|
||||
use yazi_shared::{event::Cmd, MIME_DIR};
|
||||
use yazi_shared::{MIME_DIR, event::Cmd};
|
||||
|
||||
use crate::Pattern;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::{borrow::Cow, path::{Path, PathBuf}};
|
||||
|
||||
use anyhow::{anyhow, Context, Result};
|
||||
use anyhow::{Context, Result, anyhow};
|
||||
use toml::{Table, Value};
|
||||
|
||||
use crate::{preset, theme::Flavor};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::collections::HashMap;
|
|||
|
||||
use anyhow::Result;
|
||||
use serde::{Deserialize, Deserializer};
|
||||
use yazi_shared::{fs::File, theme::{Color, Icon, Style}, Condition};
|
||||
use yazi_shared::{Condition, fs::File, theme::{Color, Icon, Style}};
|
||||
|
||||
use crate::{Pattern, Preset};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::{path::PathBuf, str::FromStr};
|
|||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use validator::Validate;
|
||||
use yazi_shared::{fs::expand_path, theme::Style, Xdg};
|
||||
use yazi_shared::{Xdg, fs::expand_path, theme::Style};
|
||||
|
||||
use super::{Filetype, Flavor, Icons};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{borrow::Cow, mem, path::{MAIN_SEPARATOR, MAIN_SEPARATOR_STR}};
|
||||
|
||||
use tokio::fs;
|
||||
use yazi_shared::{emit, event::{Cmd, Data}, render, Layer};
|
||||
use yazi_shared::{Layer, emit, event::{Cmd, Data}, render};
|
||||
|
||||
use crate::completion::Completion;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
use crossterm::event::KeyCode;
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
use yazi_adapter::Dimension;
|
||||
use yazi_config::{keymap::{Chord, Key}, KEYMAP};
|
||||
use yazi_shared::{render, render_and, Layer};
|
||||
use yazi_config::{KEYMAP, keymap::{Chord, Key}};
|
||||
use yazi_shared::{Layer, render, render_and};
|
||||
|
||||
use super::HELP_MARGIN;
|
||||
use crate::input::Input;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use yazi_shared::{event::Cmd, CharKind};
|
||||
use yazi_shared::{CharKind, event::Cmd};
|
||||
|
||||
use crate::input::Input;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use yazi_proxy::CompletionProxy;
|
||||
use yazi_shared::{event::Cmd, render, InputError};
|
||||
use yazi_shared::{InputError, event::Cmd, render};
|
||||
|
||||
use crate::input::Input;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input};
|
||||
use crate::input::{Input, op::InputOp};
|
||||
|
||||
pub struct Opt {
|
||||
cut: bool,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use yazi_proxy::CompletionProxy;
|
||||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input, InputMode};
|
||||
use crate::input::{Input, InputMode, op::InputOp};
|
||||
|
||||
pub struct Opt;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::{event::Cmd, CharKind};
|
||||
use yazi_shared::{CharKind, event::Cmd};
|
||||
|
||||
use crate::input::{op::InputOp, Input};
|
||||
use crate::input::{Input, op::InputOp};
|
||||
|
||||
pub struct Opt {
|
||||
end_of_word: bool,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input, InputMode};
|
||||
use crate::input::{Input, InputMode, op::InputOp};
|
||||
|
||||
pub struct Opt {
|
||||
append: bool,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::ops::RangeBounds;
|
||||
|
||||
use yazi_shared::{event::Cmd, render, CharKind};
|
||||
use yazi_shared::{CharKind, event::Cmd, render};
|
||||
|
||||
use crate::input::Input;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use unicode_width::UnicodeWidthStr;
|
||||
use yazi_shared::{event::{Cmd, Data}, render};
|
||||
|
||||
use crate::input::{op::InputOp, snap::InputSnap, Input};
|
||||
use crate::input::{Input, op::InputOp, snap::InputSnap};
|
||||
|
||||
pub struct Opt {
|
||||
step: isize,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use yazi_plugin::CLIPBOARD;
|
||||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input};
|
||||
use crate::input::{Input, op::InputOp};
|
||||
|
||||
pub struct Opt {
|
||||
before: bool,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use tokio::sync::mpsc;
|
||||
use yazi_config::popup::InputCfg;
|
||||
use yazi_shared::{event::Cmd, render, InputError};
|
||||
use yazi_shared::{InputError, event::Cmd, render};
|
||||
|
||||
use crate::input::Input;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input, InputMode};
|
||||
use crate::input::{Input, InputMode, op::InputOp};
|
||||
|
||||
impl Input {
|
||||
#[inline]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::{event::Cmd, render};
|
||||
|
||||
use crate::input::{op::InputOp, Input};
|
||||
use crate::input::{Input, op::InputOp};
|
||||
|
||||
impl Input {
|
||||
pub fn yank(&mut self, _: Cmd) {
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ use std::ops::Range;
|
|||
|
||||
use tokio::sync::mpsc::UnboundedSender;
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
use yazi_config::{popup::Position, INPUT};
|
||||
use yazi_config::{INPUT, popup::Position};
|
||||
use yazi_plugin::CLIPBOARD;
|
||||
use yazi_shared::{render, InputError};
|
||||
use yazi_shared::{InputError, render};
|
||||
|
||||
use super::{mode::InputMode, op::InputOp, InputSnap, InputSnaps};
|
||||
use super::{InputSnap, InputSnaps, mode::InputMode, op::InputOp};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Input {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
use std::{borrow::Cow, collections::HashMap, ffi::{OsStr, OsString}, io::{stderr, BufWriter, Write}, path::PathBuf};
|
||||
use std::{borrow::Cow, collections::HashMap, ffi::{OsStr, OsString}, io::{BufWriter, Write, stderr}, path::PathBuf};
|
||||
|
||||
use anyhow::{anyhow, Result};
|
||||
use anyhow::{Result, anyhow};
|
||||
use scopeguard::defer;
|
||||
use tokio::{fs::{self, OpenOptions}, io::{stdin, AsyncReadExt, AsyncWriteExt}};
|
||||
use tokio::{fs::{self, OpenOptions}, io::{AsyncReadExt, AsyncWriteExt, stdin}};
|
||||
use yazi_config::{OPEN, PREVIEW};
|
||||
use yazi_dds::Pubsub;
|
||||
use yazi_proxy::{AppProxy, TasksProxy, HIDER, WATCHER};
|
||||
use yazi_shared::{fs::{max_common_root, maybe_exists, paths_to_same_file, File, Url}, terminal_clear};
|
||||
use yazi_proxy::{AppProxy, HIDER, TasksProxy, WATCHER};
|
||||
use yazi_shared::{fs::{File, Url, max_common_root, maybe_exists, paths_to_same_file}, terminal_clear};
|
||||
|
||||
use crate::manager::Manager;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use anyhow::Result;
|
|||
use tokio::fs;
|
||||
use yazi_config::popup::{ConfirmCfg, InputCfg};
|
||||
use yazi_proxy::{ConfirmProxy, InputProxy, TabProxy, WATCHER};
|
||||
use yazi_shared::{event::Cmd, fs::{maybe_exists, ok_or_not_found, realname, File, FilesOp, Url, UrnBuf}};
|
||||
use yazi_shared::{event::Cmd, fs::{File, FilesOp, Url, UrnBuf, maybe_exists, ok_or_not_found, realname}};
|
||||
|
||||
use crate::manager::Manager;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ use std::{borrow::Cow, ffi::OsString};
|
|||
|
||||
use tracing::error;
|
||||
use yazi_boot::ARGS;
|
||||
use yazi_config::{popup::SelectCfg, OPEN};
|
||||
use yazi_config::{OPEN, popup::SelectCfg};
|
||||
use yazi_fs::Folder;
|
||||
use yazi_plugin::isolate;
|
||||
use yazi_proxy::{options::OpenDoOpt, ManagerProxy, TasksProxy};
|
||||
use yazi_shared::{emit, event::{Cmd, EventQuit}, fs::{File, Url}, MIME_DIR};
|
||||
use yazi_proxy::{ManagerProxy, TasksProxy, options::OpenDoOpt};
|
||||
use yazi_shared::{MIME_DIR, emit, event::{Cmd, EventQuit}, fs::{File, Url}};
|
||||
|
||||
use crate::{manager::Manager, tasks::Tasks};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use tokio::fs;
|
|||
use yazi_config::popup::{ConfirmCfg, InputCfg};
|
||||
use yazi_dds::Pubsub;
|
||||
use yazi_proxy::{ConfirmProxy, InputProxy, TabProxy, WATCHER};
|
||||
use yazi_shared::{event::Cmd, fs::{maybe_exists, ok_or_not_found, paths_to_same_file, realname, File, FilesOp, Url, UrnBuf}};
|
||||
use yazi_shared::{event::Cmd, fs::{File, FilesOp, Url, UrnBuf, maybe_exists, ok_or_not_found, paths_to_same_file, realname}};
|
||||
|
||||
use crate::manager::Manager;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_config::PLUGIN;
|
||||
use yazi_plugin::isolate;
|
||||
use yazi_shared::{event::{Cmd, Data}, render, MIME_DIR};
|
||||
use yazi_shared::{MIME_DIR, event::{Cmd, Data}, render};
|
||||
|
||||
use crate::manager::Manager;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use yazi_fs::Folder;
|
|||
use yazi_proxy::ManagerProxy;
|
||||
use yazi_shared::{event::Cmd, fs::FilesOp, render};
|
||||
|
||||
use crate::{manager::{Manager, LINKED}, tab::Tab, tasks::Tasks};
|
||||
use crate::{manager::{LINKED, Manager}, tab::Tab, tasks::Tasks};
|
||||
|
||||
pub struct Opt {
|
||||
op: FilesOp,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use std::collections::HashMap;
|
|||
use tracing::error;
|
||||
use yazi_shared::{event::Cmd, fs::Url, render};
|
||||
|
||||
use crate::{manager::{Manager, LINKED}, tasks::Tasks};
|
||||
use crate::{manager::{LINKED, Manager}, tasks::Tasks};
|
||||
|
||||
pub struct Opt {
|
||||
updates: HashMap<String, String>,
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ use anyhow::Result;
|
|||
use notify::{PollWatcher, RecommendedWatcher, RecursiveMode, Watcher as _Watcher};
|
||||
use parking_lot::RwLock;
|
||||
use tokio::{fs, pin, sync::{mpsc::{self, UnboundedReceiver}, watch}};
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use tracing::error;
|
||||
use yazi_fs::{Files, Folder};
|
||||
use yazi_plugin::isolate;
|
||||
use yazi_proxy::WATCHER;
|
||||
use yazi_shared::{fs::{realname_unchecked, Cha, File, FilesOp, Url}, RoCell};
|
||||
use yazi_shared::{RoCell, fs::{Cha, File, FilesOp, Url, realname_unchecked}};
|
||||
|
||||
use super::Linked;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::time::Instant;
|
||||
|
||||
use yazi_shared::{emit, event::Cmd, Layer};
|
||||
use yazi_shared::{Layer, emit, event::Cmd};
|
||||
|
||||
use crate::notify::{Message, Notify};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use ratatui::layout::Rect;
|
||||
use yazi_shared::{emit, event::{Cmd, Data}, Layer};
|
||||
use yazi_shared::{Layer, emit, event::{Cmd, Data}};
|
||||
|
||||
use crate::notify::Notify;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use anyhow::Result;
|
||||
use tokio::sync::oneshot::Sender;
|
||||
use yazi_config::{popup::Position, SELECT};
|
||||
use yazi_config::{SELECT, popup::Position};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Select {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
use std::{mem, time::Duration};
|
||||
|
||||
use tokio::{fs, pin};
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use yazi_config::popup::InputCfg;
|
||||
use yazi_dds::Pubsub;
|
||||
use yazi_proxy::{CompletionProxy, InputProxy, ManagerProxy, TabProxy};
|
||||
use yazi_shared::{event::{Cmd, Data}, fs::{expand_path, Url}, render, Debounce, InputError};
|
||||
use yazi_shared::{Debounce, InputError, event::{Cmd, Data}, fs::{Url, expand_path}, render};
|
||||
|
||||
use crate::tab::Tab;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use tokio::pin;
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use yazi_config::popup::InputCfg;
|
||||
use yazi_fs::{Filter, FilterCase};
|
||||
use yazi_proxy::{InputProxy, ManagerProxy};
|
||||
use yazi_shared::{emit, event::Cmd, render, Debounce, InputError, Layer};
|
||||
use yazi_shared::{Debounce, InputError, Layer, emit, event::Cmd, render};
|
||||
|
||||
use crate::tab::Tab;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use tokio::pin;
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use yazi_config::popup::InputCfg;
|
||||
use yazi_fs::FilterCase;
|
||||
use yazi_proxy::InputProxy;
|
||||
use yazi_shared::{emit, event::Cmd, render, Debounce, InputError, Layer};
|
||||
use yazi_shared::{Debounce, InputError, Layer, emit, event::Cmd, render};
|
||||
|
||||
use crate::tab::{Finder, Tab};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use yazi_proxy::ManagerProxy;
|
||||
use yazi_shared::{event::{Cmd, Data}, fs::{expand_path, File, FilesOp, Url}};
|
||||
use yazi_shared::{event::{Cmd, Data}, fs::{File, FilesOp, Url, expand_path}};
|
||||
|
||||
use crate::tab::Tab;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
use std::{mem, time::Duration};
|
||||
|
||||
use tokio::pin;
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use tracing::error;
|
||||
use yazi_config::popup::InputCfg;
|
||||
use yazi_plugin::external;
|
||||
use yazi_proxy::{options::{SearchOpt, SearchOptVia}, AppProxy, InputProxy, ManagerProxy, TabProxy};
|
||||
use yazi_proxy::{AppProxy, InputProxy, ManagerProxy, TabProxy, options::{SearchOpt, SearchOptVia}};
|
||||
use yazi_shared::fs::{Cha, FilesOp};
|
||||
|
||||
use crate::tab::Tab;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use yazi_config::{manager::SortBy, MANAGER};
|
||||
use yazi_config::{MANAGER, manager::SortBy};
|
||||
use yazi_fs::FilesSorter;
|
||||
|
||||
#[derive(Clone, PartialEq)]
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
use std::time::Duration;
|
||||
|
||||
use tokio::{pin, task::JoinHandle};
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use tokio_util::sync::CancellationToken;
|
||||
use yazi_adapter::ADAPTOR;
|
||||
use yazi_config::PLUGIN;
|
||||
use yazi_fs::Files;
|
||||
use yazi_plugin::{external::Highlighter, isolate, utils::PreviewLock};
|
||||
use yazi_shared::{fs::{Cha, File, FilesOp, Url}, MIME_DIR};
|
||||
use yazi_shared::{MIME_DIR, fs::{Cha, File, FilesOp, Url}};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Preview {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use anyhow::Result;
|
|||
use ratatui::layout::Rect;
|
||||
use tokio::task::JoinHandle;
|
||||
use yazi_adapter::Dimension;
|
||||
use yazi_config::{popup::{Origin, Position}, LAYOUT};
|
||||
use yazi_config::{LAYOUT, popup::{Origin, Position}};
|
||||
use yazi_fs::{Folder, FolderStage};
|
||||
use yazi_shared::{fs::Url, render};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
use std::{io::{stderr, BufWriter, LineWriter, Write}, mem};
|
||||
use std::{io::{BufWriter, LineWriter, Write, stderr}, mem};
|
||||
|
||||
use crossterm::terminal::{disable_raw_mode, enable_raw_mode};
|
||||
use scopeguard::defer;
|
||||
use tokio::{io::{stdin, AsyncReadExt}, select, sync::mpsc, time};
|
||||
use tokio::{io::{AsyncReadExt, stdin}, select, sync::mpsc, time};
|
||||
use yazi_proxy::{AppProxy, HIDER};
|
||||
use yazi_shared::{event::Cmd, terminal_clear};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_config::{manager::SortBy, plugin::MAX_PREWORKERS, PLUGIN};
|
||||
use yazi_config::{PLUGIN, manager::SortBy, plugin::MAX_PREWORKERS};
|
||||
use yazi_fs::Files;
|
||||
use yazi_shared::{fs::File, MIME_DIR};
|
||||
use yazi_shared::{MIME_DIR, fs::File};
|
||||
|
||||
use super::Tasks;
|
||||
use crate::manager::Mimetype;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::{borrow::Cow, collections::HashMap, ffi::OsString, mem};
|
||||
|
||||
use yazi_config::{open::Opener, OPEN};
|
||||
use yazi_config::{OPEN, open::Opener};
|
||||
use yazi_shared::fs::Url;
|
||||
|
||||
use super::Tasks;
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ use parking_lot::Mutex;
|
|||
use tokio::{task::JoinHandle, time::sleep};
|
||||
use yazi_adapter::Dimension;
|
||||
use yazi_scheduler::{Ongoing, Scheduler, TaskSummary};
|
||||
use yazi_shared::{emit, event::Cmd, Layer};
|
||||
use yazi_shared::{Layer, emit, event::Cmd};
|
||||
|
||||
use super::{TasksProgress, TASKS_BORDER, TASKS_PADDING, TASKS_PERCENT};
|
||||
use super::{TASKS_BORDER, TASKS_PADDING, TASKS_PERCENT, TasksProgress};
|
||||
|
||||
pub struct Tasks {
|
||||
pub(super) scheduler: Arc<Scheduler>,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::str::FromStr;
|
||||
|
||||
use yazi_config::{keymap::{Chord, Key}, KEYMAP};
|
||||
use yazi_shared::{event::Cmd, render, Layer};
|
||||
use yazi_config::{KEYMAP, keymap::{Chord, Key}};
|
||||
use yazi_shared::{Layer, event::Cmd, render};
|
||||
|
||||
use crate::which::{Which, WhichSorter};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{borrow::Cow, mem};
|
||||
|
||||
use yazi_config::{keymap::ChordCow, which::SortBy, WHICH};
|
||||
use yazi_shared::{natsort, Transliterator};
|
||||
use yazi_config::{WHICH, keymap::ChordCow, which::SortBy};
|
||||
use yazi_shared::{Transliterator, natsort};
|
||||
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
pub struct WhichSorter {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use yazi_config::keymap::{ChordCow, Key};
|
||||
use yazi_shared::{emit, render, render_and, Layer};
|
||||
use yazi_shared::{Layer, emit, render, render_and};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Which {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ tokio-util = { workspace = true }
|
|||
tracing = { workspace = true }
|
||||
|
||||
[build-dependencies]
|
||||
vergen-gitcl = { version = "1.0.0", features = [ "build" ] }
|
||||
vergen-gitcl = { version = "1.0.1", features = [ "build" ] }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
uzers = { workspace = true }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use mlua::{ExternalResult, IntoLua, Lua, Value};
|
||||
use serde::Serialize;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use std::{borrow::Cow, collections::{hash_map, HashMap}};
|
||||
use std::{borrow::Cow, collections::{HashMap, hash_map}};
|
||||
|
||||
use mlua::{AnyUserData, IntoLua, IntoLuaMulti, Lua, MetaMethod, UserData, UserDataRefMut, Value};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
use std::{collections::{HashMap, HashSet}, mem, str::FromStr};
|
||||
|
||||
use anyhow::{bail, Context, Result};
|
||||
use anyhow::{Context, Result, bail};
|
||||
use parking_lot::RwLock;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::{io::AsyncWriteExt, select, sync::mpsc, task::JoinHandle, time};
|
||||
use tracing::error;
|
||||
use yazi_shared::RoCell;
|
||||
|
||||
use crate::{body::{Body, BodyBye, BodyHi}, ClientReader, ClientWriter, Payload, Pubsub, Server, Stream};
|
||||
use crate::{ClientReader, ClientWriter, Payload, Pubsub, Server, Stream, body::{Body, BodyBye, BodyHi}};
|
||||
|
||||
pub(super) static ID: RoCell<u64> = RoCell::new();
|
||||
pub(super) static PEERS: RoCell<RwLock<HashMap<u64, Peer>>> = RoCell::new();
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
use std::{fmt::Display, io::Write, str::FromStr};
|
||||
|
||||
use anyhow::{anyhow, Result};
|
||||
use anyhow::{Result, anyhow};
|
||||
use yazi_boot::BOOT;
|
||||
use yazi_shared::{emit, event::Cmd, Layer};
|
||||
use yazi_shared::{Layer, emit, event::Cmd};
|
||||
|
||||
use crate::{body::Body, ID};
|
||||
use crate::{ID, body::Body};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Payload<'a> {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ use std::collections::{HashMap, HashSet};
|
|||
use mlua::Function;
|
||||
use parking_lot::RwLock;
|
||||
use yazi_boot::BOOT;
|
||||
use yazi_shared::{fs::Url, RoCell};
|
||||
use yazi_shared::{RoCell, fs::Url};
|
||||
|
||||
use crate::{body::{Body, BodyBulk, BodyCd, BodyDelete, BodyHi, BodyHover, BodyMove, BodyMoveItem, BodyRename, BodyTab, BodyTrash, BodyYank}, Client, ID, PEERS};
|
||||
use crate::{Client, ID, PEERS, body::{Body, BodyBulk, BodyCd, BodyDelete, BodyHi, BodyHover, BodyMove, BodyMoveItem, BodyRename, BodyTab, BodyTrash, BodyYank}};
|
||||
|
||||
pub static LOCAL: RoCell<RwLock<HashMap<String, HashMap<String, Function<'static>>>>> =
|
||||
RoCell::new();
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ use std::time::Duration;
|
|||
|
||||
use parking_lot::Mutex;
|
||||
use tokio::{pin, select, sync::mpsc};
|
||||
use tokio_stream::{wrappers::UnboundedReceiverStream, StreamExt};
|
||||
use tokio_stream::{StreamExt, wrappers::UnboundedReceiverStream};
|
||||
use tokio_util::sync::CancellationToken;
|
||||
use yazi_shared::{fs::Url, RoCell};
|
||||
use yazi_shared::{RoCell, fs::Url};
|
||||
|
||||
use crate::{body::BodyMoveItem, Pubsub};
|
||||
use crate::{Pubsub, body::BodyMoveItem};
|
||||
|
||||
static CT: RoCell<CancellationToken> = RoCell::new();
|
||||
static MOVE_TX: Mutex<Option<mpsc::UnboundedSender<BodyMoveItem>>> = Mutex::new(None);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use mlua::{ExternalError, Lua, MultiValue, Table, Value};
|
||||
use yazi_shared::{event::{Data, DataKey}, OrderedFloat};
|
||||
use yazi_shared::{OrderedFloat, event::{Data, DataKey}};
|
||||
|
||||
pub struct Sendable;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use parking_lot::RwLock;
|
|||
use tokio::{io::{AsyncBufReadExt, AsyncWriteExt, BufReader}, select, sync::mpsc::{self, UnboundedReceiver}, task::JoinHandle, time};
|
||||
use yazi_shared::RoCell;
|
||||
|
||||
use crate::{body::{Body, BodyBye, BodyHey}, Client, ClientWriter, Payload, Peer, Stream, STATE};
|
||||
use crate::{Client, ClientWriter, Payload, Peer, STATE, Stream, body::{Body, BodyBye, BodyHey}};
|
||||
|
||||
pub(super) static CLIENTS: RoCell<RwLock<HashMap<u64, Client>>> = RoCell::new();
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ use anyhow::Result;
|
|||
use parking_lot::RwLock;
|
||||
use tokio::{fs::{self, File, OpenOptions}, io::{AsyncBufReadExt, AsyncWriteExt, BufReader, BufWriter}};
|
||||
use yazi_boot::BOOT;
|
||||
use yazi_shared::{timestamp_us, RoCell};
|
||||
use yazi_shared::{RoCell, timestamp_us};
|
||||
|
||||
use crate::CLIENTS;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ use anyhow::Result;
|
|||
use crossterm::event::KeyEvent;
|
||||
use yazi_config::keymap::Key;
|
||||
use yazi_core::input::InputMode;
|
||||
use yazi_shared::{emit, event::{Cmd, Event, NEED_RENDER}, Layer};
|
||||
use yazi_shared::{Layer, emit, event::{Cmd, Event, NEED_RENDER}};
|
||||
|
||||
use crate::{lives::Lives, Ctx, Executor, Router, Signals, Term};
|
||||
use crate::{Ctx, Executor, Router, Signals, Term, lives::Lives};
|
||||
|
||||
pub(crate) struct App {
|
||||
pub(crate) cx: Ctx,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use mlua::IntoLua;
|
||||
use tracing::error;
|
||||
use yazi_dds::{Payload, LOCAL, REMOTE};
|
||||
use yazi_dds::{LOCAL, Payload, REMOTE};
|
||||
use yazi_plugin::LUA;
|
||||
use yazi_shared::event::Cmd;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use crossterm::event::{MouseEvent, MouseEventKind};
|
|||
use mlua::{Table, TableExt};
|
||||
use tracing::error;
|
||||
use yazi_config::MANAGER;
|
||||
use yazi_plugin::{bindings::Cast, LUA};
|
||||
use yazi_plugin::{LUA, bindings::Cast};
|
||||
|
||||
use crate::{app::App, lives::Lives};
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ use mlua::TableExt;
|
|||
use scopeguard::defer;
|
||||
use tracing::warn;
|
||||
use yazi_dds::Sendable;
|
||||
use yazi_plugin::{loader::LOADER, RtRef, LUA};
|
||||
use yazi_shared::{emit, event::Cmd, Layer};
|
||||
use yazi_plugin::{LUA, RtRef, loader::LOADER};
|
||||
use yazi_shared::{Layer, emit, event::Cmd};
|
||||
|
||||
use crate::{app::App, lives::Lives};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use std::ffi::OsString;
|
|||
use yazi_boot::ARGS;
|
||||
use yazi_shared::event::EventQuit;
|
||||
|
||||
use crate::{app::App, Term};
|
||||
use crate::{Term, app::App};
|
||||
|
||||
impl App {
|
||||
pub(crate) fn quit(&mut self, opt: EventQuit) -> ! {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::{io::{stderr, BufWriter}, sync::atomic::Ordering};
|
||||
use std::{io::{BufWriter, stderr}, sync::atomic::Ordering};
|
||||
|
||||
use crossterm::{execute, queue, terminal::{BeginSynchronizedUpdate, EndSynchronizedUpdate}};
|
||||
use ratatui::{backend::{Backend, CrosstermBackend}, buffer::Buffer, CompletedFrame};
|
||||
use ratatui::{CompletedFrame, backend::{Backend, CrosstermBackend}, buffer::Buffer};
|
||||
use scopeguard::defer;
|
||||
use yazi_plugin::elements::COLLISION;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use yazi_shared::event::Cmd;
|
||||
|
||||
use crate::{app::App, Term};
|
||||
use crate::{Term, app::App};
|
||||
|
||||
impl App {
|
||||
pub(crate) fn resume(&mut self, _: Cmd) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::path::MAIN_SEPARATOR;
|
|||
|
||||
use ratatui::{buffer::Buffer, layout::Rect, widgets::{Block, BorderType, List, ListItem, Widget}};
|
||||
use yazi_adapter::Dimension;
|
||||
use yazi_config::{popup::{Offset, Position}, THEME};
|
||||
use yazi_config::{THEME, popup::{Offset, Position}};
|
||||
|
||||
use crate::Ctx;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::mem;
|
|||
|
||||
use mlua::{AnyUserData, Table, TableExt};
|
||||
use tracing::error;
|
||||
use yazi_plugin::{cast_to_renderable, LUA};
|
||||
use yazi_plugin::{LUA, cast_to_renderable};
|
||||
|
||||
pub(crate) struct Progress;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use yazi_core::input::InputMode;
|
||||
use yazi_shared::{event::Cmd, Layer};
|
||||
use yazi_shared::{Layer, event::Cmd};
|
||||
|
||||
use crate::app::App;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::ops::Range;
|
||||
|
||||
use anyhow::{bail, Result};
|
||||
use anyhow::{Result, bail};
|
||||
use ratatui::{buffer::Buffer, layout::Rect, text::Line, widgets::{Block, BorderType, Paragraph, Widget}};
|
||||
use syntect::easy::HighlightLines;
|
||||
use yazi_config::{PREVIEW, THEME};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use std::{collections::{hash_map, HashMap}, ops::Deref};
|
||||
use std::{collections::{HashMap, hash_map}, ops::Deref};
|
||||
|
||||
use mlua::{AnyUserData, IntoLuaMulti, Lua, MetaMethod, UserDataMethods, UserDataRefMut};
|
||||
use yazi_plugin::{bindings::Cast, url::Url};
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ use std::ops::Deref;
|
|||
use mlua::{AnyUserData, Lua, UserDataFields, UserDataMethods};
|
||||
use yazi_plugin::url::UrlRef;
|
||||
|
||||
use super::{Config, Finder, Folder, Mode, Preview, Selected, SCOPE};
|
||||
use super::{Config, Finder, Folder, Mode, Preview, SCOPE, Selected};
|
||||
|
||||
pub(super) struct Tab {
|
||||
inner: *const yazi_core::tab::Tab,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use std::ops::Deref;
|
|||
|
||||
use mlua::{AnyUserData, Lua, MetaMethod, UserDataFields, UserDataMethods};
|
||||
|
||||
use super::{Tab, SCOPE};
|
||||
use super::{SCOPE, Tab};
|
||||
|
||||
pub(super) struct Tabs {
|
||||
inner: *const yazi_core::manager::Tabs,
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue