Giraffe+ 0.5.37.528

Downloadページへ

前リリースからの変化

  • コマンド起動後のウインドウを隠す処理がおかしくなってたのを修正
  • doc\object_tree.xmlでconstをconstとして表示するようにした
  • 定数オブジェクトの内部式を文字列化した場合にリテラルにならないようにした
  • NULL文字のto_Stringは空文字を返すようにした
  • Windows_LPCTSTR等の@typeにChar等のメソッドが無駄にコピーされていたのを修正
  • doc\giraffe-mode.lを書き直した
  • settings\setup\http-iconが.icoで終わるURLを無視していたのを修正
  • Giraffe.ListBox.eachを定義した
  • Regex_iterator.scanを定義した
  • Ctrl+Shift+DeleteがUnicodeファイルの削除に失敗していたのを修正

コマンド起動後のウインドウを隠す処理がおかしくなってたのを修正

GetEventがMethodを返すようになり、それがifの第一引数となった結果、to_Boolを持たないMethodは常にfalseを返すということになっていたようです。
Method.to_Boolを定義しました。インスタンスが無い場合のみfalseを返します。

doc\object_tree.xmlでconstをconstとして表示するようにした

例えばWindows_LPCTSTRはTchar constのポインタですが、それがTcharのポインタのように表現されていました。

定数オブジェクトの内部式を文字列化した場合にリテラルにならないようにした

例えば、Regexを含むコードはr//というパースエラーになる文字列になっていました。

NULL文字のto_Stringは空文字を返すようにした

NULL一文字の文字列を返していましたが、その結果、NULL文字を含むエラーダイアログで文字列が中断していました。

Windows_LPCTSTR等の@typeにChar等のメソッドが無駄にコピーされていたのを修正

Char.constizeしたものを持たせていたわけですが、constizeはcopy.constize!なので、スロットもコピーされていました。
Char.clone.constize!するようにしました。

doc\giraffe-mode.lを書き直した

ずっと放置してましたが、急に思い立ってやりました。やっと新言語に対応した自動インデントができるようになりました。

settings\setup\http-iconが.icoで終わるURLを無視していたのを修正

正規表現が間違ってました。

Giraffe.ListBox.eachを定義した

スクリプトで適当に実装しました。Script\GiraffeListBox.giraffeです。
使用例:

//リストボックスの文字列を全て大文字化
Giraffe.ListBox.each& `item[
  item.SetText(item.Text.to_upper)
]
Giraffe.ListBox.RedrawWindow

このイテレータの実質は単なるUintです。それにメソッドを定義してそれっぽくしてるだけです。

Regex_iterator.scanを定義した

正規表現イテレータの参照先を文字列ではなくマッチオブジェクトにしたことで、Rubyのscanと同じようなことができなくなっていました。
柔軟にした結果ですので、その結果を使って、簡単にスクリプトで実装しておきました。Script\Regex_iterator.giraffeです。
使用例:

//Aで始まる行のA以降を繋げて返すメソッド
`s[
  s.=~ r/^A(.+?)$/.scan(1).join
]

第一引数は省略すると0になり、マッチした文字列全体が返ります。

Ctrl+Shift+DeleteがUnicodeファイルの削除に失敗していたのを修正

Script\file.giraffeを全体的にUnicodeに対応させておきました。
(Container|String).shell_deleteを使うようにすればよかっただけなんですが、存在を忘れていて、スクリプトをいじりました。旧関数に一切触れないためにわざわざ新関数を定義しておいたのに、なにやってんでしょうか。