Panic Coda2用スクリプト Sync Folder - ファイルブラウザのフォルダ同期表示を行うAppleScript

  • freeware
  • OSX 10.6.8 以降
  • applescript

ファイルブラウザで開いているローカル(またはリモート)ディレクトリをもう一方のブラウザに同期表示させるPanic Coda2用AppleScriptです。
TransmitでいうFolder Linking「フォルダ遷移をリンク / Link Folder Navigation」の手動版です。

ファイル等のアップロードを行うスクリプトではありません。

Coda2用アップルスクリプト Sync Folder : Sync Remote Folder Sync Remote Folder : ファイルブラウザ・ローカル側に合わせてリモート側を同期表示
  • ローカル方向またはリモート方向へのフォルダ同期スクリプトそれぞれにキーボードショートカットが割り当て可能です。

    Codaファイルブラウザ用スクリプトである、ローカル/リモートのルートディレクトリに移動する Go to Root や、開いているファイルのディレクトリへ移動する Go to Directory と併用するとファイルブラウザがより便利になるかもしれません。

ダウンロード

Coda2 : Sync Folder をダウンロード
Coda2 : Sync Folder をダウンロード
  • version 0.2.1
  • SHA1:2332c32d4c541805c3ec9f6cdf102c736aad7ace

リリースノート

0.2.1 : 2013-10-03
Transcriptウィンドウ等が最前面にある場合の修正。
0.2 : 2013-10-02
スクリプトの信頼性の向上。
0.1.1 : 2013-09-20
ソースコードのメンテナンス。
0.1 : 2013-09-19
動作確認環境 Mac OS X 10.6.8 / Coda 2.0.11

スクリプトの導入方法

Coda Sync Folderダウンロード後、zipファイルを解凍します。('Sync Folder'フォルダに展開されます。)

「Coda > 環境設定 > 一般 > AppleScript」にある「スクリプトメニューを表示する」にチェックを入れます。
メニューに表示されるスクリプトアイコンをクリックし、「スクリプトフォルダを開く」で表示されるフォルダ内に'Sync Folder'フォルダを設置します。

スクリプトの動作について

ローカルルート、リモートルートの両方とも設定されている'サイト'を開いている時に動作します。

サーバ接続から一定時間経過し、接続の自動切断が行われた状態でも動作しますが、Codaのファイルブラウザ(リモート)にある「サーバから切断」(手動切断)を行った状態では動作しません。

disconnect

最も前面にある'サイト'を開いているウィンドウが動作対象になります。
(Transcriptウィンドウや「すばやく開く(Control+Q)」ウィンドウが最前面に表示されていても適切に動作します。)
※ このスクリプトはサイトの名称 'Coda' が作成されている時、意図しないフォルダ同期を行おうとする場合があります。

サイドバー項目の'ファイル'(ローカル/リモート)は移動・表示しません。

'サイト'を開いていない場合や、ローカルならびにリモートルートを設定していない場合、存在しないディレクトリに移動しようとした場合はどこにも移動しません。(ビープ音と警告メッセージが表示されます)

「Sync Local Folder」 - coda_syncLocalFolder.scpt

スクリプトを実行すると、Coda ファイルブラウザのローカル側の表示が変更されます。

設定されているリモートルートを基準に、現在のリモート・ディレクトリの階層的位置に沿ってファイルブラウザ(ローカル)の表示ディレクトリを変更・移動します。

Sync Local Folder : 設定ルートから4階層上のディレクトリを同期表示

例. リモート側が設定リモートルートから4階層上を表示している時、ローカル側も設定ローカルルートから4階層上のディレクトリを表示します。(但しそのディレクトリが存在すれば)

「Sync Remote Folder」 - coda_syncRemoteFolder.scpt

スクリプトを実行すると、Coda ファイルブラウザのリモート側の表示が変更されます。

設定されているローカルルートを基準に、現在のローカル・ディレクトリの階層的位置に沿ってファイルブラウザ(リモート)の表示ディレクトリを変更・移動します。

Sync Remote Folder : 設定ルートから2階層下のディレクトリを同期表示

例. ローカル側が設定ローカルルートから2階層下にある coda ディレクトリを表示している時、リモート側も設定リモートルートから2階層下の coda ディレクトリを表示します。(但しそのディレクトリが存在すれば)

キーボードショートカットの変更

Macの「システム環境設定 > キーボード > キーボードショートカット」から下記画像のようにショートカットを変更出来ます。

キーボードショートカット1 キーボードショートカット2 キーボードショートカット3

設定の変更

coda_syncLocalFolder.scpt , coda_syncRemoteFolder.scpt をAppleScriptエディタ.appで開いて設定を変更できます。

設定を変更した場合、Codaのアップルスクリプトメニューにある「スクリプトを再読み込み」を行う必要があります。

------- setting -------
set keyboardShortcutDelayTime to "0.5" -- It is recommended 0.3 or more
set onlyBeepIfCantConnect to false -- true or false

on CodaScriptSettings()
	return {displayName:"Sync Local Folder", inContextMenu:"yes"}
end CodaScriptSettings

set openFilebrowserKey to "2"
set openFilebrowserModifierKey to {command down}
------- /setting -------

keyboardShortcutDelayTime

ファイルブラウザを自動表示する際のキーボードショートカット・コマンド(Codaデフォルト コマンド+2)実行までの待ち時間です。0.3以上の数値を推奨します。

別途スクリプトのキーボードショートカットを設定し、そのショートカットからスクリプトを実行した場合、ファイルブラウザを表示するショートカットと混じってしまうのを回避する役割があります。
意図しないキーボードショートカットが動作してしまう場合は、0.5より大きい数値に変更して下さい。

onlyBeepIfCantConnect

例外エラーが発生した場合や、ローカルルートまたはリモートルートが設定されていないサイト、手動でサーバ切断を行った状況でスクリプトを実行すると警告音・メッセージが表示されます。警告音のみにしたい場合は true に変更して下さい。

displayName

Codaのアップルスクリプトメニューに表示される名称 'Sync Local/Remote Folder' を変更出来ます。
※ 変更した場合、キーボードショートカットの'メニュータイトル'も修正する必要があります。

キーボードショートカットを設定する場合で、Codaや他のプラグインのメニュータイトルと重複する場合にも変更が必要になるかもしれません。

その他

ファイルブラウザ表示のキーボードショートカットを変更している場合

Codaデフォルトの「コマンド+2」から変更している場合は、 openFilebrowserKey , openFilebrowserModifierKey の内容を変更して下さい。下記はコマンド+シフト+2に変更する例です。

set openFilebrowserKey to "2"
set openFilebrowserModifierKey to {command down,shift down}

スクリプトを実行専用で保存する

スクリプトを実行専用形式で保存すると、スクリプトの読み込み速度や、Codaのアップルスクリプトメニューの表示が早くなる可能性があります。

AppleScriptエディタ.appでcoda_syncLocalFolder.scpt , coda_syncRemoteFolder.scptを開き、それぞれ「別名で保存...」から「オプション:実行専用」にチェックを入れて保存します。

スクリプトを実行専用で保存

※ 実行専用で保存するとスクリプトの編集が出来なくなります。編集する可能性がある場合は、異なるファイル名で保存して下さい。その場合、元のスクリプトファイルは他の場所へ移動させて下さい。

既知の問題

以下の特定の条件下では、意図しないフォルダ同期を行おうとします。

  • サイト、並びにファイルを1つも開いていない状況で、リモートサーバへ接続している場合、サイト'Coda'が存在すれば、その設定済みのローカル/リモートルートを利用してフォルダ同期を行おうとします。

上記のサイト名 'Coda' の大文字小文字は区別されます。(サイト名が coda の場合は適切に動作します。)
出来る限りサイト名 'Coda'を作成しないで下さい。