サクラエディタ マクロを開発してみる
サクラエディタのマクロを書いてみたので、開発方法をメモしておく。
サクラエディタはjavascriptでマクロが書けるので、ここではキーボード操作を記録して再現させるマクロの作り方ではなく、プログラミングによってテキスト変換処理を実装し、サクラエディタから呼び出せるようにするマクロのイメージ。
マクロの公式ドキュメントはここにあるよう。
http://www.geocities.jp/maru3128/SakuraMacro/
S_<メソッド名>となっているが、javascriptでマクロを書く場合は、Editor.<メソッド名>で使えるっぽい。
いろいろあるが、ここでは以下の二つだけをまず使うことにする。
Editor.GetSelectedString(0): 選択範囲の文字列を取得する。 Editor.InsText(text): エディタにテキストを挿入する。
この二つを使うと、選択範囲のテキストを一定ルールで変換する、というマクロは以下のように書ける。
var text = Editor.GetSelectedString(0); if ( text !== "") Editor.InsText(my_function(text));
あとはmy_functionに好きな変換ロジックを実装してやればよい。
とりあえずここでは例として、選択範囲のテキストを大文字<->小文字に変換するマクロを作ってみる。
(デフォルトではCtrl + F7で大文字化、Ctrl + F6で小文字化ができるが、これはトグル式で切り替えができる)
テキストの大文字・小文字変換の関数は以下のようなかんじで実装。
switch_upper_lower.js
// 指定したテキストに大文字が含まれるならば全て小文字に、 // そうでないならば全て大文字に変換した文字列を返す。 function switch_upper_lower(text) { if (text.match(/[A-Z]/)) { return text.toLowerCase(); } else { return text.toUpperCase(); } } //========== // MAIN //========== // 選択範囲のテキストを取得 var text = Editor.GetSelectedString(0); // 変換後のテキストを出力 if ( text !== "" ) Editor.InsText(switch_upper_lower(text));
マクロができたので、テストしてみる。
マクロはエディタに登録し、キーボードショートカットで呼べると便利なので登録する。
設定 > 共通設定
マクロタブから今回作ったマクロを設定する。
マクロ一覧のところに、作ったjavascriptフォルダを指定する。
名前は適当に「大文字・小文字変換」としておく。
Fileに作ったswitch_upper_lower.jsを選択しておく。
後はスクリプト修正が都度反映されるように、「マクロを実行するたびにファイルを読み直す」にもチェックを入れておくとデバッグに便利。完成したら外しておけば、実行が早くなる。
最後に「設定」ボタンを押し、登録内容を保存する。
続いてキー割り当てのタブからマクロをキーボードショートカットで呼べるようにする。
種別を外部マクロにすると、上で作った「大文字・小文字変換」が選べるので、
適当に未割り当てだった「Shift + Ctrl + F6」にしてみる。
割付ボタンを押し、OKを押す。
これで設定はOK。
これで以下のようにテキストを選択する。
このままCtrl + Shift + F6を押すと
正しく大文字化されている。さらに選択し、Ctrl + Shift + F6を押すと、
小文字に戻る。どうやら正しく実装できているよう。
このスキームであとは複雑なテキスト変換関数をjavascriptで実装すれば
同じようにサクラエディタで呼び出せるので、便利。
はじめてのサクラエディタ―オープンソースの高機能エディタを使いこなす! (I・O BOOKS)
- 作者: 清水美樹
- 出版社/メーカー: 工学社
- 発売日: 2013/03/01
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (1件) を見る