Extension Points
이 문서는 plugin이 구현할 수 있는 extension point를 설명합니다.
sourceEvidenceProvider
선택된 preview element에 대한 source candidate를 반환합니다.
Required permission: project:read
export default {
async provideSourceEvidence(context) {
return [];
},
};
previewInjector
preview frame에 적용할 JavaScript 또는 CSS를 반환합니다.
Required permission: preview:inject
export default {
getPreviewInjection(context) {
return {
css: "[data-debug] { outline: 1px solid red; }",
};
},
};
captureFilter
screenshot capture 전에 숨길 selector나 적용할 CSS를 반환합니다.
Required permission: capture:filter
export default {
filterCapture(context) {
return {
hideSelectors: [".dev-toolbar"],
};
},
};
commandProvider
앱 command/menu surface에 command를 추가합니다.
Required permission: command:contribute
export default {
getCommands(context) {
return [
{
id: "project-summary",
title: "Project summary",
category: "Plugin",
run() {
return { level: "info", message: "Project inspected." };
},
},
];
},
};
diffAnalyzer
현재 Snapshot/Diff 결과를 읽고 finding을 반환합니다.
Required permission: diff:read
export default {
analyzeDiff(context) {
if (!context.summary.changed_files) return [];
return [
{
severity: "info",
title: "Diff inspected",
message: `${context.summary.changed_files} file(s) changed.`,
},
];
},
};
workspacePanel
plugin settings나 workspace panel에 표시할 isolated HTML을 반환합니다.
Required permission: panel:render
export default {
getPanelHtml(context) {
return "<strong>Plugin panel</strong>";
},
};