CotEditor 用のスクリプトを JavaScript で書く
久しぶりに CotEditor を使ってみたらすこぶる良かった。そこで自在に CotEditor を操るべくスクリプトの書き方を調べた。
CotEditor ではスクリプトの実行方法が2つ用意されている。
- シェルスクリプト
- AppleScript
- CotEditor が用意している API から自由にエディタを制御できる
- osascript コマンドに -l JavaScript オプションを設定することで、JavaScript でも書ける
JavaScript で選択範囲の内容を変更するスクリプトは次のように書ける。ここでは選択範囲を2回繰り返すようにしている。
#!/usr/bin/osascript -l JavaScript const app = Application("CotEditor"); app.includeStandardAdditions = true; // get active document const doc = app.documents[0]; const selection = doc.selection; selection.contents = proc(selection.contents()); function proc(input) { return input + input; }
このファイルをスクリプトフォルダに拡張し .js で保存し、chmod コマンドなどで実行権限を与える。実行権限がないと動かないので注意。
どのような API が使えるかは一応 CotEditor のヘルプに用意されているものの、ドキュメント化されていないものもあるのでソースを参照するのがよい。
- CotEditor/CotEditor/Sources at develop · coteditor/CotEditor · GitHub
- Document+ScriptingSupport.swift
- TextSelection.swift