Members

IdeaFileStatusSummary
activation_sequence reqlan rq/extension/activation.rq `activate` is synchronous and non-blocking in ["../../packages/extension/src/extension/main.ts"]; it never awaits startup work so the UI is available as soon as possible. It runs the following phases: 1. Register reference inlay-hint and CodeLens configuration / commands synchronously. 2. Call [analytical_submodule_activation] — registers commands, activity bar, chat, webviews, AI commands, and mutation hooks synchronously and returns without starting indexing. 3. Register import-error quick-fix commands when the analytical submodule registered. 4. Arm [first_paint_startup] so index startup cannot race the activity-bar shell. 5. Invoke [onboarding_check] without awaiting it, so onboarding cannot block activation. Submodule failures are logged and do not prevent later phases from running.
analytical_submodule_activation reqlan rq/extension/activation.rq Analytical submodule registration is implemented in ["../../packages/extension/src/analytical_submodule/index.ts"]. `activateAnalyticalSubmodule` is synchronous: VS Code contributions ( commands, activity bar provider, chat participant, webviews, AI commands, mutation hooks ) register synchronously and it returns the submodule immediately. It does not start indexing; it passes the activity-bar post-paint callback into the provider and the caller starts index activation through [first_paint_startup].
background_startup reqlan rq/extension/activation.rq Startup work that must not block activation is coordinated by `scheduleBackgroundStartup` in ["../../packages/extension/src/extension/main.ts"]. - [first_paint_startup] gates index discovery and sync when the Context view opens; a three-second fallback preserves warm startup when the sidebar remains closed. - The language client starts after the same paint signal when the Context view opens, with a one-second fallback so language features still start when the sidebar remains closed. - Registers attribute and name catalog sync once the language client exists; the initial push covers an already-ready index and the catalog-update subscription covers indexes that become ready afterwards. Index and language-client failures are logged and do not affect the already-available UI.
first_paint_startup reqlan rq/extension/activation.rq done The activity-bar HTML shell is assigned synchronously by ["../../packages/extension/src/activity_bar_module/activity-bar-webview-provider.ts"]. Its Svelte app installs the host message listener before mount, then sends the one-shot `ready` handshake from a task queued after its first animation frame. ["../../packages/extension/src/extension/startup-gate.ts"] resolves that handshake once; `IndexService.activate` then discovers bases and syncs. If no view opens, a bounded three-second fallback starts the index without any visible first paint to contend with. Parser services inside each `WorkspaceIndex` are lazy and are created only when a file is actually parsed, not while bases are discovered. The sql. js asm implementation is emitted as a separate lazy vendor bundle, so loading `main.cjs` does not parse the database engine before `activate`.
onboarding_check reqlan rq/extension/activation.rq Post-install onboarding is checked on every activation, not via a dedicated install event. ["./onboarding/page-thanks-for-installing.rq".installation_event_trigger] is satisfied because `activate` always calls ["../../packages/extension/src/extension/open-thanks-for-installing.ts"]. The check reads global state key `onboarding` via ["../../packages/extension/src/extension/onboarding-state.ts"]: - `onboardingMessageShown` — when false, open the onboarding webview panel via ["../../packages/extension/src/extension/onboarding-panel.ts"]. - `lastVersion` — updated each activation after the message has been shown so future releases can detect extension updates. The call is fire-and-forget; errors are logged and do not fail activation.