parent
ae0911b533
commit
380ff553b5
|
@ -759,14 +759,13 @@ struct WrapHighlighter : Highlighter
|
||||||
|
|
||||||
// Disable horizontal scrolling when using a WrapHighlighter
|
// Disable horizontal scrolling when using a WrapHighlighter
|
||||||
setup.window_pos.column = 0;
|
setup.window_pos.column = 0;
|
||||||
setup.window_range.line = win_height;
|
setup.window_range.line = 0;
|
||||||
setup.scroll_offset.column = 0;
|
setup.scroll_offset.column = 0;
|
||||||
setup.full_lines = true;
|
setup.full_lines = true;
|
||||||
|
|
||||||
for (auto buf_line = setup.window_pos.line, win_line = 0_line;
|
for (auto buf_line = setup.window_pos.line, win_line = 0_line;
|
||||||
buf_line < setup.window_pos.line + setup.window_range.line or
|
win_line < win_height or buf_line <= cursor.line;
|
||||||
buf_line <= cursor.line;
|
++buf_line, ++setup.window_range.line)
|
||||||
++buf_line)
|
|
||||||
{
|
{
|
||||||
if (buf_line >= buffer.line_count())
|
if (buf_line >= buffer.line_count())
|
||||||
break;
|
break;
|
||||||
|
@ -775,9 +774,6 @@ struct WrapHighlighter : Highlighter
|
||||||
if (indent >= wrap_column) // do not preserve indent when its bigger than wrap column
|
if (indent >= wrap_column) // do not preserve indent when its bigger than wrap column
|
||||||
indent = 0;
|
indent = 0;
|
||||||
|
|
||||||
const auto wrap_count = line_wrap_count(buf_line, indent);
|
|
||||||
setup.window_range.line -= wrap_count;
|
|
||||||
|
|
||||||
if (buf_line == cursor.line)
|
if (buf_line == cursor.line)
|
||||||
{
|
{
|
||||||
BufferCoord coord{buf_line};
|
BufferCoord coord{buf_line};
|
||||||
|
@ -799,18 +795,18 @@ struct WrapHighlighter : Highlighter
|
||||||
}
|
}
|
||||||
kak_assert(setup.cursor_pos.column >= 0 and setup.cursor_pos.column < setup.window_range.column);
|
kak_assert(setup.cursor_pos.column >= 0 and setup.cursor_pos.column < setup.window_range.column);
|
||||||
}
|
}
|
||||||
|
const auto wrap_count = line_wrap_count(buf_line, indent);
|
||||||
win_line += wrap_count + 1;
|
win_line += wrap_count + 1;
|
||||||
|
|
||||||
// scroll window to keep cursor visible, and update range as lines gets removed
|
// scroll window to keep cursor visible, and update range as lines gets removed
|
||||||
while (buf_line >= cursor.line and setup.window_pos.line < cursor.line and
|
while (buf_line >= cursor.line and setup.window_pos.line < cursor.line and
|
||||||
cursor.line + setup.scroll_offset.line >= setup.window_pos.line + setup.window_range.line)
|
setup.cursor_pos.line + setup.scroll_offset.line >= win_height)
|
||||||
{
|
{
|
||||||
auto remove_count = std::min(win_height, 1 + line_wrap_count(setup.window_pos.line, indent));
|
auto remove_count = std::min(win_height, 1 + line_wrap_count(setup.window_pos.line, indent));
|
||||||
++setup.window_pos.line;
|
++setup.window_pos.line;
|
||||||
|
--setup.window_range.line;
|
||||||
setup.cursor_pos.line -= remove_count;
|
setup.cursor_pos.line -= remove_count;
|
||||||
win_line -= remove_count;
|
win_line -= remove_count;
|
||||||
// removed one line from the range, added remove_count potential ones
|
|
||||||
setup.window_range.line += remove_count - 1;
|
|
||||||
kak_assert(setup.cursor_pos.line >= 0);
|
kak_assert(setup.cursor_pos.line >= 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
test/regression/1731-wrap-hidden-buffer/cmd
Normal file
1
test/regression/1731-wrap-hidden-buffer/cmd
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
6
test/regression/1731-wrap-hidden-buffer/display
Normal file
6
test/regression/1731-wrap-hidden-buffer/display
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "black", "bg": "white", "attributes": [] }, "contents": "0" }, { "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "1 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " \u000a" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "\u000a" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "2 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 0" }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "2 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 " }], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02" }]], { "fg": "default", "bg": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "attributes": [] }] }
|
||||||
|
{ "jsonrpc": "2.0", "method": "menu_hide", "params": [] }
|
||||||
|
{ "jsonrpc": "2.0", "method": "info_hide", "params": [] }
|
||||||
|
{ "jsonrpc": "2.0", "method": "draw_status", "params": [[], [{ "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": "out 1:1 " }, { "face": { "fg": "black", "bg": "yellow", "attributes": [] }, "contents": "" }, { "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " " }, { "face": { "fg": "blue", "bg": "default", "attributes": [] }, "contents": "1 sel" }, { "face": { "fg": "default", "bg": "default", "attributes": [] }, "contents": " - unnamed0@[kak-tests]" }], { "fg": "cyan", "bg": "default", "attributes": [] }] }
|
||||||
|
{ "jsonrpc": "2.0", "method": "set_cursor", "params": ["buffer", { "line": 0, "column": 0 }] }
|
||||||
|
{ "jsonrpc": "2.0", "method": "refresh", "params": [true] }
|
4
test/regression/1731-wrap-hidden-buffer/in
Normal file
4
test/regression/1731-wrap-hidden-buffer/in
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||||
|
|
||||||
|
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
|
||||||
|
|
1
test/regression/1731-wrap-hidden-buffer/rc
Normal file
1
test/regression/1731-wrap-hidden-buffer/rc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
add-highlighter window wrap
|
Loading…
Reference in New Issue
Block a user