my_php_projects_path="$HOME/Documents/vagrant_ubuntu12x32/public"
my_golang_projects_path="$HOME/Documents/go-workspace/src/github.com/marcossegovia"

open_create_projects() {
    local -A projects_path
    projects_path=(
        php      ${my_php_projects_path}
        go       ${my_golang_projects_path}
    )
    
   #(( $+{projects_path[$1]} )) || return 1

    local directory="${projects_path[$1]}/$2"
    
    if [[ -d "$directory" ]]; then
        echo "Path '$directory' found, opening existing project..."
    else
        echo "Path '$directory' not found, creating new project..."
        mkdir "$directory"
    fi

    case $1 in
        php)    /usr/local/bin/phpstorm $directory ;;
        go)     /usr/local/bin/Gogland $directory ;;
    esac
}

_open_create_projects() {
   
    local -A projects_path
    projects_path=(
        php        ${my_php_projects_path}
        go        ${my_golang_projects_path}
    )
    
    _arguments ':code platform:(php go)' \
    '*:project:_files -/ -W $projects_path[${words[2]}]'
}

compdef _open_create_projects open_create_projects