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

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:

  1. Activity Bar — своя вкладка с Task Dashboard
  2. Task Dashboard — WebView в editor area со split layout:
    • Левая панель — список задач с фильтрацией/группировкой
    • Правая панель — содержимое выбранной задачи (редактируемый markdown)
  3. 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 frontmatter
  • uuid — генерация ID