cp.nvim/scrapers
Barrett Ruth 58b6840815
feat: race countdown support and language version selection (#346)
## Problem

Two gaps in the plugin: (1) contest pickers have no way to know whether
a contest supports countdown (race), so the UI can't surface that
affordance; (2) `:CP submit` hardcodes a single language ID per platform
with no way to choose C++ standard or override the platform ID.

## Solution

**Race countdown** (`4e709c8`): Add `supports_countdown` boolean to
`ContestListResult` and wire it through CSES/USACO scrapers, cache, race
module, and pickers.

**Language version selection** (`b90ac67`): Add `LANGUAGE_VERSIONS` and
`DEFAULT_VERSIONS` tables in `constants.lua`. Config gains `version` and
`submit_id` fields validated at setup time. `submit.lua` resolves the
effective config to a platform ID (priority: `submit_id` > `version` >
default). Helpdocs add `*cp-submit-language*` section. Tests cover
`LANGUAGE_IDS` completeness.
2026-03-06 18:18:21 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py fix(login): remove cookie fast-path from login subcommand (#344) 2026-03-06 17:53:22 -05:00
base.py feat: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00
codechef.py fix(login): remove cookie fast-path from login subcommand (#344) 2026-03-06 17:53:22 -05:00
codeforces.py fix(login): remove cookie fast-path from login subcommand (#344) 2026-03-06 17:53:22 -05:00
cses.py feat: race countdown support and language version selection (#346) 2026-03-06 18:18:21 -05:00
kattis.py fix(kattis,usaco): precision, open URLs, and Kattis submit error surface (#335) 2026-03-06 15:23:55 -05:00
language_ids.py fix(scrapers): fix Kattis and USACO login and submit (#330) 2026-03-06 12:38:32 -05:00
models.py feat: race countdown support and language version selection (#346) 2026-03-06 18:18:21 -05:00
timeouts.py fix(submit): use file path over stdin; fix CF CodeMirror textarea (#305) 2026-03-05 14:34:14 -05:00
usaco.py feat: race countdown support and language version selection (#346) 2026-03-06 18:18:21 -05:00