2006-01-01から1年間の記事一覧

Giraffe+ 0.5.10.228

Downloadページへ前リリースからの変化 Object.outがto_Stringの戻り値をasしてたのをcastに修正(to_StringがStringを返せなくても大丈夫なように) Object.get_ownerを定義(忘れてたわけじゃないけど、使わないからいいかと考えてた) Vista-like TaskDialog…

Giraffe+ 0.5.9.210

Downloadページへ前リリースからの変化 Container.searchが破壊的なものとして宣言されていたのを修正 Reinitialize時、メインウインドウの親ウインドウのスタイルが元に戻ってなかったのを修正 Reinitialize時、たまにGetIconイベントから$Giraffe:Pathが見…

Giraffe+ 0.5.8.204

Downloadページへ前リリースからの変化 Migemo.query_groupingに否定演算子(-)をサポートさせた Keyboard.Strokeでマウスボタンを扱えるようにした ダブルクォート文字列内にRuby等のように#{...}でブロックを置けるようにした 貼り付け(Paste)時、オートリ…

SourceForgeのgs.exeについて

gs

ダウンロードページ せっかく公開してるので紹介しておきます。 Boost.Testを使ったテストプログラムなのですが、ついでに少し普通のインタプリタみたいなことができるようにしてあります。 コンソールで言語の動作を確認したり、スクリプトがどうパースされ…

Giraffe+ 0.5.7.196

Downloadページへ前リリースからの変化 ShowMenu2が未選択状態でEnterキーを打たれた場合にGiraffe+が強制終了してたのを修正 \x{nnnn}という構文で、ダブルクォートリテラル文字列と文字リテラルのバックスラッシュ構文に、Unicode文字を書けるようにした O…

Giraffe+ 0.5.6.189

Downloadページへ前リリースからの変化 旧DLLのダイアログがモーダルになってなかったのをなるようにした パーサを少し最適化した Giraffe.exeが大きくなりすぎ開発効率が悪くなってきたので、Windowsの部分とMFCの部分をgs_Windows.dllとgs_MFC.dllに分けた…

オブジェクトの作り方

gs

メソッド(メンバ関数)とプロパティ(メンバ変数)を1つずつ持つオブジェクトを例に、クラス風オブジェクト作成や継承について解説します。 obj: Object.clone obj.var:: 0 obj.func: `x[ self.var.* x ] //以下テスト obj.var.= 10 obj.func(2).flush //20が出…

Giraffe+ 0.5.5.169

Downloadページへ前リリースからの変化 Giraffe.Eventに保持されるサブイベントオブジェクトがdefined?に対応してなかったのを修正 google-modeがnkf32.dll無しだと動作しなかったのを修正

リストアイテム選択時のテキスト変化の遅延

Giraffe.MainWnd.OnListSetCurSelTimeOutがゼロ以外のとき、Giraffe.MainWnd.OnListSetCurSelはGiraffe.Config.AutoResize.SetTextTimeOutを使ったオートリサイズの遅延は行わず、Giraffe.MainWnd.OnListSetCurSelTimeOutを用いてテキスト変化とオートリサイ…

Giraffe+ 0.5.5.168

Downloadページへ前リリースからの変化 リストアイテム選択時等、無駄にリストボックスの再描画が発生してたのを修正 Giraffe.MainWnd.OnListSetCurSelTimeOutを設定することで、リストアイテム選択時のテキスト変化を遅らせることができるようにした リスト…

マウス下のウインドウをスクロールする

Ver. 0.5.4.153より、Script\settings\setup\ScrollHotkeys.giraffeとScript\Scroller.giraffeを追加しました。 設定ダイアログ(F5キーで表示)のSettings::setupにあるScrollHotkeysを有効にすると、Win+UpやWin+PageDownでフォーカスに関係なく、マウスカー…

メソッドコール時のObject.@による配列等の展開

これは古い情報です。この件に関する新しい情報はObject.@による引数の配列の展開と引数の配列化 - Giraffe+の開発についてのブログです。(2007-10-24追記) Lispのバッククォート構文の,@やRubyの*です。コール時のみで、引数の残りを配列として受けとること…

Giraffe+ 0.5.4.153

Downloadページへ前リリースからの変化 メソッドコール時、コンテキストオブジェクトを静的に生成するようにした メソッドコール時、引数の名前が定義済みなら書き換えるようにした メソッドコールをowner等も含め細かく設定し実行できるObject.call_manuall…

Giraffe+ 0.5.3.146

Downloadページへ前リリースからの変化 C言語のNULLのような、全てのポインタと互換性を持つゼロの値をC_nullとして定義 リテラルの0は全てZeroオブジェクトになるようにした。 view-and-sortが実行後にリストボックスのInvalidate(描画命令のようなもの)を…

(def|set|get)_copyとMethod.&=, |=, =&, =|

gs

あるメソッドにORやANDで別のメソッドを結合するとき、getとsetで2回同じメソッド名を表記しなければいけません。 Object.method@ `[ ... ].| (Object.method$) 冗長です。これを解決すべく、Methodオブジェクトに&=, |=, =&, =|を定義しました。'='が引数の…

index(Object.[x])やslice(Object.[x y])について

これは古い情報です。この件に関する新しい情報はindex(Object.[x])やslice(Object.[x y])について - Giraffe+の開発についてのブログです。(2007-10-29追記) 配列(Array)や連想配列(Map)や文字列(String)を扱うための構文糖(シンタクスシュガー)、[]構文の…

Giraffe+ 0.5.2.143

Downloadページへ前リリースからの変化 設定ダイアログでスクリプトファイルを作成する際、空白やドットを含む名前を拒否するようにした Array.erase(Uint Uint)をString.erase(Uint Uint)と同じ動作になるよう新規に定義した Array.shallow_copyが普通のcop…

Struct.new2と構造体の使用の実践

Struct.newは引数に型名と値名を取る形式でした。そうでなければ、はじめの引数が数値の場合にアラインメント(#pragma packの引数)扱いしたり、値名の後に数値を置くことで配列を扱うという仕様に出来ないからでした。 問題は、そういう仕様である必要があっ…

Giraffe+ 0.5.1.127

Downloadページへ前リリースからの変化 DWORD等のWindowsの基本型をWindows_DWORD等と定義した gs::class_が@sizeofの定義を間違ってたのを修正 ShowMenu2で表示されるメニューをマウスでクリックするとフォーカスが移動していたのを修正 Object.constizeとc…

登録アイテムのサブフォルダ内探索とMigemo.query_groupingを組み合わせる

登録アイテムのサブフォルダ内もリストアップ対象にして、Migemo.query_groupingでAND検索とかも出来るようにします。siteinit.giraffeに追記してください。 tmp: AutoCompleteSetList$ AutoCompleteSetList@ `text[ path:is-data(text).! [callee.old_func(…

スタートメニューを登録アイテム扱いする

下記スクリプトを実行するとConfig.Path.Dataにスタートメニューのパスが書き加えられます。Configの内容は保存されるため次の起動時にも有効です。よって、このスクリプトは、siteinit.giraffeに追記する等ではなく、一度だけ実行します。コピー後、エディ…

Giraffe+ 0.5.0.98

Downloadページへ前リリースからの変化 Windows 2000で動かなくなっていたのを修正(MFC_CWndのXP以上メソッドを削除した) ベータじゃなくなったし、リンク時にデバッグ情報を生成されないようにした Nil.copyがconstオブジェクトを返していたのを修正(エディ…

Giraffe+のFAQ

基本的な質問 何をするソフトウェア? 登録してあるファイルを実行したり、目的のパスにアクセスするといった日常的な作業を効率化します。スクリプトを利用した多彩な設定が可能です。 動作するOSは? Windows 2000/XPで動作します。Vistaでの動作は確認し…

Migemo.query_grouping

概要 Migemoは文字列を受け取り、正規表現を返します。そこで、正規表現で表現できるものならなんでも返していいんじゃないかと、入力文字列を適当に解釈してAND検索やOR検索の正規表現を返す関数を作ってみました。(パーサ部分のソースとそのテスト) 括弧に…

Giraffe+ 0.5.0.89b

Download 前リリースからの変化 簡易な文法の文字列からAND検索やOR検索の正規表現を返すMigemo.query_groupingを実装 たったひとつメソッドを追加しただけですが、いいものを作ったと思えたので更新しました。

Migemoを使用できる状態にするには

2011-03-14追記: このエントリは古い情報です。現行Giraffe+では設定ダイアログ(F5)のSettings/setup/(AC)MigemoEnableで可能になっています。 下記をsiteinit.giraffeに貼り付けます。(migemo.dllをGiraffe+のDLLフォルダに置いてはいけません。DLLフォルダ…

ファイル検索でMigemoを使う

下記をsiteinit.giraffeに貼り付けることで可能です。当然実行時にはMigemoがopenされている必要があります。(Migemoを使用できる状態にするには) global.find_MakeSearchFactor: `file[ s: Migemo.query(file) s.empty.? [s@ '.*'] Regex.new(s "i") ] glob…

Giraffe+ 0.5.0.85b

Download 前リリースからの変化 言語部分(gs) スロット操作を簡略化するObject.set_or_defとObject.get_or_defを定義 言語部分以外(Giraffe+) find.giraffe(Ctrl+Fで実行されるやつ)で検索関数を自由に定義できるようにした(Migemoを使えるようにした) 少し…

Giraffe+ 0.5.0.79b

Download 前リリースからの変化 言語部分(gs) GCがcyclic referenceでメモリリークしてたのを修正 言語部分以外(Giraffe+) Keyboard.Strokeを、すでに押されてるmodキーは押さないようにした ショートカットディレクトリにあるディレクトリにドットが含まれ…

if, unless, ?, !

gs

もっとも単純かつ使用頻度の高い分岐手段です。Object.ifはselfがtrueの場合に第一引数を、falseの場合には第二引数をそれが存在する場合に評価します。第三引数以降が存在する場合は、第二引数の結果がtrueなら第三引数を、falseなら第四引数を…と繰り返し…