项目待办
一个轻量的 VS Code 项目待办插件。它在左侧活动栏提供简单的输入框、完成状态和删除操作,并为每个项目保存独立的待办清单。
功能
- 在侧栏中使用会随内容增高的输入框添加待办,回车创建、
Shift + Enter 换行
- 使用 Markdown 编写、展示和编辑待办内容
- 待办按待开始、开发中、测试中、已完成四种状态分组,分组可折叠并记住折叠状态
- 单击条目前的状态圆点循环切换状态,已完成待办显示完成时间
- 编辑态中修改内容、状态和重要性,一次保存
- 拖拽待办左侧手柄调整顺序,或拖到其他分组切换状态
- 悬停后删除待办
- 每个项目使用独立的数据文件
- 切换项目时自动切换待办清单
- 外部修改数据文件后自动刷新侧栏
- 从旧版全局存储自动迁移一次
- 使用 VS Code 主题颜色保持界面风格一致
数据存储
待办保存在当前项目中:
<项目根目录>/.vscode/todos.json
文件采用可读的 JSON 格式,可以随项目备份或提交到版本库:
{
"version": 5,
"todos": [
{
"id": "示例-id",
"title": "完成发布准备",
"status": "completed",
"priority": "high",
"completedAt": "2026-08-06T02:10:30.000Z"
}
]
}
status 可以是 pending、developing、testing 或 completed。旧版数据缺少 status 时会按 completed 字段推导,旧的 in-progress 会并入 developing,缺少 priority 时按普通重要性读取;历史完成项没有 completedAt 时会显示“完成时间未知”,不会伪造时间。数据会在下次保存时升级格式,数组中的顺序即侧栏中的拖拽顺序。
多根工作区当前使用第一个工作区文件夹作为待办存储目录。
使用方法
- 打开一个项目文件夹。
- 单击左侧活动栏中的“项目待办”。
- 输入 Markdown 待办内容,按回车添加;需要换行时按
Shift + Enter,也可以单击输入框右侧的纸飞机图标。
- 单击条目前的圆点按“待开始 → 开发中 → 测试中 → 已完成”循环切换状态,待办会自动移动到对应分组。
- 悬停后单击编辑按钮,可修改 Markdown 原文、状态和重要性,单击保存或按
Ctrl/Cmd + Enter 提交。
- 拖动左侧手柄可在分组内排序,或拖到其他分组切换状态;分组折叠时,拖到分区标题栏即可放入。
- 单击分区标题栏可折叠或展开该分组,悬停条目后可删除。
如果没有打开项目文件夹,输入框会保持禁用,避免待办再次落入全局共享存储。
安装 VSIX
在 VS Code 中打开扩展面板,单击右上角菜单,选择“从 VSIX 安装”;也可以使用命令行:
code --install-extension project-todo-sidebar-1.3.0.vsix --force
安装或升级后执行“开发人员: 重新加载窗口”即可使用新版本。
开发
环境要求:
- Node.js 18 或更高版本
- VS Code 1.85 或更高版本
安装依赖并验证:
npm ci
npm test
按 F5 可以启动扩展开发宿主进行调试。
打包
npx @vscode/vsce package
打包前会自动编译 TypeScript,生成的 VSIX 不包含源码、测试文件和开发依赖。
发布
发布到 VS Code Marketplace 前,需要:
- 在 Visual Studio Marketplace 创建自己的 Publisher。
- 将
package.json 中的 publisher 改为自己的 Publisher ID。
- 创建具有
Marketplace: Manage 权限的 Azure DevOps PAT,或使用 Microsoft Entra ID 自动发布。
- 执行
vsce login <publisher-id> 和 vsce publish。
不要把 PAT、Cookie 或其他登录凭据写入仓库。
跨平台
插件只使用 TypeScript、HTML、CSS 和 VS Code API,不包含平台相关原生二进制。同一个 VSIX 可用于 Windows、macOS 和 Linux。
开源说明
本项目基于 Aayush Kumar Sah 的 Vs-Code-TODO-Extension 修改,保留原项目的 MIT 许可证和版权声明。
当前修改版仓库:https://github.com/dayhi/project-todo-sidebar