◀一般トップへ
  • 3836 クォーテーンション文字列 色分け表示
    • 3837 Re:クォーテーンション文字列 色分け表示
      • 3839 Re2:クォーテーンション文字列 色分け表示
        • 3843 Re3:クォーテーンション文字列 色分け表示
        • 3844 Re3:クォーテーンション文字列 色分け表示
    • 3838 RE: クォーテーンション文字列 色分け表示
      • 3840 Re2: クォーテーンション文字列 色分け表示
  • [3836] クォーテーンション文字列 色分け表示 tetra 2004年05月13日 08:56

    設定 → タイプ別設定 → カラー
    「色指定」の所で、半角空白・日本語空白を色分け表示にしているのですが、
    シングルクォーテーンション文字列や、ダブルクォーテーンション文字列を色分け表示すると、
    半角空白・日本語空白・TABを含んだクォーテーンション文字列が、うまく色分け表示してくれません。
    空白・TABに(クォーテーンション文字列の)背景色が反映されてません。
    (※ TAB表示を矢印表示にすると、TABだけは正常に表示されます。)

    わかりにくい説明ですみません(汗
    半角空白・日本語空白・クォーテーンション文字列の色分け表示を有効にして、
    クォーテーンション文字列の背景色を、周りの背景色と異なるものしてから、
    空白やTABを含むクォーテーンション文字列を見て頂ければ理解してもらえると思います。
    "aaaaaa aaaaa aaaaaTABaaaa"
    • [3837] Re:クォーテーンション文字列 色分け表示 loop 2004年05月13日 17:30

      クォーテーンション文字列と空白のどちらの色指定を優先するかという問題だと思います。現状では空白が優先される様ですね。
      正規表現キーワードは通常の色指定より優先されるので,例えば「".*"」などを登録してやればお望みの動作になると思います。
      • [3839] Re2:クォーテーンション文字列 色分け表示 tetra 2004年05月13日 21:55

        > 例えば「".*"」など
        本当は、 /".*?(?<!\\)"/k を指定したいのですが、
        (?<! ) が使えない。 (?! ) は使えるのに。

        正規表現文字列の色分け表示にも挑戦したんですけど、
        やはり (?<= ) や (?<! ) が使えないので断念しました。
        (割り算などにもマッチしてしまうw)

        できれば「クォーテーンション文字列の色分け表示」よりも
        正規表現DLLが改良される事を期待します (^^;
        • [3843] Re3:クォーテーンション文字列 色分け表示 loop 2004年05月17日 17:05

          tetraさんのやりたい事を完全に理解していないんですが,

          > 本当は、 /".*?(?<!\\)"/k を指定したいのですが、

          から,クォーテーンション文字列のうち「\"」を含むものは除外したいという事かと思いましたので,以下の様にしてはどうでしょうか?

          (1) /".*?(?=\\").*?"/k 通常のテキストの色指定
          (2) /".*?"/k 正規表現キーワードの色指定

          正規表現キーワードの登録順で(1)の方を上に(優先度が高くなるように)しておきます。クォーテーンション文字列のうち「\"」を含むものは通常のテキストの色でマスクされます。
          「"abcd"」や「"ab\cd"」は指定した色で強調表示され,
          「"abcd\"」は通常のテキストの色になります。
          ただこれだと「"abcd"\"」のように「\"」の前のクォーテーンション文字列も強調表示されないんですが。
        • [3844] Re3:クォーテーンション文字列 色分け表示 すい 2004年05月19日 03:27

          >> 例えば「".*"」など
          >本当は、 /".*?(?<!\\)"/k を指定したいのですが、
          >(?<! ) が使えない。 (?! ) は使えるのに。
          >
          >正規表現文字列の色分け表示にも挑戦したんですけど、
          >やはり (?<= ) や (?<! ) が使えないので断念しました。

          もし、"~" 内の \" に対応するという話でしたら (?<!~) なんて無くてもなんとでもなりますよ。
          /"(|.*?[^\\])(\\\\)*"/k
          の正規表現1個でok。というか、/".*?(?<!\\)"/k だと、仮に (?<!~) が使えたとしても
          "C:\\foo\\" だとかが正常にマッチしないのではないかと。

          正規表現の /~/ の色分けとかは私もお手上げですが。
          どうしても数式の除算とマッチしてしまったりするので、私も perl の
          正規表現キーワードを作成していた時とか、結局その辺を完全な物にするのは
          諦めちゃいました。
          今は m/~/ を色分けするように設定して、スクリプトには /~/ じゃなくて
          必ず m/~/ と記述するという、、、運用面での誤魔化し やっちゃってます。
          この辺まで来ると (?< 系の、もう少し凝ったメタ文字も使えればなぁ、とか思いますよねぇ。
          でも仮に (?< とかが使えたとしても /~/ の正規表現キーワードでの
          正確な色分けは困難極まりそうな。
          / は神出鬼没に色々な登場の仕方してくれるし。。。
    • [3838] RE: クォーテーンション文字列 色分け表示 すい 2004年05月13日 20:53

      要するに言いたい事・要点をまとめると、

      半角空白とかタブとかの色指定から背景色の指定を無くして
      (カーソル行アンダーラインみたいに)、
      そして、文字色の指定のみにする。

      んで、その領域(シングルクォーテーション文字列の領域とか)
      の背景色に従うのみに欲しい、

      という内容なのかな?

      いや、出来る出来ない、とかの話は脇に置いておいて、
      あくまで tetraさんが言いたい内容・要望としては。
      • [3840] Re2: クォーテーンション文字列 色分け表示 tetra 2004年05月13日 22:24

        > 背景色の指定を無くして
        無くする事までは望んでませんが、その方が分かりやすいかもしれませんね。

        > という内容なのかな?
        クォーテーション文字列の様に
        範囲に対しての「色分け表示」の場合は、
        空白・タブの背景色指定は無視して、
        範囲の背景色を使ってもらえると嬉しいなーと言う意味です。

        正規表現キーワードの色分け仕様と、同じでもかまいません。
        要は「どの範囲が"文字列なのか?」が一目で分かれば。
        現状だと、"文字列の範囲を錯覚しそうになる場合があるので。