CotEditor 用のスクリプトを JavaScript で書く

久しぶりに CotEditor を使ってみたらすこぶる良かった。そこで自在に CotEditor を操るべくスクリプトの書き方を調べた。

f:id:scientre:20190913215309p:plain

CotEditor ではスクリプトの実行方法が2つ用意されている。

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 のヘルプに用意されているものの、ドキュメント化されていないものもあるのでソースを参照するのがよい。

例:インデント以下の位置でコメントアウト・解除

次のリポジトリに作成したスクリプトを公開する。toggle-comment.js が今回作成したインデント以下の位置でコメントアウト・解除するスクリプト

github.com