SSブログ

Xcodeのヘルプの情報を取得してみる。(再び) [AppleScript辞書はつくれるか?]

役に立つ情報ではないけれど、以前にやっていたXcodeヘルプの情報を取得し、今後の素材として保存をしておこうと作業をしてみました。

 

今回は、ヘルプの左側のメニューのテキストを取得してみようと思います。

 

image1.jpg

 

 

(* 呼び出すコードを変数に入れ簡素化 *)

set {LF, CR, FF} to {ASCII character 10, ASCII character 13, ASCII character 12}

--LF=Linuxでよく使われる改行コード, CR=Macでよく使われる改行コード

--FF=今では滅多に使われない改頁コード(滅多に使われないコードなので借りました。正規な使い方ではないです)

 

(* ヘルプウインドウの左のメニューリストの全てを取得 *)

tell application "System Events"

tell process "Xcode"

set aNo to 1

log "読込開始" --場合によっては時間がかかるので進行状況を確認するためのログ

set objList to entire contents of outline 1 of scroll area 1 of splitter group 1 of window 1

log "読込終了"

end tell

end tell

try --try文を使って、テキストにできないデータがあってもテキスト化する

set ans to objList as text

on error errText

set ans to text 1 thru ((offset in errText of "のタイプ") - 1) of errText

if (character 1 of ans) = "{" then set ans to text 2 thru -2 of ans -- 入力がリスト・レコードの場合は先頭と末尾を外す

end try

 

(* デリミタ(単語を入れ替える)処理 *)

set tmp to AppleScript's text item delimiters --デリミタの初期状態を記憶

-- shell script 処理で邪魔になる "(ダブルクオート)を一時的に入れ替える

set AppleScript's text item delimiters to "\"" --半角の "

set theList to every text item of ans

set AppleScript's text item delimiters to "”" --全角の

set ans to theList as string

--,(カンマ)部分で改行処理をする

set AppleScript's text item delimiters to "”, " --念の為、『,』の単体カンマではなく、その周りを含めた『”, 』で対応

set theList to every text item of ans

set AppleScript's text item delimiters to "”" & LF -- shell script ではLFを改行に使う

set ans to theList as string

--

set AppleScript's text item delimiters to tmp --デリミタを元に戻す

 

(* 用意されたテキストを見やすく修正してファイルとして出力 *)

--オブジェクトのパスを書き出す

do shell script ("echo \"" & ans & "\" | grep -e 'class sttx' | sed s/'window ”'/'window 1" & FF & "'/g | cut -d " & FF & " -f1 | sed s/'”'/'\\\"'/g > $HOME/Desktop/outputText1.txt ;")

--オブジェクトの名前のみを取得して書き出す

do shell script ("cd $HOME/Desktop/ ; cut -d '\"' -f2 outputText1.txt > outputText2.txt ;")

 

(* 保存された名前のテキストをログで表示する *)

set ans to do shell script ("cat $HOME/Desktop/outputText2.txt ;")

log ans

 

"End"

 

● 最後のシェルスクリプト処理部の説明

echo '文字' -- 文字などを直接読み込みます

grep -e '検索する文字' [ファイルのアドレス(省略可)] -- -eというオプションの後の文字列を探し、含まれたすべての行を取得

sed s/'差替え前の文字'/'差替え後の文字'/g [ファイルのアドレス(省略可)] -- 文字を入れ替えます。さいごのgを入れないと最初の一つだけしか差替えません

cd [ファイルのアドレス(省略可)] -- 作業フォルダを変更します。同じフォルダ内でファイルを呼び出す際に使用して、アドレスを短くできます

cut -d '区切り文字' -f(数字)  [ファイルのアドレス(省略可)] -- -dで指定した'区切り文字'で分けられた文字列の、数字場所を取得

> [書出すファイルのアドレス]  -- > はファイルとして書き出します。

| -- パイプを使い、左で出された一時的なデータを右に引き継ぎます。

; -- コードの終点。一時的なデータは引き継がれません。

\ -- エスケープシーケンス。"などの特殊文字を命令語として認識させずに、普通の文字として扱えるようになります。

      sedで使用する場合はエスケープシーケンスをさらにエスケープしないといけない場合があります。

 

ヘルプの画面を自動的に開くというものではないので、あらかじめヘルプを開いておかなければなりません。

Xcodeの画面の上のメニューから

 Help > developer documentation

でメニューを開いておきます。

その状態で上記のスクリプトを実行すると、数秒後のデスクトップ上に

outputText1.txt(オブジェクトのリスト)

outputText2.txt(名前のリスト)

が作られます。

 

ただそれだけです。

 


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。