feat(xcode): support Package.swift as project file in xc (#10358)

This commit is contained in:
YR Chen 2021-10-29 23:40:23 +08:00 committed by GitHub
parent 2e46b2a2dc
commit 1861b5f175
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 20 deletions

View file

@ -26,7 +26,7 @@ plugins=(... xcode)
### `xc`
Opens the current directory in Xcode as an Xcode project. This will open one of the `.xcworkspace` and `.xcodeproj` files that it can find in the current working directory. You can also specify a directory to look in for the Xcode files.
Opens the current directory in Xcode as an Xcode project or a Swift package. This will open one of the `.xcworkspace`, `.xcodeproj` and `Package.swift` files that it can find in the current working directory. You can also specify a directory to look in for the Xcode files.
Returns 1 if it didn't find any relevant files.
### `xx`

View file

@ -6,28 +6,18 @@ alias xcsel='sudo xcode-select --switch'
# original author: @subdigital
# source: https://gist.github.com/subdigital/5420709
function xc {
local xcode_proj
if [[ $# == 0 ]]; then
xcode_proj=(*.{xcworkspace,xcodeproj}(N))
else
xcode_proj=($1/*.{xcworkspace,xcodeproj}(N))
fi
local xcode_files
xcode_files=(${1:-.}/{*.{xcworkspace,xcodeproj},Package.swift}(N))
if [[ ${#xcode_proj} -eq 0 ]]; then
if [[ $# == 0 ]]; then
echo "No xcworkspace/xcodeproj file found in the current directory."
else
echo "No xcworkspace/xcodeproj file found in $1."
fi
if [[ ${#xcode_files} -eq 0 ]]; then
echo "No Xcode files found in ${1:-the current directory}." >&2
return 1
else
local active_path
active_path=$(xcode-select -p)
active_path=${active_path%%/Contents/Developer*}
echo "Found ${xcode_proj[1]}. Opening with ${active_path}"
open -a "$active_path" "${xcode_proj[1]}"
fi
local active_path
active_path=${"$(xcode-select -p)"%%/Contents/Developer*}
echo "Found ${xcode_files[1]}. Opening with ${active_path}"
open -a "$active_path" "${xcode_files[1]}"
}
# Opens a file or files in the Xcode IDE. Multiple files are opened in multi-file browser