emacsで開いているapplescriptソースコードを、
ScriptEditor上で開くemacs lisp コマンド。
applescript-browse
(defun applescript-browse-url (script &optional action)
"Convert script to applescript URL\n\
action --- \"new\"(default) or \"insert\" or \"append\"\n\
ex. (applescript-browse-url \"say time string of(current date)\")"
(format "applescript://com.apple.scripteditor?action=%s&script=%s"
(if action action "new") (url-hexify-string script)))
(defun applescript-browse (pfx)
"バッファーの内容をApplescript URL protocolを使って、スクリプトエディター上に開く。\n\
生成されたURLはキルリングに追加される。\n\
リージョンを対象とする場合は、C-u で実行する。"
(interactive "P")
(save-excursion
(let ((url
(applescript-browse-url
(encode-coding-string
(my-trim-string
(apply (function buffer-substring-no-properties)
(if (equal pfx '(4))
(list (region-beginning) (region-end))
(list (point-min) (point-max)))))
'utf-8))))
(kill-new url)
(browse-url url)
)))
(defun my-trim-string (str)
"stringの両端の空白を取り除く"
(replace-regexp-in-string
"^[ \\\t\\\r\\\n]+" ""
(replace-regexp-in-string "[ \\\t\\\r\\\n]+$" "" str)))
使い方
M-x applescript-browseで、カレントバッファーの全内容が、
スクリプトエディターで開かれる。
リージョンを対象とする場合は、
C-u M-x applescript-browse で実行する。
また、applescript:// で始まるURLをキルリングに追加しているので、
applescript-browseを実行後、C-yでそれを貼付ける事ができる。
仕組みは、Applescript URL protocol supportというのを使って、
単にbrowse-urlしているだけだ。
URL protocol supportについては、
Script Noteさん
の
AppleScript/URL PROTOCOL SUPPORT
に、とてもわかりやすい説明がある。
0 件のコメント:
コメントを投稿