ロケーションペインで、移動ブロックどうしを結ぶ斜め線の表示基準?
ロケーションペインのこのあたりの処理はあまり理解できていないのですが、おそらく「(4)その他」です。
1つのhunkに削除行(灰色)が含まれている場合、 hunkが削除行の上の変更行のブロックと削除行のブロックの2つのブロックに分割されます。
(1つのhunk内がすべて削除行であっても、0行の変更行のブロックが作成されます)
このブロックごとにブロックのトップとボトムの中央に線が引かれる動作となっているようです。
「ファイル2の末尾に改行を増やすと1本線」になるのは、2つ目のhunkの削除行がなくなるからだと思います。
この2本線が表示されるのがよいかどうかといえば私はよいとはおもっていないので、 余力があれば、単に移動行に細い線を引くのではなく、移動行の行の高さに合わせた線の幅で描画したいと思っています。 (このようにすれば、上記のhunkが2つのブロックに分割されても見た目上は1つの太い線になるはずです)
Reply To sdottaka
ロケーションペインのこのあたりの処理はあまり理解できていないのですが、おそらく「(4)その他」です。 1つのhunkに削除行(灰色)が含まれている場合、 hunkが削除行の上の変更行のブロックと削除行のブロックの2つのブロックに分割されます。
単一のhunkにまとまらないのは何か釈然としないですが、hunkの生成規則をいじると思わぬ場所に影響が出そうですね。
遅くなりましたが、表示を改善し、プレリリース版 2.16.6+-jp-6 を作成しています。
https://github.com/sdottaka/winmerge-v2-jp/releases/tag/2.16.6%2B-jp-2
2.16.4-jp-9, 2.16.4-jp-11
下記サンプルで差分を表示すると、ロケーションペインに移動ブロックを表す斜め線が2本表示されます。
ファイル1の末尾は「移動行4・改行」、ファイル2の末尾は「共通行6・改行」です。
この状態でファイル2の末尾に改行をいくつか増やしてから表示更新すると、斜め線の本数が変わります。
類似行をマッチさせる ON → hunk内の各行に斜め線(計4本)
類似行をマッチさせる OFF → hunkの2行目どうしに1本線
2.12.4-jp-31で実行すると、類似行マッチの状態にかかわらず「最初は2本線」「ファイル2の末尾に改行を増やすと1本線」という挙動になりました。
もともと意図されていた斜め線の表示基準はどのようなものでしょうか?
(1) hunkの先頭行どうしに1本だけ線を表示
(2) hunkの先頭行どうしと末尾行どうしに2本の線を表示
(3) 対応する行1行ごとに線を表示
(4) その他
【ファイル1】
============================
共通行1
共通行2
共通行3
共通行4
共通行5
共通行6
移動行1
移動行2
移動行3
移動行4
============================
【ファイル2】
============================
共通行1
移動行1
移動行2
移動行3
移動行4
共通行2
共通行3
共通行4
共通行5
共通行6
============================