diff --git a/src-tauri/src/cmds.rs b/src-tauri/src/cmds.rs index 03dac1f..8f54fb3 100644 --- a/src-tauri/src/cmds.rs +++ b/src-tauri/src/cmds.rs @@ -155,16 +155,28 @@ pub fn view_profile(index: usize, profiles_state: State<'_, ProfilesState>) -> R let path = app_home_dir().join("profiles").join(file); if !path.exists() { - return Err("failed to open the file".into()); + return Err("the file not found".into()); } - match which::which("code") { - Ok(code) => match Command::new(code).arg(path).status() { + // use vscode first + if let Ok(code) = which::which("code") { + return match Command::new(code).arg(path).status() { Ok(_) => Ok(()), Err(_) => Err("failed to open file by VScode".into()), - }, - Err(_) => Err("please install VScode for edit".into()), + }; } + + // use `open` command + if let Ok(open) = which::which("open") { + return match Command::new(open).arg(path).status() { + Ok(_) => Ok(()), + Err(_) => Err("failed to open file by `open`".into()), + }; + } + + // recommand to use vscode + // todo: support other editors + return Err("please install VScode".into()); } /// restart the sidecar