Files
xboct-flow/todo.md
T

3.8 KiB
Raw Blame History

Мелкие замечания / backlog

Dashboard

[x] Сохранение по Ctrl+S

  • В detail (textarea description) — hotkey Ctrl+S / Cmd+S → тот же flow, что кнопка Save (saveDescription).

[ ] Форматирование при сохранении (как в VS Code, без force-format)

Почему сейчас не работает: кнопка Save в Dashboard пишет через saveTaskDescriptionrepo.updatefs.writeFile. Это не save текстового документа в editor. editor.formatOnSave / formatters цепляются к TextDocument save (onWillSaveTextDocument и т.п.), а не к произвольной записи на диск. Обычный Ctrl+S в .md / .task.md идёт через editor → format применяется. Наша кнопка — другой путь.

Не делать: вручную вызывать prettier/formatDocument «всегда» — это не «как в VS Code», а свой форс, игнорит user settings (off / другой formatter).

Как сделать «как в VS Code» (если захотим паритет): UI-адаптер save открывает/берёт TextDocument файла задачи, правит body через WorkspaceEdit, затем document.save() — тогда сработают format-on-save и остальные will-save хуки, только если они включены у пользователя. Use-case/repo для headless/тестов можно оставить; editor-save — optional path из host.

Пока: не блокер; format при правке файла в editor уже ок. Ctrl+S в Dashboard без editor-path format не даст.

[x] Кнопка сброса фильтров

  • В toolbar Dashboard: Reset → filter = {}, query/chips/groupBy defaults, setFilter + сброс groupBy.

[x] Фильтр по приоритету

  • Chips: critical / high / medium / low → filter.priorities.

[ ] Dashboard: raw MD ↔ view

  • В detail переключатель режимов: view (текущий UI: meta + textarea body) и raw (весь файл как markdown + frontmatter, как в editor).
  • Редактирование/save в raw — отдельный контракт (parse → task / serialize), не ломать format-on-save историю: raw-save тоже лучше через editor path, если нужен паритет с VS Code.

[x] Боковая панель

  • кнопка открытия dashboard (view title → xboctFlow.openDashboard)
  • кнопки на задаче (inline): open file, edit in dashboard (xboctFlow.openInDashboard + preselect), delete
  • change status остаётся в context menu

[x] Dashboard: кнопка создания задачи

  • + Task в toolbar → inbound createTask → host executeCommand("xboctFlow.createTask") → reload list

[x] Kanban

  • кнопка переключения global\project (scope filter: All / Project / Global)
  • кнопка создания задачи на каждой колонке (createTask + status колонки)
  • колонки с defaultHidden (backlog, cancelled) скрыты по умолчанию; кнопка Show hidden / Hide backlog/cancelled

[x] Cтатус backlog

  • в модели (TaskStatus.BACKLOG), ORDER, chips dashboard из ORDER
  • в kanban: колонка при Show hidden; defaultHidden в meta

[ ] Dashboard

  • добавить фильтр по global\project
  • в списке задач выводить её scope
  • сортировка - по умолчанию старые задачи сверху, но можно выбрать обратную сортировку