厳密な入力
severity、code、messageと任意のdetail・source位置を表示前に正規化します。
TurboWarp拡張機能 · v0.1.1
1件の構造化診断を検証してXMLエスケープ済みSVGへ変換し、TurboWarpステージに追従する非操作型overlayとして表示します。
severity、code、messageと任意のdetail・source位置を表示前に正規化します。
外部文字列をXMLエスケープし、要素名、属性、色、URLとしては使用しません。
renderer canvasのサイズ変更を追跡し、pointer-events: noneで入力を妨げません。
pnpm add --save-exact @kubohiroya/turbowarp-diagnostic-overlay@0.1.1
単独機能拡張は、次の固定URLをサンドボックスなしで読み込みます。
https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-diagnostic-overlay@0.1.1/dist/diagnostic-overlay.js
packageをimportしただけではTurboWarpへ登録しません。composition rootがextensionとcontrollerを明示的に作成し、1度だけ登録します。
import {createDiagnosticOverlayComposition} from
'@kubohiroya/turbowarp-diagnostic-overlay/composition';
const {extension, controller} = createDiagnosticOverlayComposition(Scratch);
Scratch.extensions.register(extension);
controller.show({severity: 'error', code: 'APP001', message: '入力を確認してください。'});
純粋rendererは/svg-rendererから利用できます。詳細は0.1仕様を参照してください。英語版もあります。
新しい診断は現在の表示を置換します。プロジェクト読込時に消去し、runtime dispose時にDOM observerとlistenerを解放します。project stop後は原因を読めるよう表示を残します。
診断の発見、Scratch threadやVMを止める判断、永続化は利用側が行います。このpackageはアプリ固有DSLを知りません。