import { FileDiffOptions } from "@pierre/precision-diffs" export function createDefaultOptions(style: FileDiffOptions["diffStyle"]) { return { theme: "OpenCode", themeType: "system", disableLineNumbers: false, overflow: "wrap", diffStyle: style ?? "unified", diffIndicators: "bars", disableBackground: false, expansionLineCount: 20, lineDiffType: style === "split" ? "word-alt" : "none", maxLineDiffLength: 1000, maxLineLengthForHighlighting: 1000, disableFileHeader: true, unsafeCSS: ` [data-pjs-header], [data-pjs] { [data-separator-wrapper] { margin: 0 !important; border-radius: 0 !important; } [data-expand-button] { width: 6.5ch !important; height: 24px !important; justify-content: end !important; padding-left: 3ch !important; padding-inline: 1ch !important; } [data-separator-multi-button] { grid-template-rows: 10px 10px !important; [data-expand-button] { height: 12px !important; } } [data-separator-content] { height: 24px !important; } }`, // hunkSeparators(hunkData: HunkData) { // const fragment = document.createDocumentFragment() // const numCol = document.createElement("div") // numCol.innerHTML = ` ` // numCol.dataset["slot"] = "diff-hunk-separator-line-number" // fragment.appendChild(numCol) // const contentCol = document.createElement("div") // contentCol.dataset["slot"] = "diff-hunk-separator-content" // const span = document.createElement("span") // span.dataset["slot"] = "diff-hunk-separator-content-span" // span.textContent = `${hunkData.lines} unmodified lines` // contentCol.appendChild(span) // fragment.appendChild(contentCol) // return fragment // }, } as const } export const styleVariables = { "--pjs-font-family": "var(--font-family-mono)", "--pjs-font-size": "var(--font-size-small)", "--pjs-line-height": "24px", "--pjs-tab-size": 2, "--pjs-font-features": "var(--font-family-mono--font-feature-settings)", "--pjs-header-font-family": "var(--font-family-sans)", "--pjs-gap-block": 0, "--pjs-min-number-column-width": "4ch", }