REGEX 2022 Beta 2 を公開します。Regular Expression 以外に C++17 の Filesystem からファイルリネーム機能が CF25 用拡張機能として利用できるようになりました。
リネーム機能はちょうど一週間前に実装されましたが、そこから動作テストなどを経てある程度セキュリティとか強化された安定版としての公開が間に合いました。
Beta 1 との比較で Beta 2 に追加された機能は
- 文字列検索機能として Regex Search (Partial Match/部分一致)
- filesystem を使ったディレクトリ/ファイルの一覧取得
- filesystem を使ったファイルのリネーム機能(Regex との連携が可能)
- HWND に追加機能として Window Title Caption の変更
- 追加された機能を使った動作サンプルの追加・更新
これらが含まれます。
サンプルファイルのビルドテストで起動時に Windows OS のパーミッションが必要になるという想定外ケースが報告あったのですが、検証した結果、他エクステンションの中になにか ROOT や SU (に相当する権限は Windows OS だとアドミン権限?)を必要とするものが混じっていて、それを一度利用して保存したことがある、かつ .mfa から該当のエクステンションを削除したしリソースエディタから見ても痕跡は残ってないのにアプリをビルドするとなぜかその拡張が含まれている。ビルドした時のサイズが正常より 1 MB ほど大きくなっているなど。
CF25 側バグのようですが、得体のしれない現象は確認できましたが新規のファイル使った再現性は未確認です。解決策としてはその .mfa はほぼ壊れているか呪われているので新しく作り直した空っぽのプロジェクトにフレームをコピペで移植してプロジェクトファイルを再構築してください。これで直しました。たぶん原因は
- Explorer
- Tree Control
- Power System Object
これらが怪しいエクステンションですが確証はありません。権限が強すぎるという意味だと Power System Object は OS の再起動やスタートアップへの登録まで指定ができるので悪用されると大変怖い。しかも古い。
Explorer と Tree Control はディレクトリ操作を GUI から可能にする拡張機能ですが、これも結構強い権限を要求する可能性があるので使わないほうが無難。これも古い。
prester.org の作る拡張機能では C++17 の filesystem を利用していますがセキュリティの懸念からファイル削除は一般向けとしては実装されない予定です。ディレクトリ・ファイル走査もパーミッションを越えてリスト取得はできないので、Windows OS の不正アプリ検出機能に引っかかる可能性は少ないと見積もっています。ちなみに不正アプリ検出に引っかかると管理者権限で起動してもセキュリティ警告は消えませんでした。あとふざけたブログとかではセキュリティ懸念を無視して OS の警告水準を下げろと書いてありましたが真に受けて下げないでください。むしろ上げろ上げろ。一番最高にしとけ。意味わからないなら使うのやめろ。です。
Beta 2 発表後の予定は未定
もともと正規表現を CF25 で使いたかっただけなので、筆者のために作られた拡張機能としてスタートしました。ついでに filesystem とか Window Control 系も新しく作ってなるべく古いエクステ使わないで自作したエクステだけで済まそうという発想から Beta 2 に至りました。
いまだに拡張機能の名前も正式に決められずでも REGEX 使えるからこのまま REGEX 2022 と名乗ってもいいかなぁと思いながら Beta 3 はどうしようかなと、悩んでいます。
Beta 3 は未定です。筆者の希望していた機能は Beta 2 でだいたい実装されているため、アイディアはあるけど今後スケジュールが忙しくなってくるため 8 月まではなにか公開する予定はありません。Beta 2 のバグフィックスに時間も使いますがこの後は自作のエクステ使った自分用アプリが一般公開向けな完成度になりそうならそちらを先に公開します。
というわけで
追加機能の要望やバグ報告についてはブログコメント欄をご利用ください。それではベータ 2 お楽しみください。
ダウンロード:配布終了
お疲れ様です!
久しぶりに覗いたら現代的な正規表現に対応したエクステンションが開発されていて感激です!
テストしてみたところ、バッチリ使えておりますし処理速度もかなりのものだとお見受けしました。
大変実用的なものを作ってくださりありがとうございます!
これからまだいろいろテストしてみますので、不具合など見つけましたら報告しますね!
コメント+動作確認ありがとうございます。>> Senda
少し時間取れそうになってきたので9月くらいに Beta 3 公開を予定しています。
Beta 3 は新機能も含め大幅に内部処理を書き直してあります。
Beta 2 で Dangling Pointer の使用など多少無茶して機能実装を急いだため潜在的な問題が含まれており、Beta 3 はメモリ管理を強く意識した改修が施されています。エクステンション利用者側からは使用感に変化が無いよう考慮してあるのですが、Beta 3 でまた感想などいただけたら幸いです。
Beta 3 では REGEX の完全一致検索機能が追加され、完全一致から得られたサブマッチを配列のように扱い取得できる機能と、スマートデリミタ(仮称)という機能が付く予定です。