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

このページでは、CotEditorのAppleScript対応における過去の仕様変更を説明します。

CotEditor 6.2.3での仕様変更

folder documentのサポート

フォルダ書類をfolder documentとしてスクリプト上で区別できるようになりました。さらに、folder documentに対して送ったdocument用のAPIは、そのままフォルダ書類で現在開いているテキスト書類を対象に実行されます。また、folder documentから現在開いているテキスト書類をcurrent documentプロパティで取得できます。

CotEditor 6.0.0での仕様変更

change kanaコマンドの廃止

change kanaコマンドはCotEditor 6.0.0で廃止されました。

注記: この変更に関しては後方互換性はありません

CotEditor 5.1.0での仕様変更

書類が編集可能かどうかの操作

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

CotEditor 5.0.7での仕様変更

write to consoleコマンドの強化

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

CotEditor 5.0.0での仕様変更

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

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正規化のコマンド名変更

これまでのバージョンでコマンドunicode normalizationとして実装されていたUnicode正規化コマンドは、 CotEditor 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を得るためには、以下のようにそれを明示してください。

tell application "CotEditor"
	contents of selection of front document
end tell
tell application "CotEditor"
	tell document 1
		contents of selection
	end tell
end tell

関連項目