AppleScriptで異なるバージョンのCotEditorに対応する

このページでは、CotEditorのAppleScript対応における今までの仕様改訂を列挙しています。

CotEditor 5.0.7での仕様改訂

write to consoleコマンドの強化

write to consoleコマンドにtitletimestampオプションを追加し、プログラムからコンソールに書いたときにスクリプト名とタイムスタンプを省略できるようにしました。

CotEditor 5.0.0での仕様改訂

文字範囲のカウントをUTF-16ベースから書記素クラスタベースに変更

selectionjumpなどで使われる文字範囲の数値指定をUTF-16ベースからUnicode書記素クラスタベースに変更しました。この変更はMac OS X 10.5で導入されたAppleScript 2.0での変更に追従するものです。

CotEditor 4.4.0での仕様改訂

lengthの廃止

documentオブジェクトのlengthプロパティは廃止されました。

なお、後方互換性確保のためにCotEditor 4.4.0では、従来と同じ働きをするプロパティを隠し属性としてdocumentオブジェクトに付与していますが、このプロパティは将来予告なく削除される可能性があります。

pathの後方互換性の削除

CotEditor 2.0.0で廃止にされつつ後方互換性のために密かに対応されていたpathは、このバージョンで完全に削除されました。

CotEditor 4.1.0での仕様改訂

ジャンプ

documentオブジェクトに新しくjumpコマンドが追加されました。

BOM付きエンコーディングに対応

documentオブジェクトに新しくhas BOMプロパティが追加されました。

convertコマンドに新しくBOMオプションが追加されました。

CotEditor 4.0.7での仕様改訂

convert/reinterpretでのエンコーデング指定方法

convertコマンドやreinterpretコマンドでのエンコーディング指定でIANA charset名も使えるようになりました。

CotEditor 3.9.7での仕様改訂

スマート引用符

selectionオブジェクトに新しく以下のコマンドが追加されました。

CotEditor 3.5.0での仕様改訂

エディタの不透明度

view opacityプロパティはCotEditor 3.5.0で廃止されました。

この件に関しては後方互換性はありませんのでご了承ください。

CotEditor 3.1.2での仕様改訂

タブの自動展開

documentオブジェクトに新しくexpands tabプロパティが追加されました。

CotEditor 2.6.0での仕様改訂

行間プロパティ

line spacingプロパティはCotEditor 2.6.0で廃止されました。

この件に関しては後方互換性はありませんのでご了承ください。

CotEditor 2.5.3での仕様改訂

Unicode正規化

normalize unicodeコマンドに新しくModified NFCが追加されました。

CotEditor 2.3.0での仕様改訂

選択行の編集

selectionオブジェクトに新しく以下のコマンドが追加されました。

CotEditor 2.2.2での仕様改訂

Unicode正規化

normalize unicodeコマンドに新しくModified NFDが追加されました。

CotEditor 2.2.0での仕様改訂

Unicode正規化

normalize unicodeコマンドに新しくNFCK Casefoldが追加されました。

CotEditor 2.1.0での仕様改訂

タブ幅の操作

documentオブジェクトに新しくtab widthプロパティが追加されました。

CotEditor 2.0.1での仕様改訂

コメントアウトとコメント解除

selectionオブジェクトに新しくcomment outuncommentコマンドが追加されました。

CotEditor 2.0.0での仕様改訂

Unicode正規化

CotEditor 1.xでコマンドunicode normalizationとして実装されていたUnicode正規化コマンドは、 2.0でnormalize unicodeに改名されました。機能とパラメータに変更はありません。

この件に関しては後方互換性はありませんのでご了承ください。

pathプロパティの廃止

documentオブジェクトのファイルパスを得るためのpathプロパティは現在のモダンなAppleScript Standard Suiteではすでに削除になっています。かわりにfileプロパティを使用してください。 pathプロパティはtextオブジェクトでしたがfileプロパティはfileオブジェクトを返します。

なお、後方互換性確保のためにCotEditor 2.0では、従来と同じ働きをするfileプロパティを隠し属性として独自にdocumentオブジェクトに付与していますが、このプロパティは将来予告なく削除される可能性があります。

rangeプロパティの内部コードの変更

selectionオブジェクトが持つrangeプロパティを内部的に表すコードがCotEditor 2.0で変更されました。rangeプロパティは引き続きrangeというキーで操作するのでスクリプトを書く上では変更はありませんが、以前書かれたコンパイルされたスクリプト(.scpt)は新しいrangeプロパティを見つけられない可能性が高いです。

修正方法

以前の.scptファイルをAppleScript Editor (もしくはScript Editor)で開くと、従来rangeであった部分が«class prng»のような文字列に変更されているはずなのでその部分を再びrangeに書き戻してください。プレーンテキスト形式のスクリプト(.applescript)ではこの問題は発生しません。

CotEditor 1.5.0での仕様改訂

ウインドウ透明度

CotEditor 1.5でウインドウの不透明度設定の機構が変更されたのをうけて、不透明度設定に関するAppleScriptでの語句も変更されました。1.4までて使用できたdocumentオブジェクトのプロパティ:

は廃止され、新たにwindowオブジェクトにプロパティ:

が追加されました。

プロパティ名称がtransparency (透明度)からopacity (不透明度)に変更されていますが、これは1.5以前の誤表現を訂正するものですので、実際に取る値に変更はありません。新旧とも1.0に近づくほど不透明度が増します。

また、この件に関しては後方互換性はありませんのでご了承ください。

アプリケーション直下のselectionオブジェクト

CotEditorの最初のβ版0.6では、 selectionオブジェクトをドキュメントを明示しなくてもアプリケーション前面のドキュメントが指定されたと見なしていました。しかし実際にはうまく動かなかったために、これは将来廃止にする可能性が高く非推奨となり、後方互換性のために該当部分のコードのみは残したままにしていました。

この仕様はCotEditor 1.5で正式に廃止され関連するコードも削除されました。最前面ドキュメントのselectionを得るためには例1または例2のようにそれを明示してください。

例1)
tell application "CotEditor"
	contents of selection of front document
end tell
例2)
tell application "CotEditor"
	tell document 1
		contents of selection
	end tell
end tell

関連項目