ご利用前に必ずお読みください
> 行きと帰りでヒット数が違うと違和感があるというのはごもっともだと思います。 > > 特に正規表現を使う場合、逆方向検索は「行きすぎちゃった!」ってときに戻る用途で使うことがほとんどだと思いますので。 > > Notepad++ の割り切り方にはニヤリとしてしまいました。 > > > 正規表現では、そういう事もあります。 > > だって正規表現なんだもん。 > > 適宜便利に使ってね。 > > おっしゃるとおり…、正規表現は知れば知るほど闇が深まりますね ^^; > > > とにかく、頭から走査した結果を参照するしかないですよね。 > > 正規表現ライブラリの目論見と同じ結果になってくれることが理想かな?? > > 正規表現ライブラリにテキスト全体を渡した結果を参照するというのは難しいと思います。 > > というのも、テキストエディターは内部で "行ごとにデータを分割" して保持しているものが多いので、正規表現ライブラリにテキスト全体を渡すとなると、すべての行の結合処理が必要となります。 > > これが検索の都度、または検索文字列の強調表示の場合は 1 文字を編集する都度発生するわけですから動作速度に大きく影響します。 > > そのため、これを実現するためには… > > ①データを分割せずに保持する > ②正規表現ライブラリをカスタマイズして分割された行に対応させる > ③正規表現ライブラリを使わず独自の正規表現検索を実装する > > などの仕組みが必要になると思います。 > > "正規表現ライブラリ" を使ったエディターですとそこがボトルネックになるので、例えば複数行のテキストに対して「.*?\n.*?\n」のような正規表現で行をまたいだ検索ができないものも多いかと思います。 > > こういったエディターは正規表現ライブラリに行単位でデータを渡しているものだと推測します。 > > ちなみに Mery は①の仕組みを採用していますが、それでも "検索文字列の強調表示" は編集の都度、正規表現ライブラリにテキスト全体を渡すとなると非常に遅いので、行単位で行っています ^^; > > > 私が言うのも変ですが、どうなっているのが良いのでしょう?? > > 正規表現ライブラリの目論見と同じ結果になってくれることが理想かな?? > > 正規表現の逆方向検索については難しいところですね。 > > その点では、鬼車 (鬼雲) ライブラリには逆方向検索が実装されています。 > > Mery はオリジナルの鬼車 (鬼雲) ライブラリを直接呼び出すことができるので、鬼車に本来備わっている逆方向検索の機能を使うかたちにしています。 > > 間違っていたら申し訳ないのですが、サク〇エディタさんなどで採用されている鬼車のラッパーライブラリ、bregonig.dll には逆方向検索が実装されていなかったと思います。 > > そのため、エディター側で検索開始位置を 1 文字ずつ、または 1 行ずつ前に移動しながら順方向検索することで逆方向検索を実現しているのだと思います。 > > 検索開始位置を 1 行ずつ前に移動しながら順方向検索 (複数ヒットする場合はカーソル位置に到達するまで繰り返す) すれば、あたかも順方向検索を逆方向にたどっているように見えるというわけです。 > > また、これを 1 行ずつではなく "1 文字ずつ" にすれば Mery や Visual Studio 2019 のような動作になるはずです。 > > 1 行ずつ前に移動しながら順方向検索する方式は、行きと帰りでヒット数が一致するという点では良いのですが、動作速度としては検索を何度も繰り返すことになるので遅くなってしまいますね。 > > いずれにしても正規表現ライブラリにテキスト全体を渡せない以上、正規表現ライブラリの目論見とまったく同じ、を実現するのは厳しいかと思います。 > > > という事で、結論「やむ無し」 > > そうですね。こればっかりは誰もが納得できるような正解はなくて、エディターを開発している人の好み次第ということになりそうな気がしますが、いただいたご意見は今後の開発の参考にさせていただきたいと思います。
マークダウンを有効にする
テキストエディター「Mery」ベータ版 v3.8.4 を公開
テキストエディター「Mery」の配色テーマ集
知っておくと便利なテキストエディター「Mery」の 10 個の小技
ヨーグルトメーカーで作った R-1 ヨーグルトで強さを引き出してみた
テキストエディター「Mery」ベータ版 Ver 2.6.9 を公開、自動保存機能、バックアップ機能を搭載
トモダチコレクション わくわく生活 -Switch
トモダチコレクション わくわく生活|オンラインコード版
ニンテンドープリペイド番号 9000円|オンラインコード版
ニンテンドープリペイド番号 5000円|オンラインコード版
ニンテンドープリペイド番号 2000円|オンラインコード版
異世界のんびり農家 20.5
ノーゲーム・ノーライフ 13 ゲーマー兄妹たちは『魔王』を討つ(すくう)よ…
目覚めたら最強装備と宇宙船持ちだったので、一戸建て目指して傭兵として自…
アラサーがVTuberになった話。8
陰の実力者になりたくて! 07