How My Heart Sings

Mon, 20 Jun 2005

ポンジュース旨い

DayDreamer - ポンジュースは美味いよね経由でオレンジジュース番付ポンジュース最高最高最高との記述あり。まさしく!!って感じ。

美味いというより旨いのだ。こってりとしてるのだ。それでいて後味は爽やかで。これを飲んだらもう、他のうそオレンジジュースは飲めやんよね。

…そういや、愛媛県内のホテルに泊ると、水やお湯の出る蛇口とは別にポンジュースが出る蛇口があるとかないとかいう話しをどっかで聞いたことがあるんやけど、本当やろうか。この話しは何時耳に挟んだんやっけな…わりと大人になってからやと思うんやけど。

Meta Infomation of this entry

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

Sun, 19 Jun 2005

CotEditorに対する瑣末な指摘

例えば、ScriptMenuフォルダにvar....shという名前のファイルを置くと、Scriptメニューにvar..という名前で表示されてしまいます。いっこ足りない。

拡張子を取り去るところのロジックがおかしいようです。いや、何が言いたいかというと、まっきんのメニューらしく、これを選択すると何か応答を求められますよ、という意味でてんてんてんていうのを出したいわけです。前のエントリーでそういうスクリプトを書いたので。

CotEditorKEditよりもAppleScript対応度が高いのと、スクリプトのエラーをScript Error Windowに吐いてくれるのが気に入ったので、さて、乗り換えの準備をしましょうかね。手間はかかるけど…

Meta Infomation of this entry

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

Sat, 18 Jun 2005

CotEditor用のスクリプトを書いてみるそのよん

CotEditor用のスクリプトの話しのつづき。前からやってみたかった、AppleScriptでダイアログとかを出してその結果によってShell Scriptの処理を分岐させて…というのを考えてみました。お題は数値文字参照。

処理の流れは次の通りで出来た。リストの画面でキャンセルを押した場合の挙動が他の場合(ダイアログとか)と違っているので、少し悩みました。うーむ、もっとかっこいいダイアログを出せないものだろうか。それと、メンテナンスするのに、常に二箇所修正しないといけないな…

  1. AppleScriptでリストを表示
  2. 選択結果を変数${UIINPUT}に格納
  3. 変数${UIINPUT}の値をもとに、変数${OUTPUT}に対応する数値文字参照の値を代入
  4. CotEditorの選択範囲を変数${OUTPUT}に置換
  5. キャレットを選択範囲の文字数分後へ移動
#! /bin/sh
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%

UIINPUT=`osascript << EOF
tell app "SystemUIServer"
    activate
    try
        set myList to {\
            "&", \
            "<", \
            ">", \
            "nb space", \
            "copyright sign", \
            "registered sign", \
            "inverted !", \
            "inverted ?" \
            }
        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;"     ;;
    "nb space")        OUTPUT="&nbsp;"   ;;
    "copyright sign")  OUTPUT="&copy;"   ;;
    "registered sign") OUTPUT="&reg;"    ;;
    "inverted !")      OUTPUT="&#x00a1;" ;;
    "inverted ?")      OUTPUT="&#x00bf;" ;;
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

Meta Infomation of this entry

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

Tue, 14 Jun 2005

CotEditor用のスクリプトを書いてみるそのさん

ひとつ前のエントリーではAppleScriptのなかにShell Scriptを埋め込んだ例を書きました。今回は、逆の方向で。こっちも試さないとね。

#! /bin/sh
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%

INPUT=`/usr/bin/perl -e '
if ($0 eq __FILE__) {
    print &Bdate."\n";
}

sub Bdate
{
    local($time) = @_;
    local($beat);
    $time = $time || time;
    local($sec, $min, $hour) = (gmtime($time+60*60*1))[0..2];
    $beat = ((($hour * 60 + $min) * 60 + $sec) / 86.4) % 1000;
    sprintf("@%03d",$beat);
}
1;'`

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 "${INPUT}"
        set numOfMove to (count of character of selection)
        set (range of selection of front document) to {Loc + numOfMove, 0}
    end if
end tell
EOF

あ、こんなふうに変数をAppleScriptに渡せるのか。こちらのほうが色々簡単ですかね。AppleScriptの部分は括弧で括ると少しは見易くなるような気がする。

Meta Infomation of this entry

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

CotEditor用のスクリプトを書いてみるそのに

CotEditor用のスクリプトを書いてみる。の続きをもうちょっとだけ。

今まで試してきたスクリプトはどれも、最前面のウィンドウにおいて結果が選択されたままになるのですが、続けてテキストを入力していくのにその状態では都合が悪い場合もあるわけです。…サンプルに、処理後にキャレットを移動するものがありました。

--
property newStr : "TEMPLATE"
--
--
tell application "CotEditor"
    if exists front document then
        set {loc, len} to range of selection of front document
        set numOfMove to count of character of newStr
        set contents of selection of front document to newStr
        set range of selection of front document to {loc + numOfMove, 0}
    end if
end tell

サンプルを元に書いたものを次に挙げます。元ネタはどっかから拾ってきた、Internet Timeを出力するスクリプトです。どこで改行するか、どのようにエスケープするか、どのようにクォートするかとかで悩みました。それにしても、AppleScriptの文法は苦手です…

tell application "CotEditor"
    if exists front document then
        set {loc, len} to range of selection of front document
        set (contents of selection of front document) to (do shell script "/usr/bin/perl -e 'if ($0 eq __FILE__) {
    print &Bdate.\"\\n\";
}

sub Bdate
{
    local($time)  =  @_;
    local($beat);
    $time = $time || time;
    local($sec, $min, $hour) = (gmtime($time+60*60*1))[0..2];
    $beat = ((($hour * 60 + $min) * 60 + $sec) / 86.4) % 1000;
    sprintf(\"@%03d\",$beat);
}
1;'")
        set numOfMove to count of character of selection
        set range of selection of front document to {Loc + numOfMove, 0}
    end if
end tell

大体において、やりたいことが出来そうなのが分りました。

Meta Infomation of this entry

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

<<  Page 2 of 4  >>

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