Better Accoding For BUAAers
面向北航 Accoding 学生端的非官方 VS Code 助手。左侧固定操作栏与题面,右侧使用 VS Code 原生 C/C++ 编辑器;本地测试卡片可直接编辑。
当前版本:0.1.5。 支持题目导入、离线阅读、用例编辑、本地评测和双来源交题。平台验证范围见下表;Windows/Linux 交互调试及普通学生账号的完整登录验收仍待补齐,真实计分比赛前请先用练习题确认环境。
本地开发
使用 Node.js 22(至少 22.12)、npm 与本地 C/C++ 工具链。
npm ci
npm run typecheck
npm run lint
npm run test:unit
npm run test:integration
npm run build
npm run test:extension
快速开始
- 打开一个本地文件夹,点击 VS Code 最左侧活动栏的 Accoding 图标;运行“Accoding: 检查编译环境”。
- 点击 Accoding 题单顶部的账号图标或欢迎页“登录 Accoding”(题目工作台左下角也有“登录”按钮),会话存储在 VS Code SecretStorage,不保存密码。
- 运行“按题号导入”输入全局题号,或“按比赛导入”输入比赛 ID 并勾选题目;也可粘贴学生端或 4000 管理端链接。比赛导入和同步自动检查当前账号的比赛管理权限,有权限时从管理端读取题目,否则使用学生端,无需切换模式。
- 默认按 工作台 30% / 代码 70% 分栏,右侧编辑关联的 main.c / main.cpp;可自由拖动分隔线,点击题单标题栏的“恢复左题右码布局”可恢复 3:7。切题时保存已编辑的题目源码,右侧仅保留当前题目的代码标签;用例编辑复用右侧区域。打开无关文件不会静默更换提交源码。
- 在“测试”中修改输入/预期,添加、复制、删除撤销、排序或禁用;保存状态收到扩展确认后才显示“已保存”。点击评测先保存最新草稿。
- 首次交题选择 OJ 允许语言,此后用相同来源和关联代码交题。自定义用例不会上传到 OJ。
本地评测默认忽略每行末尾的空格、制表符以及输出末尾多余换行,并统一 CRLF/LF;行内空格、行首缩进及中间空行仍参与比较。已有用例升级后自动采用此规则,可手动改回“精确比较”或选择 Token 比较。stderr 仅展示诊断,不与预期输出比较;非零退出码仍判运行错误。
“样例通过”仅代表本地公开/自建用例;远程结果单独显示 OJ:AC 等状态。特殊评测或交互题的本地文本比较不代表完整评测。
离线与数据
工作台顶部的“切换题目”按钮可直接选择当前比赛的题目,列表按 A、B、C… 排列。无输入题的官方样例会保留空输入,运行时直接结束标准输入(EOF)。新建 C 源码使用 int main()。
比赛题目交题按“学生端比赛 → 4000 后端题库 → 学生端题库”依次核验。比赛未开始、已结束、学生端题单不可见或无权限时,按全局题号检查后端题库;后端无访问权限时再检查学生端题库。每条路径均核验实际提交表单和支持的语言。记录明确标注后端或学生端来源以及“不计比赛成绩”,结果查询使用原提交端口。已发送但结果不确定的请求不会自动换线路重发。原比赛源码和用例不移动。
缓存题面、源码与用例可离线使用。用例保存为题目目录中的 .in/.out 文件,卡片标题旁的文件按钮可直接打开编辑。完整比赛同步会补入新题,保留首次未勾选的旧题选择;题单暂未提供的题目保留源码和用例,交题时重新检查比赛及题库权限。工作区索引位于 .better-accoding/workspace.json,比赛信息位于 contests/<比赛 ID>/contest.json。事务元数据位于 .better-accoding/bindings,源码与题面位于 problems / contests;请一起备份。同步保护源码、本地修改样例、自定义用例和已删除样例。保存冲突时保留草稿,可选择版本或复制;源码、配置和用例变化会把旧评测结果标为过期。详见 本地数据与冲突处理。
环境配置 · 测试与验收 · 隐私 · 安全反馈 · 发布流程
支持状态
| 环境 |
本地 Judge |
Debug |
实机验收 |
| macOS arm64 |
C / C++ 自动化通过 |
CodeLLDB stdin / 断点 / 继续通过 |
本机部分完成 |
| Windows x64 |
CI 编译 / Judge / 宿主通过 |
配置待验证 |
交互验收待补 |
| Linux x64 |
CI 编译 / Judge / 宿主通过 |
配置待验证 |
交互验收待补 |
| Remote / Web / 虚拟工作区 |
不支持 |
不支持 |
不作承诺 |
本项目独立实现,不包含 CPH 源码,不代表北航或 Accoding 官方。
提交记录会按账号保存在扩展私有存储。重新打开题目时自动恢复有 ID 的未决评测,也可在提交记录页点击“恢复查询”;无 ID 的题库提交会按账号、题号、语言、时间和源码指纹自动核对,无法唯一匹配时保留待确认状态,插件不会自动重发。提交中、排队、评测中和错误为红色,通过为绿色;自动查询最长 10 分钟,短暂查询失败会重试。