Files
xboct-flow/docs/PLAN.md
T
2026-07-12 18:34:54 +05:00

79 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# project-tasks — VS Code Extension
## Хранение
Формат: Markdown + YAML frontmatter (один `.task.md` файл на задачу)
```markdown
---
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**:
1. **Activity Bar** — своя вкладка с Task Dashboard
2. **Task Dashboard** — WebView в editor area со split layout:
- Левая панель — список задач с фильтрацией/группировкой
- Правая панель — содержимое выбранной задачи (редактируемый markdown)
3. **TreeView в Explorer** — быстрый просмотр
## Архитектура кода
```txt
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 frontmatter
- `uuid` — генерация ID