HMJRE.DLLで英単語系が無効No.02160
たーびん さん 03/07/07 18:58
 
HMJRE.DLLで、 ¥w (英単語)、¥> (英単語の終わり)が
使用できません。

¥< (英単語の始まり) は使用できるようです。

秀丸v4.00β6

[ ]
RE:02160 HMJRE.DLLで英単語系が無効No.02162
ひろ さん 03/07/07 19:26
 
 たーびんさん今日は、ひろです。
> HMJRE.DLLで、 ¥w (英単語)、¥> (英単語の終わり)が
> 使用できません。
 それぞれ単独なら使えるので、使用できない訳ではなさそうです。何しても
Jre32.DLL と動きが違うし、a\> といった使い方が出来ないのは不便ですね。
 ##編集中の投稿を送ってしまったm(__)m。

[ ]
RE:02162 HMJRE.DLLで英単語系が無効No.02163
秀まるお さん 03/07/07 22:02
 
 ちゃんとテストして正常動作を確認してたつもりが、「a\>」がダメとの情報
で原因が分かりました。

 正規表現のコンパイル時のバグのようです。さっそく修正させていただきます。

[ ]
RE:02163 HMJRE.DLLで英単語系が無効No.02169
ひろ さん 03/07/08 12:57
 
 秀まるおさん、秀丸担当さん今日は、ひろです。
> 「a\>」がダメとの情報
> で原因が分かりました。
 書いてみるものですね。

>  正規表現のコンパイル時のバグのようです。さっそく修正させていただきます。
 宜しくお願いします。

 ところで、HmJre.dll とは関係ありませんが、単語関係ということで一つ。
現状、「_」が含まれることを除外しても、単語の検索は直感と一致無いこと
が良くあります。具体的には
http://www.maruo.co.jp/turukame/3/x00905_.html#914
や、鶴亀の会議室で話題になる
> 例えばメールアドレスのドメイン名部分(@以降部分)で判定させたい時に、
> @も含めて「の単語を含む」で指定すると何もヒットしなくなります。
の問題です。これは Ver.4.00 でもそのままでしょうか?
 検索文字列の先頭がアルファベット (と「_」) 以外なら、その前の文字が
何であってもヒットの対象とする。検索文字列の最後がアルファベット (と
「_」) 以外なら、その後の文字が... とすれば、直感に一致すると思うので
すが、一番の問題はやはりマクロの互換性かなあ〜。

[ ]
RE:02169 HMJRE.DLLで英単語系が無効No.02170
秀まるお さん 03/07/08 13:38
 
 単語の区切りというか、「次の単語/前の単語」でのカーソル移動その他につ
いては秀丸担当が直す(カスタマイズ可能にする)ようなことを言ってました。
いつ対応するかは知りませんが。

 HmJre.dllの「\< \> \w」については、JRE32.DLLおよび一般の正規表現と同じ
にしないとまずいんじゃないかと思います。なので今の仕様のままにします。

[ ]
RE:02170 HMJRE.DLLで英単語系が無効No.02173
ひろ さん 03/07/08 17:10
 
 秀まるおさん今日は、ひろです。
>  単語の区切りというか、「次の単語/前の単語」でのカーソル移動その他につ
> いては秀丸担当が直す(カスタマイズ可能にする)ようなことを言ってました。
> いつ対応するかは知りませんが。
 解りました。

>  HmJre.dllの「\< \> \w」については、JRE32.DLLおよび一般の正規表現と同じ
> にしないとまずいんじゃないかと思います。なので今の仕様のままにします。
 元々「\w」については、BRegIf.dll と JRE32.DLL で意味が全く違います。
また「\< \>」も何を持って「一般の正規表現」とするか判らない(;_;)。
 どちらにしても、この件については HmJre.dll を JRE32.DLL に合わせると
いうことですね。宜しくお願いします。

[ ]
RE:02173 HMJRE.DLLで英単語系が無効No.02174
秀まるお さん 03/07/08 18:10
 
>  元々「\w」については、BRegIf.dll と JRE32.DLL で意味が全く違います。

 それは知りませんでした。今調べてみたら、たしかにJRE32.DLLの方が特殊み
たいな気がします。

> また「\< \>」も何を持って「一般の正規表現」とするか判らない(;_;)。

 それまた知りませんでしたが、僕が参考にしてるのか以下のURLです。

  http://www.kt.rim.or.jp/~kbk/regex/regex.html

 あと、http://www.atmarkit.co.jp の正規表現コーナーも参考になります。

 果たして、この辺の仕様は今後どうすればいいのやら?。実は、{n,m}という
表記に対応しようかと思ったりもしたんですが、JRE32.DLLとの互換性を考える
と勝手に拡張するのもまずいかなと思って保留になってます。内部的には簡単に
実現できるんですけど。

 \fで区切る仕様も独自だし、もう手遅れって気もします。

[ ]
RE:02174 HMJRE.DLLで英単語系が無効No.02177
でるもんた さん 03/07/08 18:33
 
>  果たして、この辺の仕様は今後どうすればいいのやら?。実は、{n,m}という
> 表記に対応しようかと思ったりもしたんですが、JRE32.DLLとの互換性を考える
> と勝手に拡張するのもまずいかなと思って保留になってます。内部的には簡単に
> 実現できるんですけど。
>
>  \fで区切る仕様も独自だし、もう手遅れって気もします。

動作環境か検索ダイアログで指定できるようにすればいいのではないでしょうか。

マクロの互換性の問題だったら「regular 指定は JRE32.DLL 互換、regular2
指定は Perl 風」とするとか、あるいは設定関係キーワードを新設して各ビット
ごとに on/off できるようにするとか。

[ ]
RE:02177 HMJRE.DLLで英単語系が無効No.02178
ひろ さん 03/07/08 19:40
 
 秀まるおさん今日は、ひろです。
>  それは知りませんでした。今調べてみたら、たしかにJRE32.DLLの方が特殊み
> たいな気がします。
 その様です(^^;。

> > また「\< \>」も何を持って「一般の正規表現」とするか判らない(;_;)。
>
>  それまた知りませんでしたが、僕が参考にしてるのか以下のURLです。
 こちらに関しては Perl には有りませんが、GNU grep 等は JRE32.DLL と同
じようなので、問題ないと思います。

>  果たして、この辺の仕様は今後どうすればいいのやら?
 個人的には旧バージョンとの互換性がありますから、これまでに実装されて
いる物はそのままで良いと思います。特に
>  \fで区切る仕様

 あと
> 実は、{n,m}という
> 表記に対応しようかと思ったりもしたんですが、JRE32.DLLとの互換性を考える
> と勝手に拡張するのもまずいかなと思って保留になってます。
等の今後の拡張は、JRE32.DLL とは上位互換性ということで、正規表現の故郷
である UNIX で基本になっている regex に準拠すればよいと思います。

 そもそも正規表現は規格がなく UNIX のツールですら統一されていないので、
あまり気にしても仕方がないと思います。最終的に「基本は regex、例外は〜」
となるようにすれば良いのでは?

[ ]
RE:02163 HMJRE.DLLで英単語系が無効No.02196
たーびん さん 03/07/09 11:48
 
秀丸v4.00β7 (HMJRE.DLL v0.06) にて修正されているのを確認しました。

\w や \> は文字と組み合わせて使うのが前提だと
思いこんでいたので、単独で使用することを思いつきませんでした。
最初の投稿のような書き方になってしまって失礼しました。

[ ]
RE:02178 HMJRE.DLLで英単語系が無効No.02205
秀まるお さん 03/07/10 11:06
 
 やはりJRE32.DLLからさらなる拡張なり仕様変更なりすると、ダイアログボッ
クス上でのカスタマイズやマクロの拡張なんかも必要になって面倒そうな気がし
ます。

 あんまり要望も出てないような気がするし、あいまい検索にしてもひろさん以
外はあんまり使ってない気もするので、HmJre.dllについてはこの辺で仕様FIXし
ようかなぁと思います。

[ ]
RE:02174 HMJRE.DLLで英単語系が無効No.02207
fun さん 03/07/10 11:26
 
 秀まるおさん、こんにちは funです。
  遅い反応ですが

> 果たして、この辺の仕様は今後どうすればいいのやら?。実は、{n,m}という
>表記に対応しようかと思ったりもしたんですが、JRE32.DLLとの互換性を考える
>と勝手に拡張するのもまずいかなと思って保留になってます。内部的には簡単に
>実現できるんですけど。

{n,m}という表記はぜひ付け加えて欲しいです。
互換性の問題がなんらかの形で解決できたならば実現をお願いします。



以上

[ ]
RE:02205 HMJRE.DLLで英単語系が無効No.02211
ひろ さん 03/07/10 12:18
 
 秀まるおさん今日は、ひろです。
>  あんまり要望も出てないような気がするし、あいまい検索にしてもひろさん以
> 外はあんまり使ってない気もするので、HmJre.dllについてはこの辺で仕様FIXし
> ようかなぁと思います。
 そういえば、HmJre.dll に関しての要望って、私以外には
http://www.maruo.co.jp/turukame/3/x02160_.html#2207
が初めてかも(^^;。
 何にしても、取り敢えず御任せします。

[ ]
RE:02207 HMJRE.DLLで英単語系が無効No.02250
秀まるお さん 03/07/11 19:29
 
 \{n,m\} という形式にて、今対応しました。次のβ9から実装の予定です。

 {じゃなくて\{ならば互換性を維持できると思います。

[ ]
RE:02250 HMJRE.DLLで英単語系が無効No.02252
fun さん 03/07/11 20:15
 
 秀まるおさん、こんにちは funです。

> \{n,m\} という形式にて、今対応しました。次のβ9から実装の予定です。
>
> {じゃなくて\{ならば互換性を維持できると思います。

対応ありがとうございます。
互換性を維持しながらだとちょっとつらいことになりますね。知らない人か
らみると逆の意味に読み取れてしまうのが懸念事項ですね。


通常の正規表現(他のエディタの場合など)
    (hoge){2}       →  hogehogeが検索される
    (hoge)\{2\}     →  hoge{2}が検索される

秀丸の検索の場合
    (hoge){2}       →  hoge{2}が検索される
    (hoge)\{2\}     →  hogehogeが検索される



#いっそ互換性は忘れ去ってしまいたい。

[ ]
RE:02252 正規表現:{n,m}No.02253
ひろ さん 03/07/11 22:33
 
 秀まるおさん今日は、ひろです。
 互換性のことを考えるのは大切かと思いますが、
> 通常の正規表現(他のエディタの場合など)
>     (hoge){2}       →  hogehogeが検索される
>     (hoge)\{2\}     →  hoge{2}が検索される
の様に、通常の正規表現と同じ方が良いと思います。後術しますが、既に
「\{n,m\}」と記載されたマクロが公開されていますし、他のツールを使って
いる人が戸惑うと思います。

 「\{n,m\}」と記載されたマクロとは、杉浦さんが公開されている「TeX
Module Control with HIDEMARU Macro」で、TeX を使う人は結構利用している
かと思います。なお実際の記述は、
> else setsearch "^[^%]*\\\\begin\\{document\\}", 16;
です。これは TeX 用のマクロであることを考えると、既に「{}」をメタ・
キャラクタとして扱っています(^^)。このままだと、「{}」の中身は数字であ
りませんが、
> 秀丸の検索の場合
>     (hoge){2}       →  hoge{2}が検索される
>     (hoge)\{2\}     →  hogehogeが検索される
に当てはまってしまいます(^^;。更に今まで BRegIf を使っていたユーザは、
普通に「{n,m}」を使っていると思います。

 皆さんはどう思われますか?

[ ]
RE:02253 正規表現:{n,m}No.02255
ひろ さん 03/07/11 23:39
 
 秀まるおさん今日は、ひろです。
 一つ書き忘れましたが、検索系で「{n,m}」を使っているマクロは、(私以外
の方が公開されているものも含め) 手元では、
> なお実際の記述は、
> > else setsearch "^[^%]*\\\\begin\\{document\\}", 16;
> です。
以外はありませんでした。
 ##実際に公開されているマクロはあるのかなあ〜。

[ ]
RE:02253 正規表現:{n,m}No.02257
fun さん 03/07/12 09:35
 
 ひろさん こんにちは、funです。

> 互換性のことを考えるのは大切かと思いますが、
>> 通常の正規表現(他のエディタの場合など)
>>     (hoge){2}       →  hogehogeが検索される
>>     (hoge)\{2\}     →  hoge{2}が検索される
>の様に、通常の正規表現と同じ方が良いと思います。後術しますが、既に
>「\{n,m\}」と記載されたマクロが公開されていますし、他のツールを使って
>いる人が戸惑うと思います。


> 皆さんはどう思われますか?

ひろさんの記述を読むと、思い切って以下の通常の仕様にしてしまうほうが
良いように思いました。

通常の正規表現(他のエディタの場合など)
    (hoge){2}       →  hogehogeが検索される
    (hoge)\{2\}     →  hoge{2}が検索される


以上

[ ]
RE:02257 正規表現:{n,m}No.02263
秀まるお さん 03/07/14 18:07
 
>     (hoge){2}       →  hogehogeが検索される
>     (hoge)\{2\}     →  hoge{2}が検索される

 やっぱりそうします。

 互換性をある程度維持するために、{n,m}の形式的に違反がある物は{n,m}形式
じゃない扱いにしたいと思います。例えば、

 A{
 A{X}
 A{1,2,3}

 とかはエラーにせずに、そういう文字列ということで検索するようにしてみま
す。

[ ]
RE:02263 正規表現:{n,m}No.02264
ひろ さん 03/07/14 18:20
 
 秀まるおさん今日は、ひろです。
>  やっぱりそうします。
>
>  互換性をある程度維持するために、{n,m}の形式的に違反がある物は{n,m}形式
> じゃない扱いにしたいと思います。
 内部的な処理は面倒でしょうが、これなら多くの場合互換性が保たれそうで
すね。どうも有り難うございます。

[ ]