{displayPath}
{scopeLabel}
{t("Extern öffnen", "Open externally")}
·
{diffName}
{#if isLoading}
{t("Änderungen werden geladen …", "Loading changes …")}
{:else if error}
{error}
{:else if !patch.trim()}
{t("Keine Änderungen für diese Datei vorhanden.", "No changes available for this file.")}
{:else if parsed.binary || parsed.hunks.length === 0}
{t("Diese Änderung lässt sich nicht in Textzeilen aufteilen.", "This change cannot be split into text lines.")}
{:else}
{t("Geänderte Zeilen auswählen", "Select changed lines")}
{t("Shift-Klick für einen Bereich", "Shift-click to select a range")}
+{addedCount}
−{deletedCount}
{parsed.hunks.length} {t(parsed.hunks.length === 1 ? "Abschnitt" : "Abschnitte", parsed.hunks.length === 1 ? "hunk" : "hunks")}
scrollToHunk(parsed.hunks[activeHunk - 1].id)} disabled={activeHunk === 0} aria-label={t("Vorheriger Abschnitt", "Previous hunk")} title={t("Vorheriger Abschnitt", "Previous hunk")}>
scrollToHunk(parsed.hunks[activeHunk + 1].id)} disabled={activeHunk >= parsed.hunks.length - 1} aria-label={t("Nächster Abschnitt", "Next hunk")} title={t("Nächster Abschnitt", "Next hunk")}>
{#each parsed.hunks as hunk, index (hunk.id)}
toggleHunkSelection(hunk)} disabled={isBusy || isLoading} aria-label={`${t("Abschnitt auswählen", "Select hunk")} ${index + 1}`} title={t("Alle geänderten Zeilen dieses Abschnitts auswählen", "Select all changed lines in this hunk")}> {#if hunkSelectionState(hunk) === "all"}
{:else if hunkSelectionState(hunk) === "some"}
{/if}
{t("Abschnitt", "Hunk")} {index + 1}
{hunk.header}
applyHunkAction(staged ? "discard-staged" : "discard-unstaged", hunk)} disabled={isBusy}>
{t("Verwerfen", "Discard")}
applyHunkAction(staged ? "unstage" : "stage", hunk)} disabled={isBusy}>{#if staged}
{:else}
{/if}{staged ? t("Abschnitt unstagen", "Unstage hunk") : t("Abschnitt stagen", "Stage hunk")}
{#each hunk.lines as line (line.id)}
{#if line.kind === "add" || line.kind === "delete"}
toggleLine(event, line)} disabled={isBusy || isLoading} aria-label={`${line.kind === "add" ? t("Hinzugefügte Zeile", "Added line") : t("Entfernte Zeile", "Deleted line")} ${line.newLine ?? line.oldLine ?? ""}`} title={t("Zeile auswählen (Shift-Klick für Bereich)", "Select line (Shift-click for range)")}> {#if selectedLineIds.has(line.id)}
{/if}
{:else}
{/if}
{line.oldLine ?? ""}
{line.newLine ?? ""}
{linePrefix(line)}
{lineBody(line)}
{/each}
{/each}
{#each parsed.hunks as hunk, index (hunk.id)}
scrollToHunk(hunk.id)} title={`${t("Zu Abschnitt", "Jump to hunk")} ${index + 1}`} aria-label={`${t("Zu Abschnitt", "Jump to hunk")} ${index + 1}`}>
{/each}
{/if}
{#if hasTextPatch} {/if}