P!npoint

Plugins

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>";
  },
};