How My Heart Sings

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="&nbsp;"   ;;
    \<)                          OUTPUT="&lt;"     ;;
    \>)                          OUTPUT="&gt;"     ;;
    "copyright sign")     OUTPUT="&copy;"   ;;
    "nb space")           OUTPUT="&nbsp;"   ;;
    "quotation mark")     OUTPUT="&quot;"   ;;
    "registered sign")    OUTPUT="&reg;"    ;;
    "trade mark sign")    OUTPUT="&trade;"  ;;
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

coteditor_scripting

これを実行すると、画像のようなダイアログが出て、挿入する文字列を選ぶことが出来ます。自分的には、とても素敵。

Meta Infomation of this entry

You can add this Entry to your  はてなブックマーク and Delicious

Comments

Add Comment...

スパム対策のため、一ヶ月を経過したエントリにはコメントを書き込めないのです…後、http:と書くこともできません。

Name:

Comment:

Le violon intérieur....
Yasuo Yamashita
vaiorinnhiATTOnaDOTrimDOTorjye-pi-
Y.A.S.U.O Ytterbium Artificial Sabotage and Utility Organism Y.A.S.U.O Yelling Abomination from the Sunless Underground Oasis

Pyblosxom and plugins. For detail, see http://viole.sakura.ne.jp/blosxom/blosxom.cgi/plugin_info