diff --git a/lua/cp/config.lua b/lua/cp/config.lua index 513dcef..0207968 100644 --- a/lua/cp/config.lua +++ b/lua/cp/config.lua @@ -178,7 +178,6 @@ function M.setup(user_config) local config = vim.tbl_deep_extend('force', M.defaults, user_config or {}) - -- Validate merged config values vim.validate({ before_run = { config.hooks.before_run, diff --git a/lua/cp/init.lua b/lua/cp/init.lua index 1c21880..d933f42 100644 --- a/lua/cp/init.lua +++ b/lua/cp/init.lua @@ -246,7 +246,7 @@ local function toggle_run_panel(is_debug) end local ctx = problem.create_context(state.platform, state.contest_id, state.problem_id, config) - local run = require('cp.run') + local run = require('cp.runner.run') if not run.load_test_cases(ctx, state) then logger.log('no test cases found', vim.log.levels.WARN) @@ -270,7 +270,7 @@ local function toggle_run_panel(is_debug) tab_buf = tab_buf, } - local highlight = require('cp.highlight') + local highlight = require('cp.ui.highlight') local diff_namespace = highlight.create_namespace() local test_list_namespace = vim.api.nvim_create_namespace('cp_test_list') @@ -347,7 +347,7 @@ local function toggle_run_panel(is_debug) vim.api.nvim_set_option_value('filetype', 'cptest', { buf = diff_buf }) vim.api.nvim_set_option_value('winbar', 'Expected vs Actual', { win = diff_win }) - local diff_backend = require('cp.diff') + local diff_backend = require('cp.ui.diff') local backend = diff_backend.get_best_backend('git') local diff_result = backend.render(expected_content, actual_content) @@ -459,7 +459,7 @@ local function toggle_run_panel(is_debug) ansi_namespace ) elseif desired_mode == 'git' then - local diff_backend = require('cp.diff') + local diff_backend = require('cp.ui.diff') local backend = diff_backend.get_best_backend('git') local diff_result = backend.render(expected_content, actual_content) @@ -513,7 +513,7 @@ local function toggle_run_panel(is_debug) return end - local run_render = require('cp.run_render') + local run_render = require('cp.runner.run_render') run_render.setup_highlights() local test_state = run.get_run_panel_state() @@ -573,7 +573,7 @@ local function toggle_run_panel(is_debug) config.hooks.before_debug(ctx) end - local execute = require('cp.execute') + local execute = require('cp.runner.execute') local contest_config = config.contests[state.platform] local compile_result = execute.compile_problem(ctx, contest_config, is_debug) if compile_result.success then @@ -586,7 +586,7 @@ local function toggle_run_panel(is_debug) vim.schedule(function() if config.run_panel.ansi then - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') ansi.setup_highlight_groups() end if current_diff_layout then diff --git a/lua/cp/execute.lua b/lua/cp/runner/execute.lua similarity index 99% rename from lua/cp/execute.lua rename to lua/cp/runner/execute.lua index 1c433d6..109f365 100644 --- a/lua/cp/execute.lua +++ b/lua/cp/runner/execute.lua @@ -89,7 +89,7 @@ function M.compile_generic(language_config, substitutions) :wait() local compile_time = (vim.uv.hrtime() - start_time) / 1000000 - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') result.stdout = ansi.bytes_to_string(result.stdout or '') result.stderr = ansi.bytes_to_string(result.stderr or '') diff --git a/lua/cp/run.lua b/lua/cp/runner/run.lua similarity index 99% rename from lua/cp/run.lua rename to lua/cp/runner/run.lua index ddd2346..eef5901 100644 --- a/lua/cp/run.lua +++ b/lua/cp/runner/run.lua @@ -194,7 +194,7 @@ local function run_single_test_case(ctx, contest_config, cp_config, test_case) .system({ 'sh', '-c', table.concat(redirected_cmd, ' ') }, { text = false }) :wait() - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') compile_result.stdout = ansi.bytes_to_string(compile_result.stdout or '') compile_result.stderr = ansi.bytes_to_string(compile_result.stderr or '') @@ -234,7 +234,7 @@ local function run_single_test_case(ctx, contest_config, cp_config, test_case) :wait() local execution_time = (vim.uv.hrtime() - start_time) / 1000000 - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') local stdout_str = ansi.bytes_to_string(result.stdout or '') local actual_output = stdout_str:gsub('\n$', '') @@ -365,7 +365,7 @@ function M.get_run_panel_state() end function M.handle_compilation_failure(compilation_output) - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') local config = require('cp.config').setup() local clean_text diff --git a/lua/cp/run_render.lua b/lua/cp/runner/run_render.lua similarity index 100% rename from lua/cp/run_render.lua rename to lua/cp/runner/run_render.lua diff --git a/lua/cp/scrape.lua b/lua/cp/scrape.lua index 5ecaf43..f7a48c8 100644 --- a/lua/cp/scrape.lua +++ b/lua/cp/scrape.lua @@ -17,7 +17,7 @@ local problem = require('cp.problem') local utils = require('cp.utils') local function check_internet_connectivity() - local result = vim.system({ 'ping', '-c', '1', '-W', '3', '8.8.8.8' }, { text = true }):wait() + local result = vim.system({ 'ping', '-c', '5', '-W', '3', '8.8.8.8' }, { text = true }):wait() return result.code == 0 end diff --git a/lua/cp/ansi.lua b/lua/cp/ui/ansi.lua similarity index 100% rename from lua/cp/ansi.lua rename to lua/cp/ui/ansi.lua diff --git a/lua/cp/diff.lua b/lua/cp/ui/diff.lua similarity index 100% rename from lua/cp/diff.lua rename to lua/cp/ui/diff.lua diff --git a/lua/cp/highlight.lua b/lua/cp/ui/highlight.lua similarity index 100% rename from lua/cp/highlight.lua rename to lua/cp/ui/highlight.lua diff --git a/lua/cp/window.lua b/lua/cp/ui/window.lua similarity index 98% rename from lua/cp/window.lua rename to lua/cp/ui/window.lua index b150965..8d6090f 100644 --- a/lua/cp/window.lua +++ b/lua/cp/ui/window.lua @@ -75,7 +75,6 @@ function M.restore_layout(state, tile_fn) local source_file if source_files ~= '' then local files = vim.split(source_files, '\n') - -- Prefer known extensions first, but accept any extension local known_extensions = vim.tbl_keys(constants.filetype_to_language) for _, file in ipairs(files) do local ext = vim.fn.fnamemodify(file, ':e') diff --git a/spec/ansi_spec.lua b/spec/ansi_spec.lua index ff7a96b..af62c36 100644 --- a/spec/ansi_spec.lua +++ b/spec/ansi_spec.lua @@ -1,5 +1,5 @@ describe('ansi parser', function() - local ansi = require('cp.ansi') + local ansi = require('cp.ui.ansi') describe('bytes_to_string', function() it('returns string as-is', function() @@ -224,7 +224,6 @@ describe('ansi parser', function() ansi.setup_highlight_groups() local highlight = vim.api.nvim_get_hl(0, { name = 'CpAnsiRed' }) - -- When 'NONE' is set, nvim_get_hl returns nil for that field assert.is_nil(highlight.fg) for i = 0, 15 do diff --git a/spec/diff_spec.lua b/spec/diff_spec.lua index 9bb8b63..b50d05e 100644 --- a/spec/diff_spec.lua +++ b/spec/diff_spec.lua @@ -4,7 +4,7 @@ describe('cp.diff', function() before_each(function() spec_helper.setup() - diff = require('cp.diff') + diff = require('cp.ui.diff') end) after_each(function() diff --git a/spec/execute_spec.lua b/spec/execute_spec.lua index 12e7f67..09914d6 100644 --- a/spec/execute_spec.lua +++ b/spec/execute_spec.lua @@ -6,7 +6,7 @@ describe('cp.execute', function() before_each(function() spec_helper.setup() - execute = require('cp.execute') + execute = require('cp.runner.execute') mock_system_calls = {} temp_files = {} diff --git a/spec/extmark_spec.lua b/spec/extmark_spec.lua index 6383d55..2b4b25a 100644 --- a/spec/extmark_spec.lua +++ b/spec/extmark_spec.lua @@ -4,7 +4,7 @@ describe('extmarks', function() before_each(function() spec_helper.setup() - highlight = require('cp.highlight') + highlight = require('cp.ui.highlight') end) after_each(function() diff --git a/spec/highlight_spec.lua b/spec/highlight_spec.lua index 74f1c91..9afd773 100644 --- a/spec/highlight_spec.lua +++ b/spec/highlight_spec.lua @@ -4,7 +4,7 @@ describe('cp.highlight', function() before_each(function() spec_helper.setup() - highlight = require('cp.highlight') + highlight = require('cp.ui.highlight') end) after_each(function() diff --git a/spec/run_render_spec.lua b/spec/run_render_spec.lua index bcb0c78..a647331 100644 --- a/spec/run_render_spec.lua +++ b/spec/run_render_spec.lua @@ -1,5 +1,5 @@ describe('cp.run_render', function() - local run_render = require('cp.run_render') + local run_render = require('cp.runner.run_render') local spec_helper = require('spec.spec_helper') before_each(function() diff --git a/spec/run_spec.lua b/spec/run_spec.lua index e70f4f7..f7eb772 100644 --- a/spec/run_spec.lua +++ b/spec/run_spec.lua @@ -1,5 +1,5 @@ describe('run module', function() - local run = require('cp.run') + local run = require('cp.runner.run') describe('basic functionality', function() it('has required functions', function()