shell/zsh: add basic integration with fzf #30
2 changed files with 39 additions and 7 deletions
32
shell/zsh
Normal file
32
shell/zsh
Normal file
|
@ -0,0 +1,32 @@
|
|||
function __tas_task_idx() {
|
||||
echo "$@" | sed 's/^\([0-9]\+\)\..\+$/\1/'
|
||||
}
|
||||
|
||||
function __tas_show() {
|
||||
tas show $(__tas_task_idx "$@")
|
||||
}
|
||||
|
||||
function __tas_start() {
|
||||
tas start $(__tas_task_idx "$@")
|
||||
}
|
||||
|
||||
function __tas_list() {
|
||||
tas list | fzf --info=inline --height=50% --no-sort --keep-right --layout=reverse
|
||||
}
|
||||
|
||||
function taz() {
|
||||
case $1 in
|
||||
"" | "show" | "sh")
|
||||
__tas_show $(__tas_list)
|
||||
;;
|
||||
|
||||
"list" | "ls")
|
||||
__tas_list
|
||||
;;
|
||||
|
||||
"start" | "st")
|
||||
__tas_start $(__tas_list)
|
||||
|
||||
esac
|
||||
}
|
||||
|
|
@ -58,10 +58,10 @@ pub fn execute(repo: impl Repository, args: Args) {
|
|||
Err(idx_err) => match first.parse::<PrintPart>() {
|
||||
Ok(part) => (None, Some(part)),
|
||||
Err(part_err) => {
|
||||
return eprint!(
|
||||
r#"error: Invalid value "{}": {}; {}"#,
|
||||
first, idx_err, part_err
|
||||
)
|
||||
eprintln!("error: Invalid value {first:?}:");
|
||||
eprintln!("- {idx_err}");
|
||||
eprintln!("- {part_err}");
|
||||
return;
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -73,16 +73,16 @@ pub fn execute(repo: impl Repository, args: Args) {
|
|||
|
||||
let idx = match first.parse::<usize>() {
|
||||
Ok(idx) => Some(idx),
|
||||
Err(err) => return eprint!(r#"error: Invalid value "{}": {}"#, first, err),
|
||||
Err(err) => return eprintln!("error: Invalid value {first:?}: {err}"),
|
||||
};
|
||||
let part = match second.parse::<PrintPart>() {
|
||||
Ok(part) => Some(part),
|
||||
Err(err) => return eprint!(r#"error: Invalid value "{}": {}"#, second, err),
|
||||
Err(err) => return eprintln!("error: Invalid value {second:?}: {err}"),
|
||||
};
|
||||
|
||||
(idx, part)
|
||||
}
|
||||
_ => return eprintln!("error: To much arguments: {}", args.rest.join(",")),
|
||||
_ => return eprintln!("error: To much arguments: {:?}", args.rest),
|
||||
};
|
||||
|
||||
let task = if let Some(idx) = idx {
|
||||
|
|
Loading…
Reference in a new issue