From 559af669c77a3b3b6de0376f177ebbba5ebd0328 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 19 Jul 2022 22:47:39 +1000 Subject: [PATCH] Remove out-of-date column computation in show-whitespaces Now that we compute display buffer on whole lines, it does not make sense to compute the tab padding based off the window column position Fixes #4674 --- src/highlighters.cc | 4 +--- .../4674-show-whitespaces-horizontal-scroll-assert/cmd | 1 + .../4674-show-whitespaces-horizontal-scroll-assert/in | 1 + .../4674-show-whitespaces-horizontal-scroll-assert/rc | 2 ++ .../4674-show-whitespaces-horizontal-scroll-assert/script | 2 ++ 5 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 test/regression/4674-show-whitespaces-horizontal-scroll-assert/cmd create mode 100644 test/regression/4674-show-whitespaces-horizontal-scroll-assert/in create mode 100644 test/regression/4674-show-whitespaces-horizontal-scroll-assert/rc create mode 100644 test/regression/4674-show-whitespaces-horizontal-scroll-assert/script diff --git a/src/highlighters.cc b/src/highlighters.cc index 4b9540b6..39fd28fd 100644 --- a/src/highlighters.cc +++ b/src/highlighters.cc @@ -1061,7 +1061,6 @@ private: const int tabstop = context.context.options()["tabstop"].get(); auto whitespaceface = context.context.faces()["Whitespace"]; const auto& buffer = context.context.buffer(); - auto win_column = context.setup.first_column; for (auto& line : display_buffer.lines()) { for (auto atom_it = line.begin(); atom_it != line.end(); ++atom_it) @@ -1085,8 +1084,7 @@ private: if (cp == '\t') { const ColumnCount column = get_column(buffer, tabstop, coord); - const ColumnCount count = tabstop - (column % tabstop) - - std::max(win_column - column, 0_col); + const ColumnCount count = tabstop - (column % tabstop); atom_it->replace(m_tab + String(m_tabpad[(CharCount)0], count - m_tab.column_length())); } else if (cp == ' ') diff --git a/test/regression/4674-show-whitespaces-horizontal-scroll-assert/cmd b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/cmd new file mode 100644 index 00000000..f13d7ddb --- /dev/null +++ b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/cmd @@ -0,0 +1 @@ +gl diff --git a/test/regression/4674-show-whitespaces-horizontal-scroll-assert/in b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/in new file mode 100644 index 00000000..21417bda --- /dev/null +++ b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/in @@ -0,0 +1 @@ + foobar diff --git a/test/regression/4674-show-whitespaces-horizontal-scroll-assert/rc b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/rc new file mode 100644 index 00000000..c1f67a84 --- /dev/null +++ b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/rc @@ -0,0 +1,2 @@ +add-highlighter window/ show-whitespaces +add-highlighter window/ number-lines diff --git a/test/regression/4674-show-whitespaces-horizontal-scroll-assert/script b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/script new file mode 100644 index 00000000..573e827f --- /dev/null +++ b/test/regression/4674-show-whitespaces-horizontal-scroll-assert/script @@ -0,0 +1,2 @@ +ui_out -ignore 1 +ui_out '{ "jsonrpc": "2.0", "method": "draw", "params": [[[{ "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": " 1│" }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": ["final_fg"] }, "contents": " → → → → → → → → " }, { "face": { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, "contents": "fooba" }, { "face": { "fg": "black", "bg": "white", "underline": "default", "attributes": [] }, "contents": "r" }]], { "fg": "default", "bg": "default", "underline": "default", "attributes": [] }, { "fg": "blue", "bg": "default", "underline": "default", "attributes": [] }] }'