# shellcheck shell=dash

x log init code

___x_cmd_code___main(){
    [ "$#" -gt 0 ] ||   set - open "$PWD"

    local op="$1"; shift
    case "$op" in
        open|--)
                ___x_cmd_code___open        "$@" ;;
        -*)     ___x_cmd_code___bin         "$@" ;;
        *)      ___x_cmd_code___open "$op"  "$@" ;;
    esac
}

___x_cmd_code___open(){
    local x_
    ___x_cmd_abspath_ "$1"
    [ -n "$x_" ] || return
    code:info "x open vscode://file/$x_"
    x open "vscode://file/$x_"
}

___x_cmd_code___bin(){
    if ___x_cmd_hasbin "code"; then
        ___x_cmd_cmds code "$@"
        return
    fi

    if [ -f "$HOME/AppData/Local/Programs/Microsoft VS Code/bin/code.cmd" ]; then
        "$HOME/AppData/Local/Programs/Microsoft VS Code/bin/code.cmd" "$@"
        return
    fi

    if [ -f "$HOME/AppData/Local/Programs/Microsoft VS Code/bin/code" ]; then
        "$HOME/AppData/Local/Programs/Microsoft VS Code/bin/code.cmd" "$@"
        return
    fi
}
