diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-06-12 14:38:31 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-06-12 16:26:22 +1000 |
| commit | af66a95ef882447ca7bdc2149a8dfde50035301e (patch) | |
| tree | eae2a373b6102aca954b5fb0a8b3d7d2b2a223f1 /src/window.cc | |
| parent | 5a867ebdd1dac274da185f4a4630b8480181cb9b (diff) | |
Trim display lines before the colorize pass
Colorizing long lines can be costly, remove all the invisible atoms
earlier. Also optimize ForwardHighlighterApplier further by trimming
empty lines.
Diffstat (limited to 'src/window.cc')
| -rw-r--r-- | src/window.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/window.cc b/src/window.cc index 9aa3ea73..7926183f 100644 --- a/src/window.cc +++ b/src/window.cc @@ -155,12 +155,14 @@ const DisplayBuffer& Window::update_display_buffer(const Context& context) m_display_buffer.compute_range(); const BufferRange range{{0,0}, buffer().end_coord()}; - for (auto pass : { HighlightPass::Wrap, HighlightPass::Move, HighlightPass::Colorize }) - m_builtin_highlighters.highlight({context, setup, pass, {}}, m_display_buffer, range); + 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& line : m_display_buffer.lines()) line.trim_from(setup.widget_columns, setup.first_column, m_dimensions.column); + m_builtin_highlighters.highlight({context, setup, HighlightPass::Colorize, {}}, m_display_buffer, range); + m_display_buffer.optimize(); set_position({setup.first_line, setup.first_column}); |
