feat(sessions): Suggestion for a similar session name

Remove unnecessary to_string

Replace `garando_syntax` crate with `lev_distance` which is much smaller

Replace `lev_distance` crate with `suggestion` to simplify the code
This commit is contained in:
Ken Matsui 2021-11-08 09:12:31 +09:00
parent c9f9240969
commit 00b47b3058
No known key found for this signature in database
GPG Key ID: 103360B3298EE433
3 changed files with 21 additions and 0 deletions

16
Cargo.lock generated
View File

@ -1174,6 +1174,12 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]]
name = "lev_distance"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d234d89ecf5621c935b69a4c7266c9a634a95e465081682be47358617ce825b"
[[package]]
name = "libc"
version = "0.2.106"
@ -2152,6 +2158,15 @@ dependencies = [
"syn",
]
[[package]]
name = "suggestion"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "015336207b7660be204f5012fcdb84b3ff35442b26cea77ebe6103929a56e54b"
dependencies = [
"lev_distance",
]
[[package]]
name = "syn"
version = "1.0.81"
@ -2868,6 +2883,7 @@ dependencies = [
"names",
"rand 0.8.4",
"ssh2",
"suggestion",
"zellij-client",
"zellij-server",
"zellij-utils",

View File

@ -21,6 +21,7 @@ zellij-server = { path = "zellij-server/", version = "0.20.0" }
zellij-utils = { path = "zellij-utils/", version = "0.20.0" }
log = "0.4.14"
dialoguer = "0.9.0"
suggestion = "0.1.0"
[dev-dependencies]
insta = { version = "1.6.0", features = ["backtrace"] }

View File

@ -1,6 +1,7 @@
use std::os::unix::fs::FileTypeExt;
use std::time::SystemTime;
use std::{fs, io, process};
use suggestion::Suggest;
use zellij_utils::{
consts::ZELLIJ_SOCK_DIR,
interprocess::local_socket::LocalSocketStream,
@ -177,6 +178,9 @@ pub(crate) fn assert_session(name: &str) {
return;
} else {
println!("No session named {:?} found.", name);
if let Some(sugg) = get_sessions().unwrap().suggest(name) {
println!(" help: Did you mean `{}`?", sugg);
}
}
}
Err(e) => {