|
毎度お世話になっております。Fzok4234 です。
さて、「tagsファイルの作成」コマンドで出力された tags ファイルの内容が、対象
ファイルの
内容通りにならない不具合が見つかりました。
結論から先に申し上げると、
1. 強調表示の「行の強調」に該当する項目の正規表現が
public\s
などのように末尾の空白文字を含んでいるとき。
2. 強調表示を「hilightファイル直接指定モード」で読み込んでいるとき。
の内少なくとも 1 つに該当する場合に、生成した tags ファイルの内容がおかしく
なります。
再現テストの結果は
https://github.com/Fzok4234/HidemaruBugReport/tree/master/20240317-Tags-Bug
ディレクトリ以下にまとめてあります。以下、特に断りのない限りファイル名はこの
ディレクトリの
中のものを指します。
まず、下準備として「動作環境」->「その他のコマンド」->「タグジャンプ」のペー
ジを
Env.png
の通りに設定しておきます。また、拡張子 .test に対応させる「ファイルタイプ別
の設定」を
予め作成しておきます。
対象ファイルの内容は、全てのテストで
Test.test
を用います。この内容の構成は
1 行目 : クラスの定義。
2 行目 : メンバーの定義。
となっていて、これらを tags ファイルに登録することを意図しております。
「tagsファイルの作成」コマンドのダイアログは、全てのテストで
Tags.png
の通りにします。ただし、「対象フォルダ」だけはテスト対象のサブディレクトリの
ローカルパスに
書き換えて実行します。
以下、
・強調表示の正規表現に末尾の空白文字を含むか含まないか。
・「hilightファイル直接指定モード」を使用しているかいないか。
の組み合わせで行ったテストの手順と結果です。
1. 強調表示の正規表現に末尾の空白文字を含む場合。
強調表示の定義は
WithTrailingSpaces/Test.hilight
を用います。
1-1. 「hilightファイル直接指定モード」を使用する場合。
拡張子 .test に対応する「ファイルタイプ別の設定」->「強調表示」->「メニ
ュー」から
「hilightファイル直接指定モード」を有効にして、
WithTrailingSpaces/Test.hilight
を指定して適用させます。
適当なサブディレクトリに
Test.test
をコピーして、このサブディレクトリを「対象フォルダ」に指定して「tagsファ
イルの作成」
コマンドを実行します。
すると、出力された tags ファイルは
WithTrailingSpaces/File/tags
のようになります。
結果は、対象ファイルの 1 行目のクラス定義が抜け落ちているうえ、2 行目の
メンバー定義の
末尾に余計なゴミが付いた状態で、正常に出力できませんでした。
1-2. 「hilightファイル直接指定モード」を使用しない場合。
拡張子 .test に対応する「ファイルタイプ別の設定」->「強調表示」->「読み
込み」から
WithTrailingSpaces/Test.hilight
を読み込んで適用させ、レジストリに保存された状態にします。
1-1. と同様に「tagsファイルの作成」コマンドで tags ファイルを出力します。
その内容は
WithTrailingSpaces/Registry/tags
のようになります。
結果は、何も出力されておらず 0 行の空ファイルとなっており、正常に出力で
きませんでした。
2. 強調表示の正規表現に末尾の空白文字を含まない場合。
強調表示の定義は
NoTrailingSpaces/Test.hilight
を用います。
2-1. 「hilightファイル直接指定モード」を使用する場合。
NoTrailingSpaces/Test.hilight
を 1-1. と同様に「hilightファイル直接指定モード」で指定の上で、「tagsフ
ァイルの作成」
コマンドで tags ファイルを出力します。その内容は
NoTrailingSpaces/File/tags
のようになります。
結果は、何も出力されておらず 0 行の空ファイルとなっており、正常に出力で
きませんでした。
2-2. 「hilightファイル直接指定モード」を使用しない場合。
NoTrailingSpaces/Test.hilight
を 1-2. と同様にレジストリへ読み込んだ上で、「tagsファイルの作成」コマン
ドで tags ファイルを
出力します。その内容は
NoTrailingSpaces/Registry/tags
のようになります。
結果は、1 行目のクラス定義と 2 行目のメンバー定義が全て含まれ、また、余
計なゴミも付かずに
意図したとおりの正常な出力となっています。
まとめとして、tags ファイルが正常に出力できたのは 2-2. の場合すなわち、
・「行の強調」の強調表示の正規表現に末尾の空白文字を含まないこと。
・強調表示を「hilightファイル直接指定モード」で読み込まずに通常通りにレジ
ストリに
保存していること。
の全ての条件を満たしているときのみでした。これ以外では異常な出力になってしま
います。
この不具合のため、現状では tags ファイルの機能がほとんど使い物にならない状態
です。早期の
不具合の修正よろしくお願い申し上げます。
対象の秀丸エディタは 9.32β4 Float x64 です。
|
|