Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Becoder CompanionNew to Visual Studio Code? Get it now.
Becoder Companion

Becoder Companion

becoder

|
1 install
| (1) | Free
Becoder 刷题助手:题面与样例一键抓取、本地评测(CPH 风格)、一键提交与评测跟踪。适配 becoder.com.cn 与内网 222.180.160.110:61235。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Becoder Companion

在 VS Code 里刷 Becoder(必可) 的题:题面/样例一键抓取 → 本地评测 → 一键提交 → 评测跟踪。

同时适配两个站点:

站点 地址
公网 https://www.becoder.com.cn
内网 http://222.180.160.110:61235

快速开始

  1. 安装本扩展(.vsix)。
  2. 打开左侧活动栏的 Becoder 图标。
  3. 运行命令 Becoder: 用浏览器 Cookie 登录,粘贴浏览器里的 connect.sid。
    • 浏览器打开并登录站点 → F12 → Application → Cookies → 复制 connect.sid 的 Value
    • 也可以整行复制请求头里的 Cookie,扩展会自动提取
  4. Becoder: 载入题目,输入题号(32424)、题目链接,或比赛题号(7894/A)。
  5. 写代码,按 Ctrl+Alt+B 运行全部样例,Ctrl+Alt+S 提交。

功能一览

  • 题库搜索:关键词(实测「线段树」609 条)、标签、翻页,选中即载入
  • 题面并排显示:公式用 KaTeX 排版,断网退化为 Unicode
  • 本地评测:多语言、真实超时、TLE/RE/WA/CE 判定、WA 定位到行、文件 IO
  • 一键提交 + 评测跟踪:逐测试点详情
  • 题解 / 讨论:单题题解 + 整场比赛题解/讲义;内嵌 PDF 直接在面板里看,附带评论
  • 用例编辑:面板式编辑(输入/期望输出两个框,Ctrl+S 保存、Ctrl+Enter 保存并运行),站点样例也能改
  • 手动导入:粘贴题面与样例,交互题也能做题
  • 双站点:公网 / 内网一键切换
  • 零 npm 依赖

这一版修好了什么

旧版本“体验不好”,根因是它在拿不到数据时会编造数据:

  • 编造题目标题(比赛 #1 题目 #1)
  • 编造样例(永远是 1 2 → 3)
  • 编造题解文章和讨论列表
  • 题面公式被 replace(/<[^>]+>/g,'') 全部丢掉,只剩“和”这种残句
  • 登录接口猜来猜去(/api/login + MD5),而真实接口是 /api/judge-login + JWT

v2.0 全部按实测过的真实接口重写:

能力 实现
题面 / 样例 GET /api/front-v2/problems/:id(支持 contest_id / contest_problem)
比赛题目列表 GET /api/front-v2/contests/:id
网页提交 POST /problem/:id/submit?front_v2=1(multipart,字段与站内表单一致)
评测记录 GET /api/front-v2/submissions/:id
JWT 登录 POST /api/judge-login(accessToken 1h / refreshToken 7d,自动刷新)
判题 POST /api/judge/problem、GET /api/judge/result、GET /api/judge/result_polling
计费点 GET /api/credit
CSRF cookie csrf_token → 请求头 X-CSRF-Token

其它实质性改进:

  • 公式可读:站点把 Markdown 渲染成了 MathJax SVG,但保留了 data-mml-node 结构与 MathJax 字符码。扩展据此重建 LaTeX(10^6、\frac{a}{b}、\sqrt{x}、\sum_{i=1}^{n}), 题面面板优先用 KaTeX 排版;断网时自动退化为 Unicode(10⁶、(a)/(b)、√x)。
  • 不再覆盖你的登录态:站点对匿名请求也会下发新的匿名 connect.sid, 旧逻辑会把用户刚粘贴的会话覆盖掉。现在只有 csrf_token 会被吸收。
  • 样例解析按站点真实格式(#### 样例输入 + 代码块)解析,支持多组样例。
  • 本地评测:C++/C/Java/Rust/Pascal 编译型语言编译一次后逐用例运行, Python/Node 直接运行;真实超时(题目时限 × 1.5,可配)、 TLE/RE/WA/CE 判定、WA 定位到具体行;支持题目要求的文件 IO。
  • 输出比对兼容行末空格、结尾空行、CRLF,并能从 JSON 包装的脏输出里提取答案。
  • 提交后可直接跟踪评测状态(Waiting → Accepted/Wrong Answer…)。
  • 100% 零依赖:扩展不带任何 npm 依赖,安装体积小、启动快。

命令一览

命令 快捷键 说明
Becoder: 搜索题库 / 浏览题目 关键词搜索、791 个标签筛选、翻页(36642 道题)
Becoder: 载入题目 Ctrl+Alt+P 题号 / 链接 / 比赛题号
Becoder: 查看题目题解与讨论 插件内阅读题解正文(支持内嵌 PDF 讲义与评论)
Becoder: 查看整场比赛的题解 / 讲义 输入比赛编号,对应 discussions?type=contests&contest_id=XXXX
Becoder: 手动导入题目与样例 粘贴题面与样例,覆盖交互题 / 站点缺数据
Becoder: 载入比赛 列出比赛题目后选择
Becoder: 在侧边显示题面 编辑器右侧并排
Becoder: 运行全部测试用例 Ctrl+Alt+B 本地评测
Becoder: 提交代码到 Becoder Ctrl+Alt+S 网页登录态提交
Becoder: 查看 / 刷新评测结果 跟踪评测
Becoder: 用浏览器 Cookie 登录 推荐方式
Becoder: 用账号密码登录评测接口 换 JWT,用于判题接口
Becoder: 检查登录状态与计费点
Becoder: 切换服务器地址 公网 / 内网
Becoder: 新建代码文件并绑定题目
Becoder: 从代码注释自动识别题目 // Becoder 题目 #1234
Becoder: 导出测试用例为 .in/.ans

设置项

设置 默认 说明
becoder.serverUrl https://www.becoder.com.cn 站点地址
becoder.defaultLanguage 空 提交语言,留空则每次按站点语言列表选择
becoder.defaultFileExtension cpp 新建解题文件后缀
becoder.autoMountSideBySide true 载入后自动并排显示题面
becoder.timeoutFactor 1.5 超时 = 题目时限 × 系数
becoder.minTimeoutMs 1000 最小超时
becoder.trimTrailingWhitespace true 忽略行末空白
becoder.ignoreCase false 忽略大小写
becoder.compileCommands / becoder.runCommands {} 按语言覆盖命令

关于两种登录

站点有两套独立认证,扩展严格区分:

  1. 网页登录态(Cookie connect.sid) — 取题面、样例、提交、看评测记录。 从浏览器复制,长期有效,是主要方式。
  2. 评测机 JWT — /api/judge/* 判题接口与计费点查询。 用 Becoder: 用账号密码登录评测接口 获取,accessToken 过期会自动用 refreshToken 续期。

只需要刷题 + 提交的话,第 1 种就够了。


已知限制

  • 交互题、答案提交题没有标准输入输出样例,扩展会如实提示,可自行添加用例(用例编辑器)。
  • 题解若是内嵌 PDF,面板里用的是站点的 PDF 阅读器,需要能访问站点静态资源。
  • 站点对 problemId 相同但比赛不同的题目会返回不同内容,扩展按 contest_id / contest_problem 精确请求,不会混淆。
  • 本地评测的时限是本机时限,与评测机性能不同,仅供参考。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft