◀一般トップへ
  • 2480 キーワードの単語単位での指定
    • 2488 Re:キーワードの単語単位での指定
      • 2489 Re2:キーワードの単語単位での指定
        • 2490 Re3:キーワードの単語単位での指定
          • 2493 Re4:キーワードの単語単位での指定 - 補足
            • 2494 Re5:キーワードの単語単位での指定 - 補足
  • [2480] キーワードの単語単位での指定 nami 2002年11月05日 20:46

    初めまして、namiです。

    sakuraエディタで強調単語を単語単位で指定することは出来ますか?
    いま、特殊な言語のキーワードファイルを作成しているのですが、短い単語だと、変数名などに被ってしまうのです。
    出来たら、単語単位で色づけが出来ると良いなぁと思っています。
    同じく、正規表現キーワードも出来たらな、と思います。
    職場のコーディングルールで色づけをしているのですが、これも被ってしまいます。
    頭に空白をつけるようなこともしてみたのですが、これだと、行頭に来たときに、今度は色づけの対象でなくなってしまうのです。
    よろしくお願いします。
    • [2488] Re:キーワードの単語単位での指定 よしだ 2002年11月06日 21:37

      ▼ namiさん
      > 初めまして、namiです。
      はじめまして、よしだです。

      > いま、特殊な言語のキーワードファイルを作成しているのですが、短い単語だと、変数名などに被ってしまうのです。
      > 出来たら、単語単位で色づけが出来ると良いなぁと思っています。
      正規表現キーワード(*.rkw)を作成すれば柔軟な色分け指定が出来るはずですが・・・
      もし違うのでしたら、具体的なケースをあげていただくとありがたいです。
      • [2489] Re2:キーワードの単語単位での指定 nami 2002年11月07日 00:23

        ▼ よしださん
        > 正規表現キーワード(*.rkw)を作成すれば柔軟な色分け指定が出来るはずですが・・・
        > もし違うのでしたら、具体的なケースをあげていただくとありがたいです。
        >
        どうもです。

        例えば、頭が「t_」で始まるものを特定のキーワードする、という風にして、正規表現で「t_[0-9a-zA-Z]+」を指定した場合、「aaat_iii」とかあった場合も、色づけの対象になってしまう、というものなんです。
        で、これを「\x20t_[0-9a-zA-Z]とすると、前の文字が空白だと問題ないのですが、今度は、該当する単語が行頭だと、色づけの対象にならないのです。
        これをうまく解決したいのです。
        何か、良い方法はありますでしょうか。
        • [2490] Re3:キーワードの単語単位での指定 げんた 2002年11月07日 00:32

          >正規表現で「t_[0-9a-zA-Z]+」を指定した場合、「aaat_iii」とかあった場合も、色づけの対象になってしまう
          単語境界を表す\bを使って,\bt_[0-9a-zA-Z]+ とすればお望みの動作になるかと.
          • [2493] Re4:キーワードの単語単位での指定 - 補足 すい 2002年11月07日 13:11

            >>正規表現で「t_[0-9a-zA-Z]+」を指定した場合、「aaat_iii」とかあった場合も、色づけの対象になってしまう
            >単語境界を表す\bを使って,\bt_[0-9a-zA-Z]+ とすればお望みの動作になるかと.

            \b 使って /\bt_[0-9a-zA-Z]+/k にすると
            aaat_iii ← ○:色分けされない
            t_iii  ← ○:色分けされる
            1t_iii ← ×:色分けされない
            になるので注意。

            もし↑の最後の異常が嫌な場合、次の2個を登録します。
            /[0-9a-zA-Z]t_[0-9a-zA-Z]+/k → 色指定:テキスト
            /t_[0-9a-zA-Z]+/k → 色指定:使いたい色を指定する

            # 先に「“[0-9a-zA-Z]t_~~”は通常のテキストだよ」で at_iii 等の文字列をテキスト色で乗っ取ってしまう

            これで
            aaat_iii ← ○:色分けされない
            t_iii  ← ○:色分けされる
            1t_iii ← ○:色分けされる
            と、出来ます。

            文字列の乗っ取り合い (^^; をうまくコントロールすれば色々複雑なことが出来ます。
            • [2494] Re5:キーワードの単語単位での指定 - 補足 nami 2002年11月07日 20:44

              みなさん、ありがとうございます。
              「\b」を前に置く方法で出来ました!
              ほぼ、これで満足です。

              これからも、よろしくお願いいたします。