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

Giraffe+ 0.7.2.1433

Downloadページへ ADD: Block.+ ADD: Global mouse event (Giraffe.Event.Mouse.global-ld or so) ADD: Method.bind_self ADD: Mouse wheel event (Giraffe.Event.Mouse.edit-wheel) ADD: Object.new (Object.cloneのシノニム) ADD: Settings/setup/SwitchWi…

Giraffe+ 0.7.1.1404

Downloadページへ ADD: 最終更新日時によるファイルソート (Config.List.SortModeかEvent.GetSortModeの戻り値の配列の初めの値) FIX: Balloon の高さが無駄にちょっと長い FIX: Balloon がWindowsテーマ無しの場合にテキストの位置がずれる FIX: SetTextUnd…

Giraffe+ 0.7.0.1402

Downloadページへ ADD: Windowsのテーマも考慮したウインドウフレーム (settings/setup/(DRAW)WindowsDefaultFrame) ADD: migemo.dll/dict (settings/EnableMigemoを設定無しで使えるように) CANCELED: FIX: Migemo が非日本語ロケール環境で使えない (ロケ…

関数パターンマッチングのまとめ

gs

オブジェクトリテラルも使えるようになって、もう大きな変化も無さそうなのでまとめます。 基本 シンボルはそのままローカル変数になります。 `x[ x ].(1) //1引数の数が合わなければエラーになります。 `x[ x ].() //error仮引数を書かなければ、引数ゼロを…

Giraffe+ 0.6.28.1343

Downloadページへ ADD: istreamに定数を渡すことでscanfのフォーマット文字列のように ADD: 引数pattern matching (destructuring) でObjectリテラルを使えるように ADD: tail_recur (名前callのみサポート(しかも遅い(stack overflowしないだけ))) FIX: Get…

Giraffe+ 0.6.27.1341

Downloadページへ FIX: CWnd::GetFont は使うべきでない。非同期のため。 FIX: 非同期描画中にリストボックスをスクロールすると描画がおかしくなることがある。

Giraffe+ 0.6.26.1304

Downloadページへ FIX: マルチスレッド描画でスクロールとマークをするとマークアイテムが非マークに表示されることがある FIX: スレッド描画中にリストアイテムを変更すると回復不能のエラーになる MOD: Config.*.Thread.Enable にマイナス値で描画のsingle…

スレッド描画のまとめ

アイコン取得やネットワークパスのタイムアウト待ちなどで入力できない状態になるのを回避するために、描画をスレッド化できるようにしています。ネットワークパス等を使ってないなら、そんなに深く考える意義のあるものではありません。 描画される部位は、…

Giraffe+ 0.6.25.1232

Downloadページへ ADD: xyzzyのgiraffe-mode.lのF4でメソッド定義ファイルを開く ADD: Giraffe.Edit.OnSetText, SetTextのText変更後の処理 ADD: Object.not! ADD: Window.FindRegex ADD: Window.FindWild2, FindRegexをワイルドカード->正規表現変換して呼…

Giraffe+ 0.6.24.1222

Downloadページへ ADD: Array.to_Block ADD: Block, Method.resolve3, 全ての名前解決をする。デバッグ用。 ADD: Block.to_Array FIX: ShowMenu でdynamic sub menuの戻り値のArrayが解放されることがある MOD: Block リテラルは expr_block でなくてもいい

utf8everywhere.orgを読んで

UTF-8 Everywhere インターネットにおいてはそりゃあそうだろうと思いつつ読んでみたら、WindowsにおけるC++プログラミングの話でなかなか興味深かった。 要約すると、 UTF-16は固定長ではない UTF-8を使ってもパフォーマンスコストは無い というところか。 …

Object Invocation

gs

シンボルに続いて()があるか無いかと、そのシンボルが指すものがMethodかどうかで、インタプリタの解釈が少し変わります。 Method 非Method x x() x x() x() x.invoke() Methodの場合は同じですが、非Methodの場合は、()があればinvokeが呼ばれ、無ければそ…

Giraffe+ 0.6.23.1215

Downloadページへ ADD: COMPILE_TIME_EVAL, コンパイル時Context.eval ADD: Container.irange, {element index} ジェネレータ ADD: settings/key/ShowCurrentModeKeys, mode-localなキーイベントのメニュー FIX: Migemo_grouping は最初か空白に続く最後のハ…

ContainerのC++のSTLのalgorithm系メソッドについて

gs

func(begin, end, ...)は、func(self.begin, self.end, ...)となる 破壊的なものは!が後置、それの付かない版はコピーを返す ArrayやMapの値は置き換え(self.[index] = value)でなく書き換え(self.[index].= value)になる for_eachはeachがあるので無し。eac…

Giraffe+ 0.6.22.1208

Downloadページへ ADD: Object は + と - を ++ と -- を使って定義すべき ADD: Object.negator, Method.notのシノニムでobject invocationをサポートする ADD: Object.to_Range, Range.make_exclude& self.begin, self.end. ADD: Slot_value_type は :key.=…

コンマとセミコロン

gs

また変に複雑化しました。セミコロンを式の省略可能なセパレータとすることで、&による括弧省略記法時に、どこまでを引数とする、というのを表現できるようにし、それならコンマも書きたければ書けるものにと、 コンマとセミコロンを、省略可能な、C系の言語…

Giraffe+ 0.6.21.1201

Downloadページへ ADD: 省略可能な引数コンマと終端セミコロン FIX: Giraffe\ManualとメインメニューのManualが動作しない MOD: Container/String.shell_menu はverbの数値を返すべき MOD: EvalText (デフォルトでF1) は入力テキストが空白の時に説明を出す…

WinampのJump To FileでMigemoを使う

バイナリ ソース*1 Jump To File (Extra)のソースがあれば10分で終わるようなことだったんですが、見つからなかったので自分で作りました。Enterによる再生のみサポートしています。 以下、Readmeのコピー。 概略 WinampでJキーを打つと出るJump To Fileダイ…

SwitchWindowのまとめ

もう大した変化も無さそうなのでまとめます。 設定ダイアログの、Settings/hotkey/SwitchWindowです。SwitchMDIWindowもMDI子ウインドウに使うというだけで、操作法等は同じです。 基本的な目的は、Alt+Tabと同じことを文字入力ですることですが、複数のウイ…

Giraffe+ 0.6.20.1187

Downloadページへ ADD: Script/samples/autocompletion_with_ShowMenu2.giraffe ADD: Shift+Delete でSwitchWindowにおいて選択したウインドウを閉じる ADD: ShowMenu2 はKeyイベントを持つべき ADD: settings/setup/SwitchWindowSort, 入力に一致するものを…

Giraffe+ 0.6.19.1144

Downloadページへ ADD: Event.OnSize/Move_ListBox ADD: Method.bind_back, 引数を後ろからbind ADD: Object.denull, 引数がNullならselfを、違えば引数を返す ADD: Object.set_parent, inherit! and inherit, selfのparentを引数のオブジェクトに ADD: Wind…