AppleScriptとの連携

CotEditorはAppleScriptおよびJXA (JavaScript for Automation)をサポートしています。

以下で説明するCotEditorのクラス・コマンド以外にも、AppleScriptで標準的に実装されている語句を使用することができます。CotEditorにおけるAppleScriptサポートの詳細な仕様については、辞書ライブラリを参照してください。ライブラリを参照するにはCotEditor上で次のようにします:

クラス

CotEditorで独自に定義されているクラス・プロパティです。

Application
CotEditorアプリケーション
Window
CotEditorウインドウ
view opacity
エディタの不透明度(real型、0.2から1.0の範囲)CotEditor 3.5で廃止
Document
CotEditor書類
contents
書類の内容文字列(text型)
text
書類の内容文字列(text型)
length
書類の文字数(int型)
selection
書類の選択内容オブジェクト(selection-object型)
encoding
エンコーディング(Unicode text型)
IANA charset
エンコーディングのIANA Charset名(Unicode text型、Shift_JIS, EUC-JPなど)
line ending
改行コード(CR / LF / CRLF
tab width
スペース幅換算のタブ幅(int型)CotEditor 2.1で追加
expands tab
タブをスペースに展開するかどうか(boolean型)
wrap lines
折り返しているかどうか(boolean型)
coloring style
シンタックスカラーリングスタイル(Unicode text型)
line spacing
行間値(real型、0.0から10.0の範囲)CotEditor 2.6で廃止
Selection-object
選択部分オブジェクト
contents
選択内容文字列
range
文字単位での選択位置({location, length}の型)
line range
行単位での選択位置({location, length}の型、length省略可。また、lengthは0でも1でも、1行を選択する)

selection例文

contents of selection of document 1
最前面のドキュメント選択部分の文字列を返す。
set contents of selection of front document to "Apple"
選択部分を「Apple」に置換する。
range of selection of front document
選択位置を{location, length}のリスト型で返す。
set range of selection of front document to {1, 12}
1文字目から12文字を選択状態にする。
set line range of selection of front document to 10
10行目を選択する。
set range of selection of front document to {-15, -1}
最後から15文字目から、最後から1文字目を残して選択。

「selection」は単独では意味を持ちません。contentsなどのプロパティとともに使用してください。

locationが負の場合、対象ドキュメントの文字列の後ろから数えてlocation番目から始まる範囲となります。
lengthが正である場合、指定される範囲はlocationから数えてlength文字数分となります。また、対象ドキュメントの文字列の長さを超えてlengthが入力された場合、末尾までが範囲となります。
lengthが負である場合、指定される範囲は対象ドキュメントの文字列の後ろから数えてlength文字までとなります。もし、lengthの絶対値がlocationよりも小さい(locationよりも前に終了位置がある)場合には、locationが優先されlocation位置にキャレットが移動します({location, 0}が入力されたのと同じ)。

この指定方法はPHPのsubstrのそれにならっています。

選択位置を変える命令だけでは画面のスクロールは行われません。選択位置を見えるようにするためにはscroll to caretコマンドを使用してください。

コマンド

CotEditorで独自に定義されているコマンドです。
([]で囲まれたものはオプションです)

write to console

write to console
文字列をCotEditorのコンソールウインドウに表示する。CotEditor 3.2.0で追加
write to console "Script failed."
「Script failed.」という文字列をコンソールで表示する。

find

find
検索し、対象文字列があれば選択状態にしてtrueを返す。見つからなければfalseを返す。
for (Unicode text)
検索対象文字列
[RE (boolean)]
正規表現検索か
[wrap (boolean)]
ラップサーチか
[ignore case (boolean)]
大文字小文字を無視するか
[backwards (boolean)]
後ろから検索するか
返り値
boolean型

検索は、現在の選択位置(キャレット位置)を基準に行われます。
例えば、wrapbackwardsが指定されていなかったとき、選択位置以降に対象文字列がない場合にはfalseを返します。

RE(正規表現検索)の場合は、backwards(後方からの検索)ができません。同時に指定された場合はREが優先され、backwardsは無視されます。

find front document for "Apple" with ignore case
最前面のドキュメント内の選択位置以降で「Apple」を大文字小文字を無視して検索し、結果を返す。

replace

replace
検索し、対象文字列があれば置換して置換された回数を返す。見つからなければ0を返す。
for (Unicode text)
置換対象文字列
to (Unicode text)
置換後の文字列
[all (boolean)]
書類全体を対象とするか
[RE (boolean)]
正規表現検索か
[wrap (boolean)]
ラップサーチか
[ignore case (boolean)]
大文字小文字を無視するか
[backwards (boolean)]
後ろから検索するか
返り値
int型

find同様、命令実行前の選択位置(キャレット位置)を基準に置換が行われます。書類全体を対象に実行するときはallを指定してください。

allオプションを付けて書類全体を対象に実行され置換が行われた場合、実行後の選択位置(キャレット位置)は書類の先頭になります。ただし、対象文字列が見つからなかった場合は選択位置(キャレット位置)は変更されません。

RE(正規表現検索)の場合は、backwards(後方からの検索)ができません。同時に指定された場合はREが優先され、backwardsは無視されます。

replace front document for "Apple" to "Orange" with all and ignore case
最前面のドキュメント内で「Apple」を大文字小文字を無視して検索し、「Orange」に置換して置換した数を返す。

scroll to caret

scroll to caret
キャレットまたは選択位置が見えるようにスクロールする。
scroll to caret front document
キャレットまたは選択範囲が見えるようにスクロールする。

convert

convert
書類のエンコーディングを変換する。
to (Unicode text)
新しいエンコーディング
lossy (boolean)
エンコーディング適用によって一部の文字列が失われても良いか
返り値
boolean型
convert front document to "Unicode (UTF-8)" without lossy
UTF-8に変換し、変換できたかどうかを返す。

reinterpret

reinterpret
書類を指定されたエンコーディングでファイル内容を再解釈する。
as (Unicode text)
新しいエンコーディング
返り値
boolean型

ファイルそのものが未保存の場合は、falseを返します。

ファイル保存されていない変更部分は失われます。

reinterpret front document as "Japanese (EUC)"
EUCで解釈し直し、解釈できたかどうかを返す。

shift

shift left
選択位置のある行を左にシフト
shift right
選択位置のある行を右にシフト
shift right selection of front document
選択位置またはキャレットのある行を右にシフト。

comment out

comment out
選択範囲にコメント記号をつけてコメント化
uncomment
選択範囲のコメント記号を取り去りコメント解除

現在のシンタックスにコメント記号が設定されていない、選択範囲にコメント記号がないなど、コマンドが実行できない場合はなにも行いません。

comment out selection of front document
選択位置をコメントアウト。

string

string
選択範囲に関係なく、書類中の指定された範囲の文字列を返す。
in (list)
範囲
返り値
Unicode text型

無効な範囲を指定した場合などは、空の文字列を返します。

このコマンドは指定された選択範囲を変更しません。

string front document in {0, 10}
書類の最初から10文字を返す。

change case

change case
大文字/小文字/キャピタライズ(単語のアタマだけ大文字)に置き換える。
to upper/lower/capitalized
置き換えるスタイル

対象にできるのは`selection`オブジェクトだけです。

change case selection of front document to upper
選択位置の英単語を大文字にする。

change roman width

change roman width
半角/全角を変換する。
to half/full
置き換えるスタイル

対象にできるのは`selection`オブジェクトだけです。

change roman width selection of front document to full
選択位置の英単語を全角にする。

change kana

change kana
ひらがな/カタカナを変換する。
to hiragana/katakana
置き換えるスタイル

対象にできるのは`selection`オブジェクトだけです。

change kana selection of front document to katakana
選択位置のひらがなをカタカナに変換する。

normalize unicode

normalize unicode
ユニコード正規化を行う。
to NFKC/NFD/NFC/NFKD/NFKC Casefold/Modified NFC/Modified NFD
正規化方式

対象にできるのは`selection`オブジェクトだけです。

normalize unicode selection of front document to NFC
選択位置の文字列をユニコード正規化する。

move line

move line up
選択行を一つ上の行と入れ替える。CotEditor 2.3.0で追加
move line down
選択行を一つ下の行と入れ替える。CotEditor 2.3.0で追加

対象にできるのは`selection`オブジェクトだけです。

sort lines

sort lines
選択行を昇順にソートする。CotEditor 2.3.0で追加
reverse lines
選択行を逆順にする。CotEditor 2.3.0で追加

対象にできるのは`selection`オブジェクトだけです。

delete duplicate line

delete duplicate line
選択行に含まれる重複行を削除する。CotEditor 2.3.0で追加

対象にできるのは`selection`オブジェクトだけです

関連項目