diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/highlighter.hh | 9 | ||||
| -rw-r--r-- | src/highlighters.cc | 6 | ||||
| -rw-r--r-- | src/window.cc | 8 |
3 files changed, 12 insertions, 11 deletions
diff --git a/src/highlighter.hh b/src/highlighter.hh index 8a60c0c1..fbeef9e4 100644 --- a/src/highlighter.hh +++ b/src/highlighter.hh @@ -22,11 +22,12 @@ using BufferRange = Range<BufferCoord>; enum class HighlightPass { - Wrap = 1 << 0, - Move = 1 << 1, - Colorize = 1 << 2, + Replace = 1 << 0, + Wrap = 1 << 1, + Move = 1 << 2, + Colorize = 1 << 3, - All = Wrap | Move | Colorize, + All = Replace | Wrap | Move | Colorize, }; constexpr bool with_bit_ops(Meta::Type<HighlightPass>) { return true; } diff --git a/src/highlighters.cc b/src/highlighters.cc index 2044ccd5..fe92452c 100644 --- a/src/highlighters.cc +++ b/src/highlighters.cc @@ -790,7 +790,7 @@ constexpr StringView WrapHighlighter::ms_id; struct TabulationHighlighter : Highlighter { - TabulationHighlighter() : Highlighter{HighlightPass::Move} {} + TabulationHighlighter() : Highlighter{HighlightPass::Replace} {} void do_highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange) override { @@ -881,7 +881,7 @@ const HighlighterDesc show_whitespace_desc = { struct ShowWhitespacesHighlighter : Highlighter { ShowWhitespacesHighlighter(String tab, String tabpad, String spc, String lf, String nbsp, String indent, bool only_trailing) - : Highlighter{HighlightPass::Move}, m_tab{std::move(tab)}, m_tabpad{std::move(tabpad)}, + : Highlighter{HighlightPass::Replace}, m_tab{std::move(tab)}, m_tabpad{std::move(tabpad)}, m_spc{std::move(spc)}, m_lf{std::move(lf)}, m_nbsp{std::move(nbsp)}, m_indent{std::move(indent)}, m_only_trailing{std::move(only_trailing)} {} @@ -1554,7 +1554,7 @@ const HighlighterDesc replace_ranges_desc = { "each spec is interpreted as a display line to display in place of the range", {} }; -struct ReplaceRangesHighlighter : OptionBasedHighlighter<RangeAndStringList, ReplaceRangesHighlighter, HighlightPass::Move> +struct ReplaceRangesHighlighter : OptionBasedHighlighter<RangeAndStringList, ReplaceRangesHighlighter, HighlightPass::Replace> { using ReplaceRangesHighlighter::OptionBasedHighlighter::OptionBasedHighlighter; private: 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; |
