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

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

## CotEditor 5.0.7での仕様改訂

### `write to console`コマンドの強化

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

## CotEditor 5.0.0での仕様改訂

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

`selection`や`jump`などで使われる文字範囲の数値指定を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オブジェクトに新しく以下のコマンドが追加されました。

- `smarten quotes`
- `straighten quotes`
- `smarten dashes`

## 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オブジェクトに新しく以下のコマンドが追加されました。

- `move line up`
- `move line down`
- `sort lines`
- `reverse lines`
- `delete duplicate line`

## 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 out`と`uncomment`コマンドが追加されました。

## 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オブジェクトのプロパティ：

- `transparency`:ウインドウまたはテキストビューの透明度（real型、0.2から1.0の範囲）
- `alpha only textView`:透明度を設定するのはテキストビューだけかどうか（boolean型)

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

- `view opacity`:テキストビューの不透明度（real型、0.2から1.0の範囲）

が追加されました。

プロパティ名称が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

## 関連項目

- AppleScriptで操作する