diff options
| author | Jonas Maier <jonas@x77.dev> | 2026-03-06 12:51:07 +0100 |
|---|---|---|
| committer | Jonas Maier <jonas@x77.dev> | 2026-03-06 12:51:07 +0100 |
| commit | e568ccb94011146288b4bd63952be741b7500df5 (patch) | |
| tree | 97d229e2e89a1347c648fd6100b0c87dd925b0f4 /src/completion.rs | |
| parent | fb80e9c1cd4c2dcbb2d2ba1e2be8c7e19b9f0ce1 (diff) | |
| download | pish-e568ccb94011146288b4bd63952be741b7500df5.tar.gz | |
completion somewhat works
Diffstat (limited to 'src/completion.rs')
| -rw-r--r-- | src/completion.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/completion.rs b/src/completion.rs index cb030a1..407a397 100644 --- a/src/completion.rs +++ b/src/completion.rs @@ -3,7 +3,7 @@ use std::fs; pub struct Suggestion { pub display: BString, - full: BString, + pub delta: BString, } fn _path_completion(mut prefix: BString) -> io::Result<Vec<Suggestion>> { @@ -27,9 +27,16 @@ fn _path_completion(mut prefix: BString) -> io::Result<Vec<Suggestion>> { let entry = entry?; let name = entry.file_name().as_bytes().to_vec(); if name.starts_with(&partial_entry) { + let mut delta = name[partial_entry.len()..].to_vec(); + + let is_dir = entry.metadata().map(|m| m.is_dir()).unwrap_or(false); + if is_dir { + delta.push(b'/'); + } + sugs.push(Suggestion { display: name, - full: entry.path().as_os_str().as_bytes().to_vec(), + delta, }); } } |
