summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/highlighter.hh9
-rw-r--r--src/highlighters.cc6
-rw-r--r--src/window.cc8
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;