AtCoder Extension for VSCode
一个功能强大的VSCode插件,用于AtCoder竞赛题目获取、翻译、本地评测和提交。
功能特性
🎯 核心功能
- 题目获取 - 一键获取AtCoder比赛的所有题目
- 智能翻译 - 使用LLM翻译题目(支持多种AI提供商)
- 本地评测 - 调用CPH或内置评测器运行样例测试
- 在线提交 - 直接在IDE内提交代码到AtCoder
- GUI界面 - 美观的侧边栏界面,支持题目浏览
📝 题目显示
- 支持Markdown格式解析
- 支持LaTeX数学公式渲染(使用KaTeX)
- 原文/译文一键切换
- 样例测试用例清晰展示
🤖 支持的LLM提供商
- OpenAI (GPT-4, GPT-4o等)
- Anthropic (Claude)
- Google Gemini
- 自定义API端点
快速开始
方法一:直接调试运行(推荐)
- 用VSCode打开此项目文件夹
- 按
F5 启动调试(会打开一个新的VSCode窗口)
- 在新窗口中,点击侧边栏的AtCoder图标
- 输入比赛URL,如:
https://atcoder.jp/contests/abc350
方法二:打包安装
# 安装依赖
npm install
# 编译
npm run compile
# 打包成VSIX
npm install -g @vscode/vsce
vsce package
# 然后在VSCode中安装生成的 .vsix 文件
配置
在VSCode设置中配置以下选项:
LLM配置
{
"atcoder.llm.provider": "openai",
"atcoder.llm.apiKey": "your-api-key-here",
"atcoder.llm.model": "gpt-4o-mini",
"atcoder.llm.baseUrl": "",
"atcoder.llm.targetLanguage": "zh-CN"
}
编程语言配置
{
"atcoder.language": "cpp",
"atcoder.cppCompiler": "g++",
"atcoder.cppFlags": "-std=c++17 -O2 -Wall"
}
支持的编程语言
- C++ (默认)
- Python
- Java
- Rust
- Go
使用指南
1. 获取题目
- 点击侧边栏的AtCoder图标
- 在输入框中输入比赛URL,例如:
https://atcoder.jp/contests/abc123
- 点击 "Fetch" 按钮
2. 查看题目
- 点击题目列表中的任意题目
- 题目内容将显示在GUI界面中
- 数学公式会自动渲染
3. 翻译题目
- 点击 "Translate" 按钮
- 等待LLM翻译完成
- 使用 "Show Translated" / "Show Original" 切换显示
4. 本地评测
- 打开你的代码文件
- 点击 "Run Samples" 按钮
- 查看测试结果
5. 提交代码
- 打开你的代码文件
- 点击 "Submit" 按钮
- 确认提交
6. 登录(可选)
如需提交代码,需要先登录:
// 在设置中配置
{
"atcoder.username": "your-username",
"atcoder.password": "your-password"
}
或使用命令面板:AtCoder: Login
命令列表
| 命令 |
描述 |
AtCoder: Fetch Contest Problems |
获取比赛题目 |
AtCoder: Login |
登录AtCoder |
AtCoder: Submit Solution |
提交代码 |
AtCoder: Run Sample Tests |
运行样例测试 |
AtCoder: Translate Problem |
翻译当前题目 |
AtCoder: Toggle Original/Translated |
切换原文/译文 |
本地评测
使用CPH(推荐)
安装 Competitive Companion 扩展以获得最佳体验。
内置评测器
如未安装CPH,插件会使用内置评测器:
故障排除
无法获取题目
- 检查网络连接
- 确认比赛URL正确
- AtCoder可能有访问限制,稍后重试
翻译失败
- 检查LLM API Key是否正确配置
- 确认API提供商服务可用
- 检查网络代理设置
提交失败
- 确认已登录AtCoder
- 检查代码语言设置是否正确
- 确认在比赛时间内
开发
项目结构
Atcoder-Extension/
├── src/
│ ├── extension.ts # 插件入口
│ ├── providers/
│ │ └── problemsProvider.ts # Webview提供者
│ └── services/
│ ├── atcoderService.ts # AtCoder API服务
│ ├── llmService.ts # LLM翻译服务
│ ├── judgeService.ts # 本地评测服务
│ └── submitService.ts # 提交服务
├── media/
│ ├── styles.css # 样式文件
│ └── atcoder-icon.svg # 图标
├── package.json # 插件配置
└── tsconfig.json # TypeScript配置
开发命令
# 监听模式
npm run watch
# 运行测试
npm test
# 代码检查
npm run lint
许可证
MIT License
贡献
欢迎提交Issue和Pull Request!