diff --git a/rc/fzf-modules/fzf-ctags.kak b/rc/fzf-modules/fzf-ctags.kak index 2e15903..bd724a3 100644 --- a/rc/fzf-modules/fzf-ctags.kak +++ b/rc/fzf-modules/fzf-ctags.kak @@ -1196,11 +1196,27 @@ define-command -hidden fzf-tag -params ..1 %{ evaluate-commands %sh{ ;; esac + path=$PWD + while [ "$path" != "$HOME" ]; do + if [ -e "./${kak_opt_tagfile:-tags}" ]; then + break + else + cd .. + path=$PWD + fi + done + if [ "$path" = "$HOME" ] && [ ! -e "./${kak_opt_tagfile:-tags}" ]; then + echo "echo -markup %{{Information}No '${kak_opt_tagfile:-tags}' found}" + exit + elif [ "$path" = "$HOME" ] && [ -e "./${kak_opt_tagfile:-tags}" ]; then + echo "echo -markup %{{Information}'${kak_opt_tagfile:-tags}' found at $HOME. Check if it is right tag file}" + fi + if [ ! -z "$1" ]; then mode=$(echo "$additional_message" | grep ":" | awk '{$1=""; print}' | sed "s/\(.*\)/:\1/") - cmd="readtags -Q '(eq? \$kind $1)' -l | cut -f1" + cmd="cd $path; readtags -Q '(eq? \$kind $1)' -l | cut -f1" else - cmd="readtags -l | cut -f1" + cmd="cd $path; readtags -l | cut -f1" fi [ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings="