◀一般トップへ
  • 8074 ルールファイルに半角英数の大小同一視をお願いします。
    • 8075 Re:ルールファイルに半角英数の大小同一視をお願いします。
      • 8076 Re2:ルールファイルに半角英数の大小同一視をお願いします。
      • 8078 Re2:ルールファイルに半角英数の大小同一視をお願いします。
        • 8080 Re3:ルールファイルに半角英数の大小同一視をお願いします。
  • [8074] ルールファイルに半角英数の大小同一視をお願いします。 ささ 2015年11月12日 16:51

    ふとアウトライン処理の存在を思い出して、
    ネットを見ながら設定したのですが、
    入力補完の辞書ファイルは大小同一視があるのに
    アウトラインのルールファイルには同一視設定が無いようです。

    個人的なスクリプトの作成などは、ネットからの借用ばかりで
    ルールの徹底など到底できず、また大抵は大小同一視な物が
    多いのでは無いかと思いますので、入力補完と同様に、
    ルールファイルにも大小同一視設定が欲しいです。

    よろしくお願いします。
    • [8075] Re:ルールファイルに半角英数の大小同一視をお願いします。 もか 2015年11月13日 19:16

      ルールファイル拡張で正規表現モードならiオプションが使えます。
      http://sakura-editor.sourceforge.net/htmlhelp2/HLP000074.html
      ただし、こんな風に書く必要がありますが。

      ;Mode=Regex
      ;RegexOption=i
      ^[  \t]*abc /// abc
      ^[  \t]*test /// test
      • [8076] Re2:ルールファイルに半角英数の大小同一視をお願いします。 もか 2015年11月13日 22:40

        簡易的に書けるようにするパッチを登録しました。
        patchunicode:1011
        使えるようになるかはコミッターの方の判断にお任せします。

        ;SkipRegex=^[  \t]+
        ;Mode=Regex
        ;RegexOption=i
        ^abc /// abc
        ^test /// test

        または以下のように書けます
        ;IgnoreCase=True
        abc /// abc
        test /// test
      • [8078] Re2:ルールファイルに半角英数の大小同一視をお願いします。 ささ 2015年11月16日 16:40

        ▼ もかさん
        返信ありがとうございます。まさか仕様が拡張されていたとは…
        外部サイト見て設定してたので気づきませんでした。
        最初、[ ]の中が意味不明でしたが、これもコピペしてわかりました。
        要はインデント文字の読み飛ばしですね。

        ただ、贅沢言えば終端文字(記号)やネストも正しく認識して欲しい…
        uwscメインなので
        If
        ~
        Endif
        とか
        C系なんかの
        {
        ~
        }
        とか。

        正規表現だけだと終端文字(記号)までは判別できてもネストは無理ですかね…

        p.s.
        [8076]の「コミッター」とは開発者様向けの発言という解釈でいいでしょうか?
        こちらはちょっと意味が理解できなかったので…
        • [8080] Re3:ルールファイルに半角英数の大小同一視をお願いします。 もか 2015年11月16日 22:26

          ▼ さささん
          > 正規表現だけだと終端文字(記号)までは判別できてもネストは無理ですかね…
          正確にやるにはプラグインでコードを書いて作る必要があります。
          参考:http://sakura.qp.land.to/?Plugin%2F%C5%EA%B9%C6
          ファイルのインデントが一定なら「インデントを含めた記号」毎にルールを書くことで疑似的にネストにも対応は可能です。
          C言語でタブ1つインデントなら以下のような感じで。
          ;Mode=Regex
          ^[a-zA-Z_] /// function,Lv=0
          ^\t(if|\}? *else|while|for|do|switch)\b /// statement1,Lv=1
          ^\t\t(if|\}? *else|while|for|do|switch)\b /// statement2,Lv=2
          ^\t{3}(if|\}? *else|while|for|do|switch)\b /// statement3,Lv=3
          ^\t{4}(if|\}? *else|while|for|do|switch)\b /// statement4,Lv=4
          ;閉じかっこ類も必要なら
          ^\} /// function,Lv=0
          ^\t\} /// statement1,Lv=1
          ^\t\t\} /// statement2,Lv=2
          ^\t{3}\} /// statement3,Lv=3
          ^\t{4}\} /// statement4,Lv=4
          ,Lv=はなくてもたぶんいいです。
          Lvが指定してあると変なインデントが混ざっててもそれ以降がおかしくなりません
          > [8076]の「コミッター」とは開発者様向けの発言という解釈でいいでしょうか?
          > こちらはちょっと意味が理解できなかったので…
          はい、内部の開発者向けの話です。