feat: add ctime linemode

This commit is contained in:
sxyazi 2024-07-14 14:59:57 +08:00
parent ab88588c0e
commit b78a8fad03
No known key found for this signature in database
4 changed files with 38 additions and 20 deletions

View file

@ -107,18 +107,18 @@ keymap = [
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
# Sorting
{ on = [ ",", "m" ], run = "sort modified --reverse=no", desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = "sort modified --reverse", desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = "sort created --reverse=no", desc = "Sort by created time" },
{ on = [ ",", "C" ], run = "sort created --reverse", desc = "Sort by created time (reverse)" },
{ on = [ ",", "m" ], run = [ "sort modified --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = [ "sort modified --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = [ "sort created --reverse=no", "linemode ctime" ], desc = "Sort by created time" },
{ on = [ ",", "C" ], run = [ "sort created --reverse", "linemode ctime" ], desc = "Sort by created time (reverse)" },
{ on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" },
{ on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
{ on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
{ on = [ ",", "A" ], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
{ on = [ ",", "n" ], run = "sort natural --reverse=no", desc = "Sort naturally" },
{ on = [ ",", "N" ], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
{ on = [ ",", "s" ], run = "sort size --reverse=no", desc = "Sort by size" },
{ on = [ ",", "S" ], run = "sort size --reverse", desc = "Sort by size (reverse)" },
{ on = [ ",", "s" ], run = [ "sort size --reverse=no", "linemode size" ], desc = "Sort by size" },
{ on = [ ",", "S" ], run = [ "sort size --reverse", "linemode size" ], desc = "Sort by size (reverse)" },
{ on = [ ",", "r" ], run = "sort random --reverse=no", desc = "Sort randomly" },
# Tabs

View file

@ -1,4 +1,4 @@
use std::{path::PathBuf, str::FromStr, time::{self, SystemTime}};
use std::{path::PathBuf, str::FromStr, time::{SystemTime, UNIX_EPOCH}};
use anyhow::Context;
use serde::{Deserialize, Serialize};
@ -26,8 +26,8 @@ pub struct Preview {
impl Preview {
#[inline]
pub fn tmpfile(&self, prefix: &str) -> PathBuf {
let nanos = SystemTime::now().duration_since(time::UNIX_EPOCH).unwrap().as_nanos();
self.cache_dir.join(format!("{prefix}-{}", nanos / 1000))
let time = SystemTime::now().duration_since(UNIX_EPOCH).expect("Time went backwards");
self.cache_dir.join(format!("{prefix}-{}", time.as_nanos() / 1000))
}
}

View file

@ -24,9 +24,26 @@ function Linemode:size(file)
return ui.Line(size and ya.readable_size(size) or "")
end
function Linemode:ctime(file)
local time = (file.cha.created or 0) // 1
if time == 0 then
return ui.Line("")
elseif os.date("%Y", time) == os.date("%Y") then
return ui.Line(os.date("%m/%d %H:%M", time))
else
return ui.Line(os.date("%m/%d %Y", time))
end
end
function Linemode:mtime(file)
local time = file.cha.modified
return ui.Line(time and os.date("%y-%m-%d %H:%M", time // 1) or "")
local time = (file.cha.modified or 0) // 1
if time == 0 then
return ui.Line("")
elseif os.date("%Y", time) == os.date("%Y") then
return ui.Line(os.date("%m/%d %H:%M", time))
else
return ui.Line(os.date("%m/%d %Y", time))
end
end
function Linemode:permissions(file) return ui.Line(file.cha:permissions() or "") end

View file

@ -1,5 +1,6 @@
use std::time::{self, SystemTime};
use std::time::{SystemTime, UNIX_EPOCH};
#[inline]
pub fn timestamp_us() -> u64 {
SystemTime::now().duration_since(time::UNIX_EPOCH).unwrap().as_micros() as u64
SystemTime::now().duration_since(UNIX_EPOCH).expect("Time went backwards").as_micros() as _
}