BugReport/60

http://sakura.qp.land.to/?BugReport%2F60


Top > BugReport > 60

正規表現キーワードがふたつ以上重なった場合、優先順位に関係なく、描画が上書きされる。

  • ページ: BugReport
  • 投稿者: anonymous
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: 正規表現キーワード
  • 投稿日: 2010-07-16 (金) 14:19:16
  • バージョン: 1.6.5.0 / Unicode版 Rev.1768 (サクラ帳2010 SP3d)

メッセージ

※この質問は質問者が後から質問内容を修正しているため内容が正しくありません。ご注意ください。

 正規表現キーワードの検索結果がふたつ以上重なった場合、優先順位に関係なく、描画が上書きされてしまいます。
 ヘルプによると、

リストの上位にあるキーワードほど検索の優先順位が高くなります。

 とありますが、順位を入れ替えても結果が変わりません。
 例えば、以下のように設定した場合、

正規表現キーワード

(1) /[!?!?♪☆★][^!?!?♪☆★)〕]}〉》」』】>≫’”瓠宗\r\n\<]/k

(2) /「.+?」/k

●色指定

(1) 文字色:赤、背景色:薄い黄、装飾:下線

(2) 文字色:黒、背景色:ピンク、装飾:なし

 ※色指定の記述が逆だったので、修正しました。

 期待している結果としては、

「おはようございます?もう夜中だぞ」

 ※『期待している結果としては』と書いてある通り、これは私の要望であり、現状こうならないのがおかしいと言っているわけではありません。
   が表現が紛らわしかったことも事実なので、無用な齟齬を招いてしまったようで、申し訳ありません。

※表現が紛らわしかったのではなく、明らかに異なる質問内容でした。ご注意ください。

 という文章があった場合、【?も】に色指定(2)が該当し、それ以外の部分が色指定(1)になって欲しいのですが、現状では以下のように、優先順位に関係なく表示が上書きされています。

「おはようございます?もう夜中だぞ」



(追記)
 正規表現キーワードの優先順を入れ替えた場合でも、表示される結果が変わらないのですが、これはおかしくないのでしょうか?
 普通に考えると、正規表現キーワードの優先順位を (2)、(1) の順にした場合、下記のようになる気がするのですが……。

「おはようございます?もう夜中だぞ」


 これは、同じ文中に該当する正規表現キーワードが複数あった場合、より優先されるのは一致する領域が大きい方と言うことでしょうか?
 だとすれば、ヘルプに記述されているような優先順位というのは何の意味もないものなのでしょうか?


投稿者が書いた説明は間違っていて、【?も】には色指定(1)が該当し、それ以外の部分は色指定(2)に該当するようです。(実際に試してみると全体が色指定(2)になります)

「おはようございます?もう夜中だぞ」

このように、投稿者の説明自体が間違っていますが、さらにたぶん「優先順位」の解釈も誤解しているのではないかと思います。(←2010-07-30 投稿者が報告内容を変更したため、ここまで取り消し)

ヘルプに記載されている「優先順位」は、「マッチ文字列の開始位置が同じだった場合にどちらを採用するか」という意味であり、「低い優先順位の色で塗ったあと、高い優先順位の色で上塗りする(マッチ文字列の内側に優先度の高い別のマッチ文字列があれば入れ子にする)」という意味ではありません。

(2010-07-30 追記)
また、「内側に優先順位の高いマッチ文字列があれば外側のマッチを適用しない」という意味でもありません。

例えば、
(1) /to/k
(2) /today/k
(3) /day/k
という設定があった場合、

today

は、
先頭の t の位置で(1)にも(2)にもマッチするけど、優先順位の高い(1)が採用され、(2)は破棄される。→ to の部分は(1)の色になる。
その後、(1)のマッチが完了した直後の d の位置から検索が再開され、そこで(3)がマッチして採用される。 → day の部分は(3)の色になる。
というのが仕様上の正しい動きです。
他エディタでもだいたい今のsakuraと同じ仕様になっていると思います。

おそらく投稿者は to の部分が(1)の色、day の部分が(2)の色になることを期待しているのではないかと思われますが、そういう仕様(優先順位の低い色から高い色へと順番に上塗りする)にはなっていません。
私の知る範囲でそういう上塗り仕様になっているエディタはK2Editorだけです。
そういう仕様にできなくはないと思いますが、動作は確実に重くなる(day → today → toの順に3度全文サーチして上塗りするようなイメージ)と思いますし、過去の色分け設定の資産との互換性がなくなります。
例えば、
(1) /switch/k
(2) /\/\/.*/k
という設定で

//switch (この行全体がC/C++のコメント相当)

の // の部分が(2)の色、switch の部分が(1)の色になってしまうようだと、困る人が出てきます。

この仕様については過去にも本家の「一般掲示板」か「開発掲示板」で説明があったと思います。少なくともバグではなく現状は仕様(意図通りの動作)なので本報告の状態を「却下」にしておきます。

(2010-07-30 追記)
「一般掲示板」の過去ログに同様の説明を見つけました。

仕様変更を要望するならRequestのほうに出しなおしてください。採用される可能性は低い気がしますけど。
上塗り仕様のK2Editorでは、低スペック・高負荷マシンだとレスポンスが悪くなり、順次上塗りされていく様子が目に見えるほどになることもあるそうです。


  • 1番目の正規表現で「おはようございます?もう夜中だぞ」の強調表示がすでに確定しています。よってその途中に2番目の正規表現があっても適用されません。 -- 2010-07-23 (金) 23:13:30
  • リストの上位にあるキーワードほど検索の優先順位が高くなります。 が正しく動作してると思いますが -- 2010-07-24 (土) 06:38:48
  • 1番目の正規表現でマッチしているのに、それよりも優先順位の低い2番目の正規表現で上書きしろってことでしょうか -- 2010-07-24 (土) 06:40:16
  • 本来なら件名のみで正しく伝えられたかと思うのですが、メッセージ上に記述した言葉が足らず、正しく意図が伝わらなかったようなので、説明文を追記しました。
    また、指摘頂いた通り、色の指定に関しては順序が逆だったため、訂正させて頂きました。 -- 投稿者? 2010-07-30 (金) 00:11:19
  • お願いだから、回答がついてから元の文がわからなくなるような原文訂正をするのはやめてください。話のつじつまが合わなくなります。読み手にわかりにくくなりますし、何より回答者に対して失礼です。 -- 2010-07-30 (金) 07:49:43
  • 意図は以前から理解できています。投稿者が回答のほうの説明を理解できてないようですが。 (..; 色分けは文頭から文末へと順に決定していきます。優先順位を入れ替えても"「"のほうが"?"よりも左にある(文頭に近い)ので、全体が(2)の色として先に決定されます。もし仮に、/「お/kという表現を(2)よりも優先順位を上位として追加すれば、同じ"「"を開始位置としてマッチするので、そのようなときだけ優先順位が効果を発揮して/「お/kが(2)よりも優先されます。回答のほうの例や こちら もよく読んで理解してください。 -- 回答者? 2010-07-30 (金) 09:09:07
  • 優先されるのは一致する領域が大きい方と言うことでしょうか? > 先にマッチしたほうでしょう -- 2010-07-30 (金) 21:29:48
  • これは私の要望であり > 当初から回答のほうにも書いてあったように要望ならここ(BugReport)ではなくRequestのほうに出すのが筋でしょう -- 2010-07-30 (金) 23:25:04
  • サクラ帳2010 SP3d>亜種の報告掲示板ではありません。 -- 2010-07-30 (金) 23:46:36
  • 結局のところ投稿者はバグだといいたいのですか。それとも要望ですか。 -- 2010-07-31 (土) 08:18:27
  • 新人社会人が仕事をふたつ割り振られました(AとB)。彼は優先度を付けてふたつの作業を行いましたがどちらを先に片付けても、結果から見ればBの作業しかしていないように見えないのです。……という観点から見ればバグ以外の何者でもなくね? -- 2010-08-30 (月) 14:22:55
  • ヘルプは仕様書ではなく説明書。ヘルプが現行仕様をうまく説明できていないってだけじゃね?色分けの入れ子が都合良いかどうかは、状況次第で変わるようなものだから、やるとしてもオプションでしょ。実際、自分が今使ってる色分けは現行仕様でないと不都合(入れ子仕様になってしまうと優先順位入れ替えても回避できない)なんだわ。入れ子オプション、自分は要らないけど、欲しい人はRequestのほうへどうぞ〜。 -- 2010-08-30 (月) 18:18:13
  • 迂闊に仕様変更なんかされると知恵を絞って編み出したこういう資産が水の泡になっちゃうんだよね。 (^^; -- 2010-08-31 (火) 19:11:14

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White
[添付ファイル一覧] [全ページの添付ファイル一覧]
アップロード可能最大ファイルサイズは 2,048KB です。

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2010-08-31 (火) 19:23:19 (2970d)