Merge pull request #191 from barrett-ruth/feat/io/view-togggle

misc io view fixups
This commit is contained in:
Barrett Ruth 2025-11-06 01:40:41 -05:00 committed by GitHub
commit 5bcee87892
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 13 deletions

View file

@ -51,8 +51,6 @@ local function contest_picker(platform, refresh, language)
end end
end, end,
['ctrl-r'] = function() ['ctrl-r'] = function()
local cache = require('cp.cache')
cache.clear_contest_list(platform)
contest_picker(platform, true, language) contest_picker(platform, true, language)
end, end,
}, },

View file

@ -73,14 +73,20 @@ local function parse_and_strip_time_v(output)
return s, 0 return s, 0
end end
local k = last_i - 1 local tab_before_marker = s:find('\t[^\t]*Command being timed:', 1)
local k
if tab_before_marker then
k = tab_before_marker - 1
else
k = last_i - 1
while k >= 1 do while k >= 1 do
local ch = s:sub(k, k) local ch = s:sub(k, k)
if ch ~= ' ' and ch ~= '\t' then if ch == '\n' then
break break
end end
k = k - 1 k = k - 1
end end
end
local head = s:sub(1, k) local head = s:sub(1, k)
local tail = s:sub(last_i) local tail = s:sub(last_i)

View file

@ -189,8 +189,8 @@ function M.scrape_all_tests(platform, contest_id, callback)
local expected_file = 'io/' .. base_name .. '.' .. i .. '.cpout' local expected_file = 'io/' .. base_name .. '.' .. i .. '.cpout'
local input_content = t.input:gsub('\r', '') local input_content = t.input:gsub('\r', '')
local expected_content = t.expected:gsub('\r', '') local expected_content = t.expected:gsub('\r', '')
vim.fn.writefile(vim.split(input_content, '\n', { trimempty = true }), input_file) vim.fn.writefile(vim.split(input_content, '\n'), input_file)
vim.fn.writefile(vim.split(expected_content, '\n', { trimempty = true }), expected_file) vim.fn.writefile(vim.split(expected_content, '\n'), expected_file)
end end
if type(callback) == 'function' then if type(callback) == 'function' then
callback({ callback({

View file

@ -434,8 +434,8 @@ function M.run_io_view(test_indices_arg, debug, mode)
end end
if mode == 'combined' then if mode == 'combined' then
local test_cases = cache.get_test_cases(platform, contest_id, problem_id) local problem_data = contest_data.problems[contest_data.index_map[problem_id]]
if test_cases and #test_cases > 1 then if not problem_data.multi_test then
mode = 'individual' mode = 'individual'
end end
end end
@ -545,7 +545,7 @@ function M.run_io_view(test_indices_arg, debug, mode)
input_lines = vim.split(combined.input, '\n') input_lines = vim.split(combined.input, '\n')
if result.actual then if result.actual and result.actual ~= '' then
output_lines = vim.split(result.actual, '\n') output_lines = vim.split(result.actual, '\n')
end end