# shellcheck shell=dash
___x_cmd_cd_relm___ls(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_chatty; then
        ___x_cmd_cd_relm___ls___app
    else
        ___x_cmd_cd_relm___ls___raw
    fi
}

___x_cmd_cd_relm___ls___app(){
    local x_; x_="$( ___x_cmd_cd_pick___ ___x_cmd_cd_relm___ls___raw )" || return $?
    [ -n "$x_" ] || return $?

    # local item="${x_%% *}"
    local folder="/${x_#*/}"
    local name="${x_%% *}"

    local id
    ___x_cmd ui select id "Next for folder -> $folder"   \
        "cd into folder"                \
        "open navigator folder"         \
        "echo folder path"              \
        "remove this relm [name=$name]"              \
        "Abort" || return $?

    case "$id" in
        1)  ___x_cmd_cd_origin "$folder"    ;;
        2)  ___x_cmd ls "$folder"           ;;
        3)  printf "%s\n" "$folder"         ;;
        4)  ___x_cmd_cd_relm rm "$name"     ;;
        *)  return
    esac
}

___x_cmd_cd_relm___ls___raw(){
    local x_=; local i
    for i in ws git nm lm; do
        ___x_cmd_cd_relm___get_ "$i" && printf "%s\t=\t%s\n" "$i" "$x_"
    done

    ___x_cmd_cd_util___dict_inner print relm_init "\t=\t"
    ___x_cmd_cd_util___dict_inner print relm_custom "\t=\t"
}
