Add max_history_id in status printed with <a-u> and <a-U>

This commit is contained in:
Delapouite 2017-09-19 19:11:52 +02:00
parent 3aaf646eda
commit b46c9ac630
2 changed files with 6 additions and 2 deletions

View File

@ -142,6 +142,7 @@ public:
bool redo(size_t count = 1) noexcept; bool redo(size_t count = 1) noexcept;
bool move_to(size_t history_id) noexcept; bool move_to(size_t history_id) noexcept;
size_t current_history_id() const noexcept; size_t current_history_id() const noexcept;
size_t next_history_id() const noexcept { return m_next_history_id; }
String string(BufferCoord begin, BufferCoord end) const; String string(BufferCoord begin, BufferCoord end) const;
StringView substr(BufferCoord begin, BufferCoord end) const; StringView substr(BufferCoord begin, BufferCoord end) const;

View File

@ -1770,6 +1770,7 @@ void move_in_history(Context& context, NormalParams params)
const int count = std::max(1, params.count); const int count = std::max(1, params.count);
const int history_id = (int)buffer.current_history_id() + const int history_id = (int)buffer.current_history_id() +
(direction == Direction::Forward ? count : -count); (direction == Direction::Forward ? count : -count);
const int max_history_id = (int)buffer.next_history_id() - 1;
if (buffer.move_to((size_t)history_id)) if (buffer.move_to((size_t)history_id))
{ {
auto ranges = compute_modified_ranges(buffer, timestamp); auto ranges = compute_modified_ranges(buffer, timestamp);
@ -1777,11 +1778,13 @@ void move_in_history(Context& context, NormalParams params)
context.selections_write_only() = std::move(ranges); context.selections_write_only() = std::move(ranges);
context.selections().avoid_eol(); context.selections().avoid_eol();
context.print_status({ format("moved to change #{}", history_id), context.print_status({ format("moved to change #{} ({})",
history_id, max_history_id),
get_face("Information") }); get_face("Information") });
} }
else else
context.print_status({ format("no such change: #{}", history_id), context.print_status({ format("no such change: #{} ({})",
history_id, max_history_id),
get_face("Information") }); get_face("Information") });
} }