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
This commit is contained in:
Maxime Coste 2022-07-19 22:47:39 +10:00
parent 9ebd0cd9c1
commit 559af669c7
5 changed files with 7 additions and 3 deletions

View File

@ -1061,7 +1061,6 @@ private:
const int tabstop = context.context.options()["tabstop"].get<int>();
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 == ' ')

View File

@ -0,0 +1 @@
foobar

View File

@ -0,0 +1,2 @@
add-highlighter window/ show-whitespaces
add-highlighter window/ number-lines

View File

@ -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": [] }] }'