diff --git a/src/window.cc b/src/window.cc index 906258be..4782d3b5 100644 --- a/src/window.cc +++ b/src/window.cc @@ -139,6 +139,14 @@ void Window::append_noundo(const String& string) scroll_to_keep_cursor_visible_ifn(); } +void Window::replace(const std::string& string) +{ + scoped_undo_group undo_group(m_buffer); + erase_noundo(); + insert_noundo(string); +} + + bool Window::undo() { return m_buffer.undo(); diff --git a/src/window.hh b/src/window.hh index 41556386..aa8c066e 100644 --- a/src/window.hh +++ b/src/window.hh @@ -56,6 +56,7 @@ public: void erase(); void insert(const String& string); void append(const String& string); + void replace(const String& string); const BufferCoord& position() const { return m_position; } DisplayCoord cursor_position() const;