「次/前の文字列を検索・改」の版間の差分

Sukemaru (トーク | 投稿記録)
Sukemaru (トーク | 投稿記録)
修正版
4行目: 4行目:


'''選択範囲が改行をふくむ複数行'''(論理行)のばあいでも「次/前の文字列を検索」と同様のジャンプ機能を実現する目論見です。
'''選択範囲が改行をふくむ複数行'''(論理行)のばあいでも「次/前の文字列を検索」と同様のジャンプ機能を実現する目論見です。
<br><br>
; ダウンロード >> 「[[メディア:次/前の文字列を検索・改.zip]]」(アイコン入り)
<br><br>
<br><br>


105行目: 107行目:
: 検索ヒット数のステータス表示機能を追加
: 検索ヒット数のステータス表示機能を追加
: ソースコードが長くなったので、ZIP 書庫をアップロード
: ソースコードが長くなったので、ZIP 書庫をアップロード
* 2019/12/01(第3版)
* 2019/12/01 - 2019/12/02(第3版)
: 「単語のみ検索する」にも対応させた
: 「単語のみ検索する」にも対応させた


125行目: 127行目:
  * ----------------------------------------------
  * ----------------------------------------------
  * 「次/前の文字列を検索・改」
  * 「次/前の文字列を検索・改」
  * sukemaru, (2018/07/19 - 2019/12/01)
  * sukemaru, (2018/07/19 - 2019/12/02)
  * ----------------------------------------------
  * ----------------------------------------------
  * 「次/前の文字列を検索」機能をカスタマイズ
  * 「次/前の文字列を検索」機能をカスタマイズ
156行目: 158行目:
   // ※「終了したら閉じる」と、ベータ版 2.6.10 で追加された「インクリメンタルサーチ」のオプションフラグは解除されない
   // ※「終了したら閉じる」と、ベータ版 2.6.10 で追加された「インクリメンタルサーチ」のオプションフラグは解除されない


var highlightEnable = true;
var highlightEnable = false;
   // true  なら、検索文字列の強調を残す
   // true  なら、検索文字列の強調を残す
   // false なら、検索文字列の強調を解除する
   // false なら、検索文字列の強調を解除する
163行目: 165行目:
   // true  なら、検索文字列の出現回数をステータスバーに表示する
   // true  なら、検索文字列の出現回数をステータスバーに表示する
   // false なら、検索ヒット数をステータスバーに表示しない
   // false なら、検索ヒット数をステータスバーに表示しない
   // ※ true でも、範囲選択なしで検索開始した場合は表示されない
   // ※ 検索ダイアログのオプションフラグの状態を取得できないので、
   // ※ 別途で「選択範囲が変更された時」にステータス表示するイベントマクロを使用するなら false にするとよい
  //    optionEnable = true のばあいでも、
   //   matchCaseEnable と onlyWordEnable のフラグを利用する




198行目: 201行目:
var st = s.Text;
var st = s.Text;
var sy = ScrollY;
var sy = ScrollY;
var direction = /^(?:next|down|true|1)$/i.test( String( findNext ) )
var direction = /^(?:next|down|true|1)$/i.test( String( findNext ) )
              ? meFindNext : meFindPrevious;
              ? meFindNext : meFindPrevious;
var findAround = findAroundEnable ? meFindAround : 0;
var matchCase  = matchCaseEnable  ? meFindReplaceCase : 0;
var onlyWord  = onlyWordEnable  ? meFindReplaceOnlyWord : 0;
var multiLines = ( multiLinesEnable && st.indexOf( "\n" ) > -1 );
onlyWord  = ( multiLines || /\W/.test( st ) )
          ? 0 : onlyWord;


// 検索オプションを適用して検索する場合 ※「次/前の文字列を検索」コマンド
// 検索オプションを適用して検索する場合 ※「次/前の文字列を検索」コマンド
210行目: 219行目:
// 検索オプションをリセットして検索する場合
// 検索オプションをリセットして検索する場合
else {
else {
  var findAround = findAroundEnable ? meFindAround : 0;
  var matchCase  = matchCaseEnable  ? meFindReplaceCase : 0;
  var onlyWord  = onlyWordEnable  ? meFindReplaceOnlyWord : 0;
  var multiLines = ( multiLinesEnable && st.indexOf( "\n" ) > -1 );
  onlyWord  = ( multiLines || /\W/.test( st ) )
            ? 0 : onlyWord;
   var flags = direction + findAround + matchCase + onlyWord;
   var flags = direction + findAround + matchCase + onlyWord;


246行目: 249行目:
// 検索ヒット数をステータス表示
// 検索ヒット数をステータス表示
var hitStatus = ( st && hitCountEnable )
var hitStatus = ( st && hitCountEnable )
               ? ( multiLines || /\W/.test( st ) )
               ? ( multiLines || /\W/.test( st ) || ! onlyWord )
                 ? HitStatus( st, d.Text, matchCase, countMinimum = false )
                 ? HitStatus( st, d.Text, matchCase, countMinimum = false )
                 : WordHitStatus( st, d.Text, matchCase )
                 : WordHitStatus( st, d.Text, matchCase )
329行目: 332行目:
*[[利用者:Sukemaru#Find() メソッド と FindRepeat() メソッド の 定数|個人的な覚え書き]] のページに [[マクロリファレンス:Selection インターフェイス#FindRepeat メソッド|FindRepeat メソッド]] で「大文字と小文字を区別」や「末尾まで検索したら先頭から検索」オプションを使うために [[マクロリファレンス:Selection インターフェイス#Find メソッド|Find メソッド]] を併用する方法の説明を書いています。(sukemaru)
*[[利用者:Sukemaru#Find() メソッド と FindRepeat() メソッド の 定数|個人的な覚え書き]] のページに [[マクロリファレンス:Selection インターフェイス#FindRepeat メソッド|FindRepeat メソッド]] で「大文字と小文字を区別」や「末尾まで検索したら先頭から検索」オプションを使うために [[マクロリファレンス:Selection インターフェイス#Find メソッド|Find メソッド]] を併用する方法の説明を書いています。(sukemaru)


*「単語のみ検索する」にあわせた検索ヒット数表示用の関数 ''WordHitStatus()'' の正確度について、あまりじしんがありません (ふだん「単語のみ検索」を利用していないため)。 なにがしかの問題または改善点を見つけた方は、[https://www.haijin-boys.com/discussions Mery 公式フォーラム] などからお知らせください。(sukemaru)
*「単語のみ検索する」にあわせた検索ヒット数表示用の関数 ''WordHitStatus()'' の正確度について、あまり自信がありません (ふだん「単語のみ検索」を利用していないため)。 なにがしかの問題または改善点を見つけた方は、[https://www.haijin-boys.com/discussions Mery 公式フォーラム] などからお知らせください。(sukemaru)
<br>
<br>
----
----
<br>
<br>
スポンサーリンク