summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-04-06 09:12:17 +1000
committerMaxime Coste <mawww@kakoune.org>2018-04-06 09:16:59 +1000
commit3c03129c460a81defedabbca899f478f575b77c2 (patch)
tree9f14c5982eda9d8dfee000b80141fe8f5ea1387c /src
parent21603983c52b6cdca0bf7fd0b200b1061811c789 (diff)
Make compute_display_setup methods const
Diffstat (limited to 'src')
-rw-r--r--src/highlighter.hh4
-rw-r--r--src/highlighter_group.cc4
-rw-r--r--src/highlighter_group.hh4
-rw-r--r--src/highlighters.cc14
-rw-r--r--src/window.cc18
-rw-r--r--src/window.hh2
6 files changed, 24 insertions, 22 deletions
diff --git a/src/highlighter.hh b/src/highlighter.hh
index c8ade820..122f26ac 100644
--- a/src/highlighter.hh
+++ b/src/highlighter.hh
@@ -71,7 +71,7 @@ struct Highlighter
do_highlight(context, display_buffer, range);
}
- void compute_display_setup(HighlightContext context, DisplaySetup& setup)
+ void compute_display_setup(HighlightContext context, DisplaySetup& setup) const
{
if (context.pass & m_passes)
do_compute_display_setup(context, setup);
@@ -89,7 +89,7 @@ struct Highlighter
private:
virtual void do_highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange range) = 0;
- virtual void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) {}
+ virtual void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const {}
const HighlightPass m_passes;
};
diff --git a/src/highlighter_group.cc b/src/highlighter_group.cc
index 1b3ba415..45e3e4e2 100644
--- a/src/highlighter_group.cc
+++ b/src/highlighter_group.cc
@@ -12,7 +12,7 @@ void HighlighterGroup::do_highlight(HighlightContext context, DisplayBuffer& dis
hl.value->highlight(context, display_buffer, range);
}
-void HighlighterGroup::do_compute_display_setup(HighlightContext context, DisplaySetup& setup)
+void HighlighterGroup::do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const
{
for (auto& hl : m_highlighters)
hl.value->compute_display_setup(context, setup);
@@ -84,7 +84,7 @@ void Highlighters::highlight(HighlightContext context, DisplayBuffer& display_bu
m_group.highlight(context, display_buffer, range);
}
-void Highlighters::compute_display_setup(HighlightContext context, DisplaySetup& setup)
+void Highlighters::compute_display_setup(HighlightContext context, DisplaySetup& setup) const
{
Vector<StringView> disabled_ids(context.disabled_ids.begin(), context.disabled_ids.end());
m_group.fill_unique_ids(disabled_ids);
diff --git a/src/highlighter_group.hh b/src/highlighter_group.hh
index c4295bff..e2af86ef 100644
--- a/src/highlighter_group.hh
+++ b/src/highlighter_group.hh
@@ -32,7 +32,7 @@ public:
protected:
void do_highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange range) override;
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override;
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override;
using HighlighterMap = HashMap<String, std::unique_ptr<Highlighter>, MemoryDomain::Highlight>;
HighlighterMap m_highlighters;
@@ -47,7 +47,7 @@ public:
const HighlighterGroup& group() const { return m_group; }
void highlight(HighlightContext context, DisplayBuffer& display_buffer, BufferRange range);
- void compute_display_setup(HighlightContext context, DisplaySetup& setup);
+ void compute_display_setup(HighlightContext context, DisplaySetup& setup) const;
private:
friend class Scope;
diff --git a/src/highlighters.cc b/src/highlighters.cc
index cced84af..6d594eb7 100644
--- a/src/highlighters.cc
+++ b/src/highlighters.cc
@@ -727,7 +727,7 @@ struct WrapHighlighter : Highlighter
}
}
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override
{
if (contains(context.disabled_ids, ms_id))
return;
@@ -817,7 +817,7 @@ struct WrapHighlighter : Highlighter
unique_ids.push_back(ms_id);
}
- BufferCoord next_split_coord(const Buffer& buffer, ColumnCount wrap_column, int tabstop, BufferCoord coord)
+ BufferCoord next_split_coord(const Buffer& buffer, ColumnCount wrap_column, int tabstop, BufferCoord coord) const
{
auto column = get_column(buffer, tabstop, coord);
auto col = get_byte_to_column(
@@ -913,7 +913,7 @@ struct TabulationHighlighter : Highlighter
}
}
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override
{
auto& buffer = context.context.buffer();
// Ensure that a cursor on a tab character makes the full tab character visible
@@ -1069,7 +1069,7 @@ private:
}
}
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override
{
if (contains(context.disabled_ids, ms_id))
return;
@@ -1083,7 +1083,7 @@ private:
unique_ids.push_back(ms_id);
}
- int compute_digit_count(const Context& context)
+ int compute_digit_count(const Context& context) const
{
int digit_count = 0;
LineCount last_line = context.buffer().line_count();
@@ -1340,7 +1340,7 @@ private:
}
}
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override
{
auto& line_flags = context.context.options()[m_option_name].get_mutable<LineAndSpecList>();
auto& buffer = context.context.buffer();
@@ -1597,7 +1597,7 @@ private:
{}
}
- void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) override
+ void do_compute_display_setup(HighlightContext context, DisplaySetup& setup) const override
{
try
{
diff --git a/src/window.cc b/src/window.cc
index d0e0ff85..db7caebb 100644
--- a/src/window.cc
+++ b/src/window.cc
@@ -179,8 +179,10 @@ void Window::set_dimensions(DisplayCoord dimensions)
}
}
-DisplaySetup Window::compute_display_setup(const Context& context)
+DisplaySetup Window::compute_display_setup(const Context& context) const
{
+ auto win_pos = m_position;
+
DisplayCoord offset = options()["scrolloff"].get<DisplayCoord>();
offset.line = std::min(offset.line, (m_dimensions.line + 1) / 2);
offset.column = std::min(offset.column, (m_dimensions.column + 1) / 2);
@@ -189,16 +191,16 @@ DisplaySetup Window::compute_display_setup(const Context& context)
const auto& cursor = context.selections().main().cursor();
// Ensure cursor line is visible
- if (cursor.line - offset.line < m_position.line)
- m_position.line = std::max(0_line, cursor.line - offset.line);
- if (cursor.line + offset.line >= m_position.line + m_dimensions.line)
- m_position.line = std::min(buffer().line_count()-1, cursor.line + offset.line - m_dimensions.line + 1);
+ if (cursor.line - offset.line < win_pos.line)
+ win_pos.line = std::max(0_line, cursor.line - offset.line);
+ if (cursor.line + offset.line >= win_pos.line + m_dimensions.line)
+ win_pos.line = std::min(buffer().line_count()-1, cursor.line + offset.line - m_dimensions.line + 1);
DisplaySetup setup{
- m_position,
+ win_pos,
m_dimensions,
- {cursor.line - m_position.line,
- get_column(buffer(), tabstop, cursor) - m_position.column},
+ {cursor.line - win_pos.line,
+ get_column(buffer(), tabstop, cursor) - win_pos.column},
offset,
false
};
diff --git a/src/window.hh b/src/window.hh
index 28971bcb..832a25b6 100644
--- a/src/window.hh
+++ b/src/window.hh
@@ -52,7 +52,7 @@ private:
Window(const Window&) = delete;
void on_option_changed(const Option& option) override;
- DisplaySetup compute_display_setup(const Context& context);
+ DisplaySetup compute_display_setup(const Context& context) const;
void run_hook_in_own_context(StringView hook_name, StringView param,
String client_name = "");