Xcodeでオープン中のソースコードのファイルパスを求めるAppleScriptです。
Xcode v9.2+macOS 10.12.6、Xcode v9.3.1+macOS 10.13.5betaで確認しました。
おおまかにいえば、Xcodeは大きくわけて2種類の書類を扱っています。1つは、拡張子「.xcodeproj」のXcodeプロジェクト(Workspace)書類。
そして、個別のソースコード書類(SwiftとかObjective-CとかAppleScriptとか)。
そんなわけで、普通のGUIアプリケーションとはdocumentの概念がやや異なり、少々めんどくさい上にXcodeのAppleScript用語辞書に載っている用例自体も「え、そんな書き方を推奨するの?」という、なんとも不思議な仕上がりになっていますが、まあいいんでしょう。
ちなみに、本ScriptはXcodeのメインウィンドウ上でソースコードを表示する場合と、個別のウィンドウで表示する場合に対応しています。
また、Xcodeのウィンドウ上でXibファイルやInfo.plistやアイコンのAssetsなどソースコード書類以外のものを表示している場合には、エラートラップをかけてfalseを返すようにしています。
▲XcodeのAppleScript用語辞書に書かれている記述例。Workspace Documentのオープン完了待ちをpropertyを確認しつつループで待つという仕様。そんなとこ、非同期実行してドーする、という不思議感満載
AppleScript名:Xcodeでオープン中のソースコードのパスを求める |
— Created 2018-05-19 by Takaaki Naganoya — 2018 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" tell application "Xcode" –最前面のWindowの情報を取得 set winProp to properties of front window set aDoc to document of winProp –Xcode のworkspace document(xcodeproj) –> workspace document "WKWebViewDemo.xcodeproj" of application "Xcode" set docProp to properties of aDoc set xcodeDocPath to path of docProp –> "/Users/me/Documents/Objective-C/WKWebViewDemo_MAC-master/WKWebViewDemo.xcodeproj" set aFileDoc to name of winProp –> "ViewController.m" try set aDoc to file document aFileDoc –> source document "ViewController.m" of application "Xcode" on error –Storyboard/Xib file/info.plist/Assetsなどを表示中の場合にはエラーになる return false end try set aDocPath to path of aDoc –> "/Users/me/Documents/Objective-C/WKWebViewDemo_MAC-master/WKWebViewDemo/ViewController.m" end tell |
More from my site
(Visited 451 times, 1 visits today)