Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>yl503 for vscodeNew to Visual Studio Code? Get it now.
yl503 for vscode

yl503 for vscode

Liruiz

| (0) | Free
在 VS Code 内登录 HydroOJ(如 yl503.yali.edu.cn),一键把题面与样例导入到 Problems/ 目录,提交代码,并收发私信
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

yl503 for vscode

在 VS Code 里登录 yl503(yl503.yali.edu.cn),在编辑器内查看题面、作业、私信、评测记录和题解,并直接提交代码。

仅适用于 yl503(yl503.yali.edu.cn),不支持其他 Hydro 站点。

功能

  • 编辑器内登录:用户名 / 密码只在 VS Code 输入框里输入,直接提交给 OJ 本站,不经过任何第三方
  • 只保存会话 Cookie:登录态存在 VS Code 的 SecretStorage(系统加密),不落明文文件
  • 题面内联查看:作业的「题面」直接在 VS Code 侧边以 Markdown 预览打开(带标题、时限/内存、标签、作业名,图片自动补成绝对地址),不跳浏览器
  • 一键提交:在 Problems/<题号>/ 里按 Ctrl+Alt+S,自动识别题号 → 选语言 → 提交 → 实时轮询评测结果(Accepted / Wrong Answer / …)
  • 私信:OI: 私信(查看/发送) 打开聊天面板,抓取你和某个用户的全部私信并直接回复;OI: 快速发送私信 可一句话直发
  • 作业:OI: 查看作业 按名字模糊搜索作业、看题目与成绩表;OI: 查看作业列表 浏览全部作业并点击进入
  • 评测记录:OI: 我的评测记录 看当前账号的全部提交;OI: 指定题目的评测记录 看某道题的全部提交(状态/得分/用时/内存/语言一目了然,点开可看详情)
  • 题解:OI: 查看题目题解 抓取该题的全部题解,按作者、赞同、回复整理成 Markdown 在侧边预览
  • 可排查:OI: 查看导入日志 查看每次请求与解析结果

使用方法

  1. 用 VS Code 打开你的 OI 工作区(可含 Problems/ 目录,用于提交时按 Problems/<题号>/ 推断题号)
  2. 点右下角状态栏 「Hydro: 未登录」,或 Ctrl+Shift+P → OI: 登录 HydroOJ
  3. 输入用户名、密码(密码为掩码输入)
  4. 作业相关:
    • Ctrl+Shift+P → OI: 查看作业列表:浏览全部作业(进行中/已结束、剩余时间、题数),点击任一条即可进入作业面板
    • Ctrl+Shift+P → OI: 查看作业:按名字搜作业并打开
    • 作业面板里可看题目、提交、成绩表
  5. 评测记录:
    • Ctrl+Shift+P → OI: 我的评测记录:看当前账号的全部提交(默认按时间倒序)
    • Ctrl+Shift+P → OI: 指定题目的评测记录:输入题号,看该题的全部提交
    • 列表里点任意一行可跳到评测详情(浏览器)
  6. 题解:Ctrl+Shift+P → OI: 查看题目题解,输入题号,抓取全部题解在侧边预览
  7. 提交代码:在 Problems/<题号>/ 下打开 .cpp,按 Ctrl+Alt+S(或 Ctrl+Shift+P → OI: 提交当前代码到 OJ):
    • 题号从当前文件所在目录 Problems/<题号>/ 自动推断(也可手动输入)
    • 选语言(默认 cc.cc14o2 = C++14 O2)
    • 确认后提交,状态栏实时显示「评测中 → Accepted / Wrong Answer…」

私信

  1. Ctrl+Shift+P → OI: 私信(查看/发送)
  2. 列表里选最近的会话;或选 私信新的人…,输入对方 UID 或用户名(可只输一部分,会模糊搜索,重名时让你挑)
  3. 侧边打开聊天面板:
    • 左右气泡显示收发双方,按天分组,带时间
    • 输入框 Enter 发送,Shift+Enter 换行
    • 顶部「刷新」手动拉取、「换人」切换对象、「网页」在浏览器里打开对应的 /home/messages?target=<uid> 页面
    • 面板打开期间默认每 8 秒自动刷新(oiHydro.messageRefreshSeconds,设 0 关闭)
  4. 只想发一句话:OI: 快速发送私信 —— 会先列出「发给当前对象 / 换一个对象…」,换完会记住新对象
  5. 想换个默认对象但不发消息:OI: 更换快速发送对象,选完可直接点「立即发一条」

快速发送对象、私信面板里最后聊的人,是同一个记忆;面板里点「换人」也会同步过去。

私信是账号级的,与题目所在的域无关,但 Hydro 的路由挂在域下,所以会沿用你上次用过的域(oiHydro.domainPath 兜底)。

作业

  1. Ctrl+Shift+P → OI: 查看作业
  2. 输入作业名的一部分(留空 = 最近作业),回车后会按相似度列出最像的几个:
    • 每条显示「进行中 / 已结束」「剩几天」「几道题」和起止时间
    • 站内搜不到时会退回最近作业做本地模糊匹配,漏字、错字也能命中
  3. 选中即打开作业面板(侧边):
    • 题目 页:A/B/C 题号、标题、我的提交状态与分数(未提交 / Accepted 100 分 / …)
      • 「题面」直接在 VS Code 侧边打开 Markdown 预览(带标题、时间/内存限制、标签和作业名,图片会自动补成绝对地址),不跳浏览器
      • 「提交」把最近编辑的代码文件提交到这道题(选语言 → 确认 → 轮询评测结果);即使焦点在面板上也能正确取到那个 .cpp
    • 成绩表 页:排名、用户、总分、每题的分数/用时,点分数可跳转评测记录
    • 顶部还有「刷新 / 换作业 / 网页」
  4. 没认领过的作业会先显示「认领作业」按钮(等价于网页上的 Claim Homework),认领后题目才会出现

作业只在"进行中"能提交;已截止时提交按钮会置灰。成绩表若被老师设为结束前隐藏,会显示提示而不是报错。

评测记录

  1. Ctrl+Shift+P → OI: 我的评测记录,侧边打开一个表格:状态(AC/WA/TLE/… 带颜色徽章)、题目、得分、用时、内存、语言、提交者、时间
    • 默认显示当前登录账号的全部提交;若取不到 uid 则显示全部
    • 顶部「刷新」重拉;滚动到底点「加载更多」翻页
    • 点任意一行在浏览器打开该次评测详情
  2. Ctrl+Shift+P → OI: 指定题目的评测记录,输入题号(如 139),看该题的全部提交(含别人的),方便对拍 / 参考

状态颜色:绿=通过,红=WA/RE,橙=TLE/MLE/OLE,蓝=评测中/编译中,灰=已取消/未知。

题解

  1. Ctrl+Shift+P → OI: 查看题目题解
  2. 输入题号(留空时若当前编辑器在 Problems/<题号>/ 下会自动填)
  3. 抓取该题全部题解,按「作者 · 赞同数 · 回复数」整理,在 VS Code 侧边以 Markdown 预览打开;题解里的图片链接会自动补成站点绝对地址

命令

命令 说明
OI: 登录 HydroOJ 输入账号密码,保存会话 Cookie
OI: 提交当前代码到 OJ 提交当前文件并轮询评测结果(默认快捷键 Ctrl+Alt+S)
OI: 私信(查看/发送) 打开私信面板:抓取与某人的对话并直接回复
OI: 快速发送私信 不进面板,直接给「快速发送对象」发一条(会先让你确认或换人)
OI: 更换快速发送对象 换掉快速发送的默认对象,不发消息
OI: 查看作业 按名称搜索/打开作业,看题目、交题、看成绩表
OI: 查看题目 按名称搜索题目,并在 VS Code 内打开题面
OI: 查看作业列表 浏览全部作业,点击任一条进入作业面板
OI: 我的评测记录 查看当前账号的全部评测记录
OI: 指定题目的评测记录 输入题号,查看该题的全部评测记录
OI: 查看题目题解 输入题号,查看该题的全部题解(侧边预览)
OI: 退出登录 清除本地登录态
OI: 查看导入日志 查看请求与解析细节
OI: 网络诊断 抓不到题时先跑这个:打印 DNS、TCP、Node 与 curl 两条通道的真实耗时

设置

设置项 默认值 说明
oiHydro.baseUrl https://yl503.yali.edu.cn 站点地址;HTTPS 连不上时可改成 http://
oiHydro.serverIp 空 固定服务器 IP。当域名解析出公网 IP、而校内只有内网 IP 能连通时填内网地址(如 172.45.35.5),连接时会自动带上正确的 Host 头
oiHydro.domainPath d/J2026 域路径,所有功能(导题/提交/私信/作业)都用它,默认即 J2026
oiHydro.problemsDir Problems 题目目录(相对工作区根目录)
oiHydro.openAfterImport false 导入后是否自动打开 problem.md(默认只在通知里给按钮)
oiHydro.autoOpenPreview false 自动打开时是否同时在侧边开 Markdown 预览
oiHydro.preferCurl false 始终用系统 curl.exe 抓取;默认「Node 失败才自动切 curl」
oiHydro.codeLang cc.cc14o2 默认提交语言(cc.cc17o2 = C++17 O2,py.py3 = Python3)
oiHydro.confirmSubmit true 提交前弹确认框,防误交
oiHydro.messageRefreshSeconds 8 私信面板自动刷新间隔(秒),0 = 关闭自动刷新
oiHydro.allowInsecureTLS false 站点证书链不完整时忽略校验(不安全,仅自签站点)

抓不到题目时

按顺序排查,三步基本能定位:

  1. OI: 网络诊断 —— 看 DNS 解析出的 IP、TCP 是否连通、Node / curl 两条通道谁通
  2. 若 DNS 给的是公网 IP 而校内只能走内网 IP,把 oiHydro.serverIp 填成内网地址(可用浏览器打开题目页确认能访问)
  3. 仍失败看 OI: 查看导入日志,或检查站点是否本身 502

安全说明

  • 密码不保存:登录成功后只保留会话 Cookie(HttpOnly 会话级别)
  • Cookie 存放在 VS Code SecretStorage,由操作系统凭据保护,扩展不会写到工作区文件
  • 所有网络请求只发往 oiHydro.baseUrl 指向的站点

已知限制

  • 依赖站点返回结构与 Hydro 版本(本扩展在 Hydro 4.58 上验证)
  • 题面中的图片若需要登录才能访问,Markdown 预览里可能显示不出来
  • 样例依赖题面里存在「输入样例 / 输出样例」代码块;没有的话不会生成 .in/.out

反馈

遇到解析问题,请提供 OI: 查看导入日志 的输出,以及题目目录下生成的 raw_problem.html(如有)。

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft