# shellcheck shell=dash disable=SC2016

___x_cmd_man___fzf(){
    ___x_cmd_man___fzf___app
}


___x_cmd_man___fzf___raw(){
    ___x_cmd_man___all | ___x_cmd_cmds awk '
    BEGIN{
        if(NO_COLOR != 1){
            UI_KEY= "\033[36m"
            UI_NUM_VAR= "\033[35m"
            UI_STR_VAR= "\033[32m"
            UI_END= "\033[0m"
        }
    }
    {
        printf(UI_NUM_VAR "%s" UI_END "\t" UI_KEY "%s" UI_END "\n", $1, $2)
    }'
}

___x_cmd_man___fzf___app(){
    local data; data="$( ___X_CMD_RUNMODE="$___X_CMD_RUNMODE" ___x_cmdexe man --fzdata )" || return $?

    local i;     i="$(printf "%s\n" "$data" | ___x_cmd_cmds awk '{ print $1; }')"
    local cmd; cmd="$(printf "%s\n" "$data" | ___x_cmd_cmds awk '{ print $2; }')"
    [ -n "$cmd" ] || return

    local id
    ___x_cmd ui select id   "Next:"                                  \
        "x man      $i    '$cmd'   # open man page"                  \
        "x mankier       '$cmd'   # use mankier search man page"     \
        "x tldr          '$cmd'   # open tldr"                       \
        "return 0" || return

    case "$id" in
        1)  man:info "run command => x man $i $cmd"
            ___x_cmd man "$i"  "$cmd"
            ;;
        2)  man:info "mankier     => $cmd"
            ___x_cmd mankier        "$cmd"
            ;;
        3)  man:info "run command => x tldr $cmd"
            ___x_cmd tldr           "$cmd"
            ;;

        *)  return 0
            ;;
    esac

    # TODO: add ui for this
    # open man ?
    # open tldr ?
    # just man
    # x man enhancement ...
}

___x_cmd_man___fz_data(){
    # color 1 and command name ...
    ___x_cmd tty update
    ___x_cmd_man___fzf___raw |    \
        MANCOLOR=1 ___x_cmd fzf   \
            --ansi                \
            --reverse             \
            --height='90%'        \
            --preview="ROWS=$ROWS COLUMNS=$((COLUMNS * 7 / 10 - 4 )) command_name={2} ___x_cmdexe man --simplecolor {1} {2}"    \
            --preview-window="right:70%,wrap"                           \
            --bind='ctrl-w:toggle-preview-wrap'                          \
            --bind='ctrl-r:change-preview-window(down,40%,99%,border-horizontal|hidden|right)'
}
