3.2 KiB
3.2 KiB
project-tasks — VS Code Extension
Хранение
Формат: Markdown + YAML frontmatter (один .task.md файл на задачу)
---
title: "Пофиксить баг логина"
status: todo # todo | in-progress | done | cancelled
priority: high # low | medium | high | critical
tags: [bug, frontend]
assignee: ""
created: 2026-07-12T10:00:00Z
updated: 2026-07-12T10:00:00Z
---
Описание задачи в markdown...
Структура папок:
.vscode/tasks/— проектные задачи~/project-tasks/— глобальные задачи (настраивается)
Оба пути настраиваются через VS Code settings.
UI в основном окне (Split-редактор)
Через Custom Editor + WebView:
- Activity Bar — своя вкладка с Task Dashboard
- Task Dashboard — WebView в editor area со split layout:
- Левая панель — список задач с фильтрацией/группировкой
- Правая панель — содержимое выбранной задачи (редактируемый markdown)
- TreeView в Explorer — быстрый просмотр
Архитектура кода
src/
├── extension.ts # Активация, регистрация
├── storage/
│ ├── taskStore.ts # CRUD для .task.md (gray-matter парсинг)
│ └── configStore.ts # Настройки
├── model/
│ └── task.ts # Интерфейс Task + типы
├── views/
│ ├── taskTreeProvider.ts # TreeView в sidebar
│ ├── taskListProvider.ts # Data provider для WebView
│ └── taskDashboardPanel.ts # WebView split layout
├── commands/
│ ├── createTask.ts
│ ├── openTask.ts
│ ├── deleteTask.ts
│ └── changeStatus.ts
└── utils/
├── uuid.ts
└── markdown.ts
План реализации
| Фаза | Что делаем |
|---|---|
| 1. Scaffold | yo code, TypeScript, настройка package.json |
| 2. Storage | TaskStore — чтение .task.md, парсинг через gray-matter, CRUD |
| 3. TreeView | Боковая панель со списком задач по статусу |
| 4. Команды | createTask, deleteTask, changeStatus, openTask |
| 5. Task Dashboard | WebView split layout в editor area |
| 6. Глобальные задачи | Второй storage (глобальная папка) |
| 7. Kanban | Drag-n-drop доска |
| 8. Публикация | vsce publish |
Зависимости
gray-matter— парсинг YAML frontmatteruuid— генерация ID