第26回 grepプラグインの追加

公開日:2019-02-15 更新日:2019-05-14

1. 概要

grepプラグインの追加を行いました。
指定したフォルダ配下のファイルに対して、正規表現を使ってキーワードがファイルに含まれているか検索することができます。
ファイルツリーのメニュー、またはツールバーから起動することができます。
検索処理は別スレッドで行っており、検索中でも画面を操作することができます。

2. 動画



3. 説明

1. ファイル一覧の取得

grepの実装方法の1つとして、一度全てのファイル一覧を取得して、それからファイル一覧をループして、ファイルをチェックする方法があります。
この場合、ファイル一覧の取得が完了するまで、検索処理が始まりません。

そこで今回は、Directory.EnumerateFiles() を使い、ファイル一覧を1度に取得するのではなく、ファイルを1つずつ取得して、検索をするようにしています。
これにより、grep実行後、早い段階で目的のファイルが見つかった場合は、すぐにキャンセルすることができます。

前者の場合は、早い段階で目的のファイルが見つかるような場合でも、全てのファイル一覧の取得が終わるまで、待つ必要があります。

2. 正規表現による文字列の検索

正規表現による検索には、Regex.Matches() を使用します。
大文字・小文字の区別をする場合は、正規表現ではなく、メソッドの引数でオプションを指定します。
戻り値は MatchCollection となり、検索でヒットした文字列中の位置(index)、ヒットした文字列(Value) を取得することができます。
Collection になっているのは、1つの文字列中に、複数ヒットする場合があるためです。

4. 画面

画像1

画像2

画像3

画像4

画像4

ダウンロード

ver実行ファイルソース
1.1.10
2019/01/29
ncm_1_1_10.zipncm_1_1_10_src.zip