This commit is contained in:
Barrett Ruth 2025-09-12 09:22:04 -05:00
parent afd4cb2165
commit 2c23da2999
2 changed files with 13 additions and 12 deletions

View file

@ -16,7 +16,6 @@ if not vim.fn.has("nvim-0.10.0") then
return M return M
end end
local function get_plugin_path() local function get_plugin_path()
local plugin_path = debug.getinfo(1, "S").source:sub(2) local plugin_path = debug.getinfo(1, "S").source:sub(2)
return vim.fn.fnamemodify(plugin_path, ":h:h:h") return vim.fn.fnamemodify(plugin_path, ":h:h:h")
@ -218,7 +217,7 @@ local function diff_problem()
local actual_output = result.stdout local actual_output = result.stdout
window.setup_diff_layout(actual_output, expected, input) window.setup_diff_layout(actual_output, expected, input)
vim.g.cp_diff_mode = true vim.g.cp_diff_mode = true
log("entered diff mode") log("entered diff mode")
end end

View file

@ -21,7 +21,7 @@ function M.save_layout()
} }
end end
end end
return { return {
windows = windows, windows = windows,
current_win = vim.api.nvim_get_current_win(), current_win = vim.api.nvim_get_current_win(),
@ -30,11 +30,13 @@ function M.save_layout()
end end
function M.restore_layout(state) function M.restore_layout(state)
if not state then return end if not state then
return
end
vim.cmd.diffoff() vim.cmd.diffoff()
vim.cmd(state.layout) vim.cmd(state.layout)
for win, win_state in pairs(state.windows) do for win, win_state in pairs(state.windows) do
if vim.api.nvim_win_is_valid(win) then if vim.api.nvim_win_is_valid(win) then
vim.api.nvim_set_current_win(win) vim.api.nvim_set_current_win(win)
@ -43,7 +45,7 @@ function M.restore_layout(state)
end end
end end
end end
if vim.api.nvim_win_is_valid(state.current_win) then if vim.api.nvim_win_is_valid(state.current_win) then
vim.api.nvim_set_current_win(state.current_win) vim.api.nvim_set_current_win(state.current_win)
end end
@ -52,24 +54,24 @@ end
function M.setup_diff_layout(actual_output, expected_output, input_file) function M.setup_diff_layout(actual_output, expected_output, input_file)
vim.cmd.diffoff() vim.cmd.diffoff()
vim.cmd.only() vim.cmd.only()
local output_lines = vim.split(actual_output, "\n") local output_lines = vim.split(actual_output, "\n")
local output_buf = vim.api.nvim_create_buf(false, true) local output_buf = vim.api.nvim_create_buf(false, true)
vim.api.nvim_buf_set_lines(output_buf, 0, -1, false, output_lines) vim.api.nvim_buf_set_lines(output_buf, 0, -1, false, output_lines)
vim.bo[output_buf].filetype = "cpoutput" vim.bo[output_buf].filetype = "cpoutput"
vim.cmd.edit() vim.cmd.edit()
vim.api.nvim_set_current_buf(output_buf) vim.api.nvim_set_current_buf(output_buf)
vim.cmd.diffthis() vim.cmd.diffthis()
M.clearcol() M.clearcol()
vim.cmd.vsplit(expected_output) vim.cmd.vsplit(expected_output)
vim.cmd.diffthis() vim.cmd.diffthis()
M.clearcol() M.clearcol()
vim.cmd(("botright split %s"):format(input_file)) vim.cmd(("botright split %s"):format(input_file))
M.clearcol() M.clearcol()
vim.cmd.wincmd("k") vim.cmd.wincmd("k")
end end
return M return M