Sun, 24 Dec 2006
CotEditorとSystemUIServerを使ったスクリプティングの例
久々にまっきんの話題…というか、このサイトも随分久方振りの更新ですね…
MacOSXで使うテキストエディタのCotEditorにおける、SystemUIServerを使ったGUIスクリプティングのサンプル。全体としてはシェルスクリプトになっています。文字列の操作とか条件分岐をするのに、AppleScriptよりシェルスクリプトのほうが書き易いから…
#! /bin/sh
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%
UIINPUT=`osascript << EOF
tell app "SystemUIServer"
activate
try
set myList to {\
"&", \
"<", \
">", \
"copyright sign", \
"nb space", \
"quotation mark", \
"registered sign", \
"trade mark sign" \
}
set myResult to (choose from list myList default items "&")
on error
beep
end try
return myResult
end tell
EOF`
case ${UIINPUT} in
false) OUTPUT="" ;;
\&) OUTPUT=" " ;;
\<) OUTPUT="<" ;;
\>) OUTPUT=">" ;;
"copyright sign") OUTPUT="©" ;;
"nb space") OUTPUT=" " ;;
"quotation mark") OUTPUT=""" ;;
"registered sign") OUTPUT="®" ;;
"trade mark sign") OUTPUT="™" ;;
esac
osascript << EOF
tell application "CotEditor"
activate
if exists front document then
set {loc, len} to (range of selection of front document)
set (contents of selection of front document) to "${OUTPUT}"
set numOfMove to (count of character of selection)
set (range of selection of front document) to {Loc + numOfMove, 0}
end if
end tell
EOF
これを実行すると、画像のようなダイアログが出て、挿入する文字列を選ぶことが出来ます。自分的には、とても素敵。