bregonig.dllで動いたよ
bregonig.dllはbregexp.dllと鬼車の合わせ技だから、Delphiからbregexp.dllを使うためのユニットと鬼車を使うためのユニットを参考にして、うまいこと真魚の正規表現検索ならびに置換で利用することに成功した。と言っても最小限のテストしかしていない。上へ検索、下へ検索が狙い通りに動くかどうか、置換で$を使ってカッコを指定できるかどうかって事ぐらい。上へ検索に関しては、bregonig.dllに該当する機能はないけれど、下へ検索しないオプションってのがあって、つまりはその場でマッチするかどうかだけを知ることが出来るので、これを利用して上に検索させることにした。検索のスピードやクセは、中身が鬼車なんだからきっと鬼車と似たような物だろう。
ライセンスに関しては相変わらず、頭が悪すぎて読んでも理解出来ないけれども、ハッキリとわかるように書いてあったのはbsd_license.txtを同梱しなければならないと言う事だ。これはbregonig.dllのルールではなく鬼車のルールらしいから、つまり今までの真魚もそのファイルを同梱しなければいけなかったようだ。ソース公開してフリーで配布してさえいれば、ライセンスを理解できないバカでも大丈夫と思ってやってきたが、こういうこともあるんだな。ナントカライセンスですって書いてあれば、とりあえずそれをググって見るんだけど、でてきた文章がちゃんと日本語で書いてあっても、どうすれば良いのか全然理解出来ない。でも、このようにググらずとも明確に同梱して下さいって書いてるとわかりやすい。わかってないライセンスは違反してるかも知れないけど、忍法知らんぷりで行こうと思う。こういう面倒な権利を誰も主張しなくなる世界を目指している。著作権という悪しき既得権益の完全撲滅ね。それでも理解出来たライセンスには従うしかない。
このdllの動作テスト中、正規表現で長さ0にヒットしたとき、どこにカーソルがあるかわからない真魚の挙動が気になった。検索ダイアログの操作で検索したとき、そのダイアログを閉じない仕様にしてるので、フォーカスはダイアログの方にある。本体の方にフォーカスがないんだからキャレットは表示しないし、選択範囲も0なんだから、どこがヒットしたかわからない。まぁ、ルーラーと行番号とでカーソル位置を判別出来るんだけど、それに気がつかないと消えちゃった感がある。検索ダイアログで検索したとき、ダイアログを閉じないまでも入力フォーカスをエディタに戻すとどうだろうか。再びダイアログにフォーカスを移すには、ctrl+Fを押す手間がかかるし、ダイアログを閉じるにはダイアログにフォーカスを移してからEscなのが煩わしいが、単に次を検索したいだけならフォーカスをダイアログに移さなくてもF3押せば良い。マウスを使ってる場合はフォーカスがダイアログのボタンにあるよりはエディタにあった方が良い。つーことは問題点は、検索ダイアログを一発で閉じる事が出来ないって事ぐらいか。これ改善だな。
まだまだ、細かく作り込まないといけないところはいっぱいあるんだよな。それをせずに放置したままの真魚を本人が普通に毎日使って、特に目立った不自由もなかったけどね。やっぱりよその人が使う事によって、微妙に使い方が違ってこそ、おかしいところが見えてくる物だ。