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
に、とてもわかりやすい説明がある。