diff --git a/bashrc/.bashrc b/bashrc/.bashrc index ee038c0..7b8f179 100644 --- a/bashrc/.bashrc +++ b/bashrc/.bashrc @@ -69,7 +69,7 @@ source ~/.bash_alias ## source custom functions for specific purposes script_path=${HOME}/dotfiles/scripts/ source_list=() -source_list+=("${script_path}/navigate_bash_setup.sh") +source_list+=("${script_path}/navigate_bash_setup") source_list+=("${script_path}/fzf-bash-history") source_list+=("${script_path}/colors.sh") source_list+=("${script_path}/dunst.sh") diff --git a/scripts/navigate_bash_setup b/scripts/navigate_bash_setup new file mode 100644 index 0000000..38c8766 --- /dev/null +++ b/scripts/navigate_bash_setup @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +__call_navigate() { + arg_pid=" --pid $$ " + eval "$(navigate ${arg_pid} $@)" +} + +function push { + __call_navigate "push $@" +} + +function pop { + __call_navigate "pop $@" +} + +function stack { + __call_navigate "stack $@" +} + +function book { + __call_navigate "bookmark $@" +} + +# completion function for `book` +function _book { + CURRENT_WORD=${COMP_WORDS[COMP_CWORD]} + if [[ COMP_CWORD -eq 1 ]]; then + BOOKMARKS="add remove $(__call_navigate bookmark names)" + COMPREPLY=($(compgen -W "${BOOKMARKS}" -- $CURRENT_WORD)) + elif [[ COMP_CWORD -eq 2 ]]; then + if [[ COMP_WORDS[1] -eq "remove" ]]; then + BOOKMARKS="$(__call_navigate bookmark names)" + COMPREPLY=($(compgen -W "${BOOKMARKS}" -- $CURRENT_WORD)) + fi + elif [[ COMP_CWORD -eq 3 ]]; then + if [[ COMP_WORDS[1] -eq "add" ]]; then + COMPREPLY=($(compgen -o dirnames -- $CURRENT_WORD)) + fi + fi +} + +# completion function for `pop` +function _pop { + CURRENT_WORD=${COMP_WORDS[COMP_CWORD]} + if [[ COMP_CWORD -eq 1 ]]; then + COMPREPLY=($(compgen -W "all ")) + fi +} + +complete -o dirnames push +complete -F _pop pop +complete -F _book book diff --git a/scripts/navigate_bash_setup.sh b/scripts/navigate_bash_setup.sh deleted file mode 100644 index ea2fbc9..0000000 --- a/scripts/navigate_bash_setup.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -__call_navigate() { - arg_pid=" --pid $$ " - eval "$(navigate ${arg_pid} $@)" -} - -function push { - __call_navigate "push $@" -} - -function pop { - __call_navigate "pop $@" -} - -function stack { - __call_navigate "stack $@" -} - -function book { - __call_navigate "bookmark $@" -} - -# completion for `book` -function _book { - CURRENT_WORD=${COMP_WORDS[COMP_CWORD]} - BOOKMARKS="$(__call_navigate bookmark names)" - COMPREPLY=($(compgen -W "${BOOKMARKS}" -- $CURRENT_WORD)) -} - -complete -o dirnames push -complete -F _book book