Commit 6aa5c44

mo khan <mo@mokhan.ca>
2026-01-22 00:41:42
refactor: delegate to write tool in order to allow syntax checkers to validate result
1 parent a1648bd
Changed files (2)
lib
elelem
lib/elelem/plugins/edit.rb
@@ -9,17 +9,12 @@ Elelem::Plugins.register(:edit) do |toolbox|
     path = Pathname.new(a["path"]).expand_path
     content = path.read
     if content.include?(a["old"])
-      { path: a["path"], bytes: path.write(content.sub(a["old"], a["new"])) }
+      toolbox.run("write", {
+        "path" => a["path"],
+        "content" => content.sub(a["old"], a["new"])
+      })
     else
       { error: "text not found", content: content.lines.first(20).join }
     end
   end
-
-  toolbox.after("edit") do |_, result|
-    if result[:error]
-      $stdout.puts "  ! #{result[:error]}"
-    elsif !system("bat", "--paging=never", result[:path])
-      $stdout.puts "  -> #{result[:path]}"
-    end
-  end
 end
lib/elelem/plugins/write.rb
@@ -14,7 +14,7 @@ Elelem::Plugins.register(:write) do |toolbox|
   toolbox.after("write") do |_, result|
     if result[:error]
       $stdout.puts "  ! #{result[:error]}"
-    else
+    elsif !system("bat", "--paging=never", result[:path])
       $stdout.puts "  -> #{result[:path]}"
     end
   end