diff options
| author | Adam Malczewski <[email protected]> | 2026-03-28 19:26:58 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-03-28 19:26:58 +0900 |
| commit | ab6d09df695c5cdfa21aa8005f00ebf2bd37df2b (patch) | |
| tree | ae4f994a85b2ba52a9c8e8626c6d8ae9dd2e4cf4 /.rules/plan/calendar-phase-6.md | |
| parent | 80b35f3a606753ba804445e120eb9a7f05afef85 (diff) | |
| download | ai-pulse-obsidian-plugin-ab6d09df695c5cdfa21aa8005f00ebf2bd37df2b.tar.gz ai-pulse-obsidian-plugin-ab6d09df695c5cdfa21aa8005f00ebf2bd37df2b.zip | |
split of big plan
Diffstat (limited to '.rules/plan/calendar-phase-6.md')
| -rw-r--r-- | .rules/plan/calendar-phase-6.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/.rules/plan/calendar-phase-6.md b/.rules/plan/calendar-phase-6.md new file mode 100644 index 0000000..382059a --- /dev/null +++ b/.rules/plan/calendar-phase-6.md @@ -0,0 +1,39 @@ +# Phase 6: Main Plugin Wiring (`src/main.ts`) + +**Status:** Not started +**Depends on:** Phase 4 (calendar-view.ts), Phase 5 (settings) +**Modifies:** `src/main.ts` + +--- + +## Overview + +Wire the calendar view into the main plugin class: register the view, add ribbon icon, register commands, handle lifecycle. + +--- + +## Changes to `src/main.ts` + +``` +In onload(): + - registerView(VIEW_TYPE_CALENDAR, (leaf) => new CalendarView(leaf, this)) + - addRibbonIcon("calendar", "Open Calendar", () => activateCalendarView()) + - addCommand("open-calendar", "Open Calendar View", ...) + - addCommand("reveal-active-note", "Reveal active note in calendar", ...) + - addCommand("open-today", "Open today's daily note", ...) + +In onunload(): + - detachLeavesOfType(VIEW_TYPE_CALENDAR) + +activateCalendarView(): + - Same pattern as activateView() for the chat — check for existing leaf first +``` + +--- + +## Notes + +- Follow the existing pattern in `main.ts` for registering views (look at how the chat view is registered). +- The `activateCalendarView()` helper should check if a calendar leaf already exists before creating a new one. +- Calendar settings must be included in `loadData()`/`saveData()` — merge with defaults. +- The "Open today's daily note" command uses `openDailyNote()` from Phase 1 with `window.moment()` as the date. |
