|
inouenです。
アルビレオさんの指摘を十分に理解しないまま、コメントを書いてしまって
申し訳ありませんでした。
>--------
>$searchroot = "c:\\project\\";//サーチする基準ディレクトリ
>
>//検索ファイル名取得
>if(selecting==0) selectword;//範囲選択してなければ単語取得
>$searchfile = gettext(seltopx,seltopy,selendx,selendy);
>if(!result) endmacro;
>if(strstr($searchfile,".")==-1) $searchfile=$searchfile+".*";
>//検索実行
>grep ".*",$searchfile,$searchroot,regular,subdir,filelist;
>//ファイル名リストを出すだけならここまで
>
>//タグジャンプ自動実行(複数候補があると困るのでおすすめできない)
>#handle=hidemaruhandle(0);
>tagjump;
>//タグジャンプに成功したら検索結果をウィンドウを閉じる
>if(result) closehidemaru #handle;
>--------
教えていただいた上記マクロを少し変更して次のマクロを作成しました。
// $searchroot = gettagsenv(); // ==>tagsdir[], ntagsdir
$tagsdirs[0]=$directory; // cur.dir.(or 1st tags file's dir.)
$tagsdirs[1]="c:\\temp\\r14\\"; // 2nd tags file's dir.
$tagsdirs[2]="c:\\j2sdk142\\src\\"; // 3d " "
#ntagsdir = 3; // no of tags file's dir. to search
//検索ファイル名取得
if(selecting==0) selectword; //範囲選択してなければ単語取得
$searchfile = gettext(seltopx,seltopy,selendx,selendy);
if(!result) endmacro;
if(strstr($searchfile,".")==-1) $searchfile=$searchfile+".*";
//検索実行
#idir = 0;
while(#idir<#ntagsdir) {
$searchdir = $tagsdirs[#idir];
#idir=#idir+1;
grep ".*",$searchfile,$searchdir,regular,subdir,filelist,fullpath;
if (result>0) break;
}
if(result!=1) endmacro;
//タグジャンプ自動実行
#handle=hidemaruhandle(0);
tagjump;
//タグジャンプに成功したら検索結果ウィンドウを閉じる
if(result) closehidemaru #handle;
getenv()マクロ 相当の gettagsenv()マクロ(?)がサポートされれば
ダイレクトタグジャンプ相当の ダイレクトファイルジャンプが
1個の共通のマクロファイルで実現できそうです。
秀丸エディタマクロヘルプDDEの項の機能を使用した エクスプローラ
との連携による方法は、まだ理解するにいたっていません。
色々と有難うございました。
|
|