From 7e680b505ac0657151778389d8fb32ce4f157b0e Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Mon, 15 Sep 2025 14:52:53 -0400 Subject: [PATCH] feat(window): organize :CP diff better --- lua/cp/init.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lua/cp/init.lua b/lua/cp/init.lua index b815926..a29eed5 100644 --- a/lua/cp/init.lua +++ b/lua/cp/init.lua @@ -214,6 +214,7 @@ local function diff_problem() if state.diff_mode then vim.cmd.diffoff() if state.saved_session then + vim.cmd(("source %s"):format(state.saved_session)) vim.fn.delete(state.saved_session) state.saved_session = nil end @@ -242,13 +243,25 @@ local function diff_problem() return end + local output_lines = vim.fn.readfile(ctx.output_file) + local actual_output = {} + for i = 1, #output_lines do + if output_lines[i]:match("^%[code%]:") then + break + end + table.insert(actual_output, output_lines[i]) + end + + state.temp_output = vim.fn.tempname() + vim.fn.writefile(actual_output, state.temp_output) + state.saved_session = vim.fn.tempname() vim.cmd(("mksession! %s"):format(state.saved_session)) vim.cmd("silent only") - vim.cmd(("edit %s"):format(ctx.expected_file)) + vim.cmd(("edit %s"):format(state.temp_output)) vim.cmd.diffthis() - vim.cmd(("vertical diffsplit %s"):format(ctx.output_file)) + vim.cmd(("vertical diffsplit %s"):format(ctx.expected_file)) state.diff_mode = true end