From Flutter Monaco
Integrates flutter_monaco 3.x into a Flutter app: editor lifecycle, documents, platform setup, focus, overlays, and disposal. Use when adding MonacoEditor or MonacoController.
How this skill is triggered — by the user, by Claude, or both
Slash command
/flutter-monaco:integrate-flutter-monacoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build the integration against the installed package version and its public API. Read `pubspec.yaml`, `pubspec.lock`, the consuming screen, and the current `flutter_monaco` README before changing code. Never invent a bridge method or copy a 2.x example into a 3.x app.
Build the integration against the installed package version and its public API. Read pubspec.yaml, pubspec.lock, the consuming screen, and the current flutter_monaco README before changing code. Never invent a bridge method or copy a 2.x example into a 3.x app.
Read references/integration-patterns.md before implementation.
flutter_monaco 3.x into a consuming Flutter application.MonacoEditor for a screen that wants widget-owned creation, loading, errors, and disposal.MonacoController when the app must prepare, share, or coordinate the controller outside the widget.MonacoEditor(controller: ...), the widget still applies its current options, resolved theme/language, initial text, background, interaction, and scroll configuration after readiness. Keep those values consistent with the controller's boot configuration or designate the widget as the intentional live configuration owner. Supply page policy to MonacoController.create; the widget's page is ignored for an external controller.initialText only for boot content. After readiness, content belongs to controller.document; multi-file apps should open documents with stable file:/// URIs.MonacoController.create returns before the editor is ready. On Web, mount and paint controller.webViewWidget before awaiting whenReady.controller.document.setText, getText, and setLanguage; content operations are not controller methods in 3.x.controller.whenReady before treating a self-created controller as live.Offstage, Visibility(visible: false), or inserting the widget only after readiness prevents boot.EditorOptions updates. Do not reconstruct all defaults to change one option.requestFocus, releaseNativeFocus, and onFocusChanged. DOM focus and native keyboard readiness are different signals.MonacoRouteObserver plus MonacoFocusGuard for route overlays, MonacoOverlayBoundary or MonacoScaffold for static overlays, and runWithInteractionDisabled for transient imperative overlays.runJavaScript only when the public surface cannot express the requirement, and document its CSP and version assumptions.markSaved only after persistence succeeds, and keep old data recoverable while changing a stored format.MonacoException and any storage error separately. Do not replace failed reads with empty content or mark a failed write as saved.dart analyze with scope appropriate to the app.onFocusChanged.Report the ownership model, lifecycle order, platforms tested, and any untested platform-specific behavior.
npx claudepluginhub omar-hanafy/flutter_monaco --plugin flutter-monacoMigrates Flutter applications using flutter_monaco from version 2.x to 3.x, handling API changes, persisted options, and platform-specific wrappers. Also supports 1.7.1 after prerequisite verification.
Provides Flutter 3.44.0 compatibility references and migration guidance for Flutter and Dart codebases, covering platform embedding, tooling, widgets, and breaking changes.
Provides expert guidance on Flutter development with Dart 3, state management, architecture, and multi-platform deployment.