Since upgrading to 12.3, my Kate block select does not work correctly when selecting at the end of a line. As an example, suppose you have the following:
aaxxx
aaxxxyyy
aaxxxyyy
aaxxx
If you select all the x’s and y’s in the first three lines only, everything is fine - both x’s and y’s are selected. If you add the fourth line, then the selection drops the y’s in the second and third lines and only selects the x’s. In my KDE 4.9.5 installation in 12.2, Kate would have correctly selected all the x’s and y’s in all four lines. Is there a new configuration option that I don’t know about, or is this a bug in the new version of Kate?
I am no expert with Kate, but the problem is you can’t properly define a block to do what you want in your example unless the last line extends out with three spaces OR you have another line that extends out the same as if there were three spaces:
You can’t properly define a “block” to include all yyy’s in your example without three spaces being there or as in my example. I am not sure I would define this as a bug in Kate. Perhaps the old definition was wrong? Its just my opinion though.
I am no expert with Kate, but the problem is you can’t properly define a block to do what you want in your example unless the last line extends out with three spaces OR you have another line that extends out the same as if there were three spaces:
Code:
aaxxx aaxxxyyy aaxxxyyy aaxxx aaxxxyyy
You can’t properly define a “block” to include all yyy’s in your example without three spaces being there or as in my example. I am not sure I would define this as a bug in Kate. Perhaps the old definition was wrong? Its just my opinion though.
You are right. the last line must extend to the same length as the longest line. Yet in all previous versions of Kate this was not true. In any case, it seems like a bug when you can select all the x’s and y’s in:
aaxxx
aaxxx
aaxxxyyy
But you only get x’s and no y’s when the bottom line is on the top:
aaxxxyyy
aaxxx
aaxxx
If it’s not a bug, it seems to me that it should work the same way for both of these two examples. What the problem is, is that the old block select treated all the area past the end of line character as if it was white space, so that you had a virtual rectangular block with the width of the longest actual line no matter what its position in the sequence. This seems logical to me, while the new method seems buggy since it behaves inconsistently - it produces different results depending on where the long line appears.