diff options
| author | Maxime Coste <mawww@kakoune.org> | 2025-06-25 13:02:59 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2025-06-25 22:12:14 +1000 |
| commit | 5439403146d027fd3eb0dd2a62e4d1f68e8ddbf2 (patch) | |
| tree | 126119149d9d96faa324645b2c3f5fa0d3bbbc2b /src/window.cc | |
| parent | 635452f2b47cdddb5118f07fe831224c93eb9803 (diff) | |
Introduce a Replace HighlightPass that runs before Wrap
For WrapHighlighter to be able to take ReplaceRangesHighlighter
into account, it needs to run afterwards, moreover, moving
TabulationHighlighter to the replace pass means we should be able to
remove any tabulation specific handling from WrapHighlighter
Also move ShowWhitespaceHighlighter to this pass as it is designed
to replace TabulationHighlighter by running before (as builtin
highlighters run after non builtin ones for each passes)
Diffstat (limited to 'src/window.cc')
| -rw-r--r-- | src/window.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/window.cc b/src/window.cc index 2b8d4be9..c65bebe8 100644 --- a/src/window.cc +++ b/src/window.cc @@ -144,8 +144,8 @@ const DisplayBuffer& Window::update_display_buffer(const Context& context) m_display_buffer.compute_range(); const BufferRange range{{0,0}, buffer().end_coord()}; - m_builtin_highlighters.highlight({context, setup, HighlightPass::Wrap, {}}, m_display_buffer, range); - m_builtin_highlighters.highlight({context, setup, HighlightPass::Move, {}}, m_display_buffer, range); + for (auto pass : {HighlightPass::Replace, HighlightPass::Wrap, HighlightPass::Move}) + m_builtin_highlighters.highlight({context, setup, pass, {}}, m_display_buffer, range); if (context.ensure_cursor_visible) { @@ -233,8 +233,8 @@ DisplaySetup Window::compute_display_setup(const Context& context) const win_pos.line = std::min(win_pos.line, buffer().line_count()-1); DisplaySetup setup{win_pos.line, m_dimensions.line, win_pos.column, 0_col, offset}; - m_builtin_highlighters.compute_display_setup({context, setup, HighlightPass::Move, {}}, setup); - m_builtin_highlighters.compute_display_setup({context, setup, HighlightPass::Wrap, {}}, setup); + for (auto pass : {HighlightPass::Move, HighlightPass::Wrap, HighlightPass::Replace}) + m_builtin_highlighters.compute_display_setup({context, setup, pass, {}}, setup); check_display_setup(setup, *this); return setup; |
