tagjump の返り値が期待と異なる件No.07256
yamashita さん 13/07/27 14:17
 
お世話になっております。山下です。

tagjump の返り値が思ったような値になりません。
秀丸は version 8.31 です。
以下のマクロを作成します。

<マクロ1>
tagjump;
if (result == yes) {
 message "true";
} else {
 message "false";
}
endmacro;

ある程度ファイルのあるディレクトリで秀丸を開き、
[検索] メニュー [grepの実行] で、結果が幾つか出てきそうな
文字列を検索します。
grep の結果が表示されている秀丸を <秀丸1> します。

grep 実行直後には、<秀丸1>が開いています。
この秀丸の各行は、いわゆる tag の行・・・なんですよね。
定義がよくわかってないのですが。手元だと
basename(lineno): contents
という形式の行が、幾つか表示されます。

basename はディレクトリ名を含まないファイルの名前
lineno は行番号
contents はファイル basename の行番号 lineno の内容で、
grep の対象文字列が含まれています。

<秀丸1>のどこかの行にカーソルを持って行きます。
この行が
basename1(lineno1): hogehoge
であるとします。
この状態で<マクロ1>を実行します。

すると、basename1 が表示され、lineno1 にカーソルが置かれます。
つまり tagjump は実行できています。
ところが<マクロ1>で出している message は "false" が
表示されます。
これは期待と異なる動作です。

さらに、再度<秀丸1>にアクティブな秀丸を戻し、
同じ行で、あるいは別の行で<マクロ1>を実行すると、
tagjump は成功し、message は "true" を表示します。

grep からやり直すと、また message "false" です。

上記で再現できなければ、もう少し条件を整えますので
ご指摘下さい。

[ ]
RE:07256 tagjump の返り値が期待と異なるNo.07257
秀丸担当 さん 13/07/29 10:13
 

バグ情報ありがとうございます。

言われている通りの手順で、問題を確認することができました。
確かにgrepを行った直後に、元の秀丸エディタにタグジャンプでアクティブが切
り替わるときうまくいっていませんでした。
次のβ版で修正させていただきます。

[ ]