Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>Seagull Algorithms & KnowledgeNew to Visual Studio Code? Get it now.
Seagull Algorithms & Knowledge

Seagull Algorithms & Knowledge

Seagull-W

|
2 installs
| (0) | Free
离线 Python / Rust 算法练习、后训练问答、SQLite 记录与复习。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Seagull Algorithms & Knowledge

在 VS Code 原生编辑器中练习 Python / Rust,阅读中文题面、背景知识与参考答案,保存历史与复习笔记。包含 101 道双语言算法题、18 个专题、20 篇知识说明和 10 道后训练问答。

题目侧栏按基础、进阶、挑战的学习路线排序,稳定编号不代表学习顺序。每个专题背景页有先修知识、阶段目标和逐题路线;旧题 ID、草稿与提交历史继续兼容。新增题库需使用本次重新构建的安装包,已安装的旧插件不会自动读取仓库内容。

安装与使用

  1. 安装 Python 3.10+;做 Rust 题还需 rustc;使用 rust-analyzer 补全和诊断还需 Cargo 与 rust-src(rustup 工具链可运行 rustup component add rust-src)。插件不自动安装语言工具链。
  2. VS Code 扩展面板菜单 → 从 VSIX 安装 → 选择 seagull-practice-<版本>.vsix。已发布版本可从仓库的 Releases 下载;Marketplace 上架后也可直接搜索安装。
  3. 点击活动栏 Seagull 图标,在专题树选择题目。编辑器打开 .py / .rs,旁边显示题面。
  4. 实现 solve。Ctrl+Enter 提交,Alt+Enter 运行示例;macOS 提交为 Cmd+Enter。也可使用编辑器工具栏或题面按钮。
  5. “笔记与复习”和后训练问答使用明确的保存按钮;未保存表单以 Webview 状态辅助恢复。代码草稿约 600ms 自动同步。

未保存到文件的编辑器内容也可提交;提交记录保存点击提交时的代码快照。Python 与 Rust 草稿和通过状态分别保存,笔记按题目共享。

参考答案和历史代码通过只读文档打开,可与当前草稿比较。替换历史代码前需要选择“替换当前草稿”;编辑器支持撤销。首次打开题目时仍会有模板中的 NotImplementedError / todo!(),这是等待实现的标记。

原生编辑器提供查找、撤销、多光标和语法高亮。Python/Rust 的高级补全需相应语言扩展。打开 Rust 题目时,插件在 solutions/Cargo.toml 生成 Cargo 工作区,并将练习目录加入当前 VS Code 工作区;已有 Rust 草稿也会纳入工程。每道题作为独立库使用原来的 solution.rs,无需定义 main,不同题目的 solve 不会冲突。判题仍使用原来的 rustc 流程。

若 rust-analyzer 报 failed to find any projects,请升级插件后重新打开 Rust 题目,并运行 Rust Analyzer: Restart server。若你已手动设置 rust-analyzer.linkedProjects(会关闭自动发现),请将数据目录中的 solutions/Cargo.toml 加入该列表,或清除此自定义设置。插件不会覆盖已有 Cargo.toml;发生配置冲突时会显示文件路径,便于手动处理。

数据目录与 D 盘

Windows 检测到 D 盘时,优先使用 D:\SeagullPractice,并实际检查目录是否可写。没有 D 盘或默认目录权限不足(EPERM / EACCES / EROFS)时使用 VS Code 的 globalStorageUri 用户数据目录;权限回退会显示提示并记住新目录,避免后续启动切回旧目录。运行 Seagull: 查看数据目录 可查看实际位置。

可设置 seagull.dataDirectory 为其他可写的绝对路径。手动指定目录不可写时会明确报错,需修改配置后运行 Seagull: 重启 Python 核心。目录切换不会自动迁移旧记录,可使用导入命令恢复。

{
  "seagull.pythonPath": "D:\\python\\python312\\python.exe",
  "seagull.dataDirectory": "D:\\objects\\seagull-leetcode\\data",
  "seagull.rustcPath": ""
}

若沿用本项目现有数据库,可把数据目录设置为上面的 data 路径;否则使用导入命令迁移。修改配置后运行 Seagull: 重启 Python 核心,目录切换不会自动搬走旧数据。

根目录结构:

路径 用途
practice.sqlite3 草稿、提交、进度、笔记与知识回答
solutions/<题目 ID>/solution.py 或 .rs 可在原生编辑器打开的练习文件
recovery/<窗口 ID>/ 尚未同步或有冲突的代码恢复副本
runs/ 判题临时目录,完成、超时或取消后清理
tmp/、cache/pycache/ Python 进程临时文件与字节码缓存
backups/、before-import-*.json 手动导出与导入前备份
pending-forms.json 尚未点击保存的笔记与问答恢复副本

VS Code 自身安装、已有 Python/Rust 及语言扩展的位置不会被插件迁移。插件自身很小;本项目的 npm 缓存、依赖、构建产物及隔离测试目录也放在 D 盘。rustc 来自 PATH 或配置路径,不下载新的 Rust 工具链。

不要删除数据库和 recovery 目录来清理空间。 判题目录自动清理;备份按需手动归档。本地数据没有加密,也不上传网络。

旧数据迁移和冲突

命令面板 → Seagull: 导入备份 / 迁移旧记录:可选择网页导出的 JSON,或旧版 practice.sqlite3。SQLite 迁移以只读事务读取包含 WAL 的快照,不移动原文件;导入前自动备份目标数据库。重复提交按 ID 去重,草稿与笔记保留较新版本。

已经打开的编辑器不会被导入覆盖。需要采用迁移后的草稿时重新打开题目,或运行 Seagull: 比较并解决草稿冲突。两个窗口同时改同一草稿会通过数据库时间修订标记检测冲突;当前编辑器与 recovery 副本保留,比较后选择要保存的版本。冲突不阻止保存不可变的提交快照。

导出备份前同步当前草稿;冲突未解决时需要先解决。恢复副本不属于数据库 JSON 备份,请另行保留,或先恢复到草稿。VS Code 热退出缓冲区也会优先保留。

代码草稿提供修订冲突检测;笔记与问答按最后保存的内容更新,请避免在多个窗口同时修改同一条笔记。未保存表单缓存是辅助恢复,不替代点击保存或数据库备份。

首版边界

  • 仅本地桌面 VS Code;远程 SSH、WSL、容器和浏览器版执行暂不支持。Windows 为实际验证平台。
  • 受限工作区可以浏览题库;运行代码需要 Workspace Trust。运行配置在未信任时只读取用户设置。
  • Python 子进程、Rust 编译器以当前用户权限运行。这是个人练习执行器,不是安全沙箱。
  • Rust 编译 30 秒,整组测试执行 4 秒,输出限制 256 KB。通知中的取消按钮会终止判题进程树。
  • 暂无硬内存限制、云同步、多人竞赛、PyTorch 编程题或复杂度自动评分。
  • 不依赖 HTTP 端口或在线 API。SQLite schema v1 和旧版 JSON 格式保持兼容。

开发

在仓库的 extension 目录运行:

npm.cmd ci
npm.cmd run build
npm.cmd test
npm.cmd run test:integration
npm.cmd run package

依赖在 extension/node_modules,npm 缓存在 work/npm-cache。构建复制共享 Python 源到 extension/python;它是生成目录,不直接编辑。VSIX 输出在 work/dist。

使用 F5 调试时以 extension 为 VS Code 工作区。集成测试优先使用 SEAGULL_VSCODE_EXECUTABLE 指定现有 VS Code,避免下载另一套编辑器。测试数据和用户配置在仓库 work 下隔离,不修改日常 VS Code 设置。

仓库根目录 python -X utf8 server.py --open 仍可启动网页版本。网页与插件共用 service.py、judge.py、store.py 和题库。

更新与隐私

Marketplace 安装后,VS Code 按扩展自动更新设置获取新版本。手动 VSIX 安装可安装新版覆盖旧版。练习数据库在独立数据目录,不随扩展覆盖安装删除;升级前仍建议导出备份。

插件不包含遥测、云账号或网络上传功能。执行 Python / Rust 练习使用本机工具链。题库、运行结果及个人练习记录留在本地。

自动测试和发布配置见仓库的 发布指南。

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