ダイレクトタグジャンプで教えてくださいNo.00115
NSUZU さん 98/04/09 21:39
 
はじめまして。NSUZUと申します。

 いきなり質問ですが、タグファイルを更新せずにジャンプすると、関数のあるとこ
ろにジャンプしてくれないのですが、ジャンプした後検索するなどしてその関数の場
所にジャンプするような事ができるのでしょうか。
 私なりに考えて、ダイレクトタグジャンプ後にキーワードを検索する以下のような
マクロを作ってみたのですが、正常に動作するときとしないときがあり、あと一歩の
ところでうまくいきません。
 正常に動作しないときは、ジャンプする前にそのファイルが開かれている場合で、
元のファイルで検索が処理されていて、関数のあるファイルでは処理されていないよ
うです。マクロ実行後は関数のあるファイルがアクティブになっています。私の考え
では、ジャンプ後のマクロ処理の対象ウインドウが、時々関数のあるファイルに移っ
ていないのではないかと思います。
 そのような事が考えられるのでしょうか。なにか、解決法がありましたら、どうか
教えてください。
 よろしくお願いします。


<<<< 作成したマクロ >>>>
// tagJump.mac
// ダイレクトタグジャンプ
//<作成>1998. 4/ 9 鈴木
$searchbuffer_backup = searchbuffer;
#searchoption_backup = searchoption;
getsearch;
$search_word = searchbuffer;

// レジストリからタグファイル名を取得
    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
    if( !result ){
        message "レジストリを開く事ができませんでした。";
        goto EXIT;
    }
    $tag_file = getregstr( "Tags" );
    closereg;

// タグファイル存在チェック
    if( existfile( $tag_file ) == false ){
        message "タグファイルが見つかりません";
        goto EXIT;
    }

// ダイレクトタグジャンプ
    disableerrormsg;
    directtagjump;
    if( !result ){
        message "関数が見つかりませんでした";
        goto EXIT;
    }

// キーワード検索
    $word = gettext( x, y, x+strlen( $search_word )-1, y );
    if( result ){
        if( $word == $search_word )  goto DISPLAY;
        finddown;
    }
    if( !result ) findup;

EXIT:
    setsearch $searchbuffer_backup, #searchoption_backup;
        // 検索文字列の復帰


[ ]