runtime(syntax-tests): Allow for folded and wrapped lines in syntax test files
The current implementation falls short for syntax test files
on two accounts:
1. With folded lines -- some lines before folded lines are
unnecessarily repeated in generated dump files because
closed folded lines are always treated as opened for the
cursor to move _in_ instead of to move _over_ them.
2. With wrapped lines (longer than 75 columns) -- some lines
are omitted in generated dump files because calculations
for the cursor progress and its movement commands only
refer to file lines and not their layout within a 20x75
buffer (less &cmdheight).
As an alternative, we abandon deterministic (and inaccurate
at times) calculations for the cursor progress and, instead,
advance the cursor by as much as before for a single dump
file, but now rely on marking the last visible line and
additional movement to position lines at desired offsets,
carefully preserving compatibility for the &scrolloff and
&ruler values inherited from defaults.vim. The parent Vim
process will keep track of progress through a syntax test
file made by its child process ("terminal") by reading the
rightmost end of the ruler line from the terminal buffer,
looking for " All " or " Bot " for its cue to finish dump
file generation.
With these changes applied, the lossless line length limit
will be raised from 75 to 1425 (for a 19x75 view) columns.
Also, prefer "lastline" to "truncate" for &display; hiding
the content of any last _long_ line in a view goes against
the purpose of syntax file testing -- all lines should be
recorded.
related: #15150
fixes: #14245
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/syntax/testdir/dumps/html_05.dump b/runtime/syntax/testdir/dumps/html_05.dump
index 20df53e..c643720 100644
--- a/runtime/syntax/testdir/dumps/html_05.dump
+++ b/runtime/syntax/testdir/dumps/html_05.dump
@@ -1,9 +1,11 @@
-|<+0#00e0e07#ffffff0|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&|<|/|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&| +0#0000000&@55
+|<+0#00e0e07#ffffff0|o+0#af5f00255&|u|t|p|u|t|>+0#00e0e07&|<|/|o+0#af5f00255&|u|t|p|u|t|>+0#00e0e07&| +0#0000000&@57
+|<+0#00e0e07&|p+0#af5f00255&|>+0#00e0e07&|<|/|p+0#af5f00255&|>+0#00e0e07&| +0#0000000&@67
+|<+0#00e0e07&|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&|<|/|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&| +0#0000000&@55
|<+0#00e0e07&|p+0#af5f00255&|r|e|>+0#00e0e07&|p+0#0000000&|r|e|f|o|r|m|a|t@1|e|d| |t|e|x|t|<+0#00e0e07&|/|p+0#af5f00255&|r|e|>+0#00e0e07&| +0#0000000&@46
|<+0#00e0e07&|p+0#af5f00255&|r|o|g|r|e|s@1|>+0#00e0e07&|<|/|p+0#af5f00255&|r|o|g|r|e|s@1|>+0#00e0e07&| +0#0000000&@53
-|<+0#00e0e07&|q+0#af5f00255&|>+0#00e0e07&|<|/|q+0#af5f00255&|>+0#00e0e07&| +0#0000000&@67
+><+0#00e0e07&|q+0#af5f00255&|>+0#00e0e07&|<|/|q+0#af5f00255&|>+0#00e0e07&| +0#0000000&@67
|<+0#00e0e07&|r+0#af5f00255&|p|>+0#00e0e07&|<|/|r+0#af5f00255&|p|>+0#00e0e07&| +0#0000000&@65
-><+0#00e0e07&|r+0#af5f00255&|t|>+0#00e0e07&|<|/|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@65
+|<+0#00e0e07&|r+0#af5f00255&|t|>+0#00e0e07&|<|/|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@65
|<+0#00e0e07&|r+0#af5f00255&|u|b|y|>+0#00e0e07&|<|/|r+0#af5f00255&|u|b|y|>+0#00e0e07&| +0#0000000&@61
|<+0#0000e05&|!|-@1| |F|r|e@1|B|S|D| |f|a|i|l|u|r|e| +0#0000000&@54
|<+0#0000e05&|s|>|s|t|r|i|k|e|t|h|r|o|u|g|h|<|/|s|>| +0#0000000&@54
@@ -15,6 +17,4 @@
|<+0#00e0e07&|s+0#af5f00255&|e|l|e|c|t|>+0#00e0e07&|<|/|s+0#af5f00255&|e|l|e|c|t|>+0#00e0e07&| +0#0000000&@57
|<+0#00e0e07&|s+0#af5f00255&|l|o|t|>+0#00e0e07&|<|/|s+0#af5f00255&|l|o|t|>+0#00e0e07&| +0#0000000&@61
|<+0#00e0e07&|s+0#af5f00255&|m|a|l@1|>+0#00e0e07&|<|/|s+0#af5f00255&|m|a|l@1|>+0#00e0e07&| +0#0000000&@59
-|<+0#00e0e07&|s+0#af5f00255&|o|u|r|c|e|>+0#00e0e07&| +0#0000000&@66
-|<+0#00e0e07&|s+0#af5f00255&|p|a|n|>+0#00e0e07&|<|/|s+0#af5f00255&|p|a|n|>+0#00e0e07&| +0#0000000&@61
-@57|9|1|,|1| @9|6|3|%|
+@57|8|9|,|1| @9|6|1|%|