Commit graph

40 commits

Author SHA1 Message Date
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