feat: initial release
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user