2a373b72dd
ci: format
2026-03-05 14:22:25 -05:00
29af2df858
refactor(logger): table-based LogOpts; add sync, on_done to test stream
...
Problem: `logger.log` positional args were hard to extend, and adding
`sync` support for pre-block notifications required a clean API. Test
stream completion had no user-visible signal. `setup_contest` could
silently overwrite files when a user's `filename` config returned
colliding paths.
Solution: Replace `(msg, level, override)` with `(msg, LogOpts?)` where
`LogOpts` carries `level`, `override`, and `sync`. Sync path calls
`vim.notify` directly; async path uses `vim.schedule` as before. Add
`on_done` callback to `scrape_all_tests`, fired via `on_exit` and
surfaced as a "Loaded N tests." notification. Detect filename collisions
in `proceed()` before touching the filesystem. Migrate all call sites.
2026-03-05 12:54:37 -05:00
Barrett Ruth
00987bb0ff
feat(io): cleanup view
2025-11-06 01:31:50 -05:00
Barrett Ruth
bd30fb626c
feat: start lang refactor
2025-10-24 01:11:19 -04:00
a0b5264761
fix: improve error handling
2025-10-05 16:06:08 -04:00
d2bde9bad8
fix(config): better file org
2025-10-04 19:54:53 -04:00
0a320945a0
fix(config): platforms, not contests
2025-10-04 16:29:35 -04:00
a725925434
fix(pickers): only log on fetch
2025-10-04 12:30:50 -04:00
34ef7bafd6
fix print order
2025-10-03 14:41:32 -04:00
057b0890c2
fix: remove unused function
2025-10-02 13:56:38 -04:00
6b8a1e2087
more docs
2025-10-01 21:36:53 -04:00
a925686a17
fix(log): improve logging
2025-10-01 16:41:24 -04:00
b406c0ce4e
fix: synchronous problem fetch
2025-10-01 12:25:07 -04:00
a54e6398cf
fix(picker): rename
2025-09-30 20:57:14 -04:00
46cd509747
fix docs and superfluous vim.validate calls
2025-09-30 20:55:29 -04:00
9704b11e7c
fix(pickers): declare M as table
2025-09-30 20:33:40 -04:00
5588eae526
fix(picker): rename picker function names
2025-09-30 20:27:31 -04:00
a7cd41712d
fix(picker): print fetching data early
2025-09-30 20:19:19 -04:00
e3309e8f3c
fix(pickers): expose fns properly
2025-09-30 20:18:57 -04:00
a24ac2314c
remove picker spec
2025-09-24 20:08:23 -04:00
d862df9104
fix: only display configured platforms in pickers
2025-09-24 19:47:00 -04:00
9e84d57b8a
feat: context, not config
2025-09-24 18:21:34 -04:00
4429b5fe67
fix
2025-09-24 00:47:44 -04:00
699207e713
lint
2025-09-24 00:44:08 -04:00
7ac91a3c4d
fix async
2025-09-24 00:41:10 -04:00
540364926d
feat: improve logging
2025-09-23 16:14:21 -04:00
8df8c16a72
fix(ci): selene lint
2025-09-23 12:25:53 -04:00
62eab3df2d
feat(picker): one step closer to fully async
2025-09-23 12:16:57 -04:00
545793df39
remove ai comments
2025-09-23 09:43:21 -04:00
e171017ab0
fixup
2025-09-23 09:42:45 -04:00
e48e70a5f9
fix(config): easier language default per-contest
2025-09-21 14:16:27 -04:00
373e7f6e76
fix(test): mock caches and everything else
2025-09-21 12:26:06 -04:00
1822714a0c
fix(picker): propagate logs
2025-09-21 12:24:42 -04:00
a827d4f67c
fix(picker): use consisten messaging
2025-09-21 12:21:40 -04:00
0938b9bbd6
feat(pickers): ctrl-r to refresh
2025-09-21 12:13:59 -04:00
9d92021fcf
fix(test): include necessary variables
2025-09-21 11:45:24 -04:00
c1529c5d91
fix(ci): unused vars
2025-09-21 11:37:08 -04:00
1b8365265d
fix(ci): unused variables
2025-09-21 11:36:06 -04:00
58f9be5f9a
fix: refactor
2025-09-21 11:19:00 -04:00
a33e66680b
feat(picker): picker support
2025-09-21 11:10:54 -04:00