Add delete_lines_after to the Editor.
authorCarl Hetherington <cth@carlh.net>
Thu, 15 Dec 2022 22:51:06 +0000 (23:51 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 15 Dec 2022 22:51:06 +0000 (23:51 +0100)
test/verify_test.cc

index 1bc7649fdb3e1fc96ec630a90c5fc4f62fb187ca..981f8e24557293c4df2df06a0aa4c36d090882a7 100644 (file)
@@ -245,6 +245,27 @@ public:
                }
        }
 
+       void delete_lines_after(string after, int lines_to_delete)
+       {
+               ChangeChecker cc(this);
+               auto lines = as_lines();
+               _content = "";
+               auto iter = std::find_if(lines.begin(), lines.end(), [after](string const& line) {
+                       return line.find(after) != string::npos;
+               });
+               int to_delete = 0;
+               for (auto i = lines.begin(); i != lines.end(); ++i) {
+                       if (i == iter) {
+                               to_delete = lines_to_delete;
+                               _content += *i + "\n";
+                       } else if (to_delete == 0) {
+                               _content += *i + "\n";
+                       } else {
+                               --to_delete;
+                       }
+               }
+       }
+
 private:
        friend class ChangeChecker;