|
お世話になっております。山下です。
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" です。
上記で再現できなければ、もう少し条件を整えますので
ご指摘下さい。
|
|