cp.nvim/scrapers
Barrett Ruth cc279166cb
feat(commands): implement :CP open [problem|contest|standings]
Problem: There was no way to open a problem or contest page in the
browser from within the plugin; users had to manually navigate to
the platform URL.

Solution: Add `contest_url` and `standings_url` to `MetadataResult`
and persist them via `cache.set_contest_data`. Add `cache.get_open_urls`
to assemble all three URLs from cache. Wire up `:CP open` in
`commands/init.lua` to call `vim.ui.open` on the resolved URL,
warning when none is available (e.g. CSES standings).
2026-03-05 19:13:06 -05:00
..
__init__.py lol 2025-09-24 21:23:06 -04:00
atcoder.py feat(commands): implement :CP open [problem|contest|standings] 2026-03-05 19:13:06 -05:00
base.py feat: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00
codechef.py feat: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00
codeforces.py feat(commands): implement :CP open [problem|contest|standings] 2026-03-05 19:13:06 -05:00
cses.py feat(commands): implement :CP open [problem|contest|standings] 2026-03-05 19:13:06 -05:00
kattis.py feat: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00
language_ids.py feat(atcoder): extract submit helpers; add live status notifications (#294) 2026-03-04 19:27:29 -05:00
models.py feat(commands): implement :CP open [problem|contest|standings] 2026-03-05 19:13:06 -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: validate credentials on :CP <platform> login (#310) 2026-03-05 15:12:09 -05:00