{{ define "repo/pulls/fragments/diff" }}
{{ template "repo/fragments/fileTree" .FileTree }}
{{ template "repo/fragments/diffStatPill" .Stats }}
{{ template "repo/pulls/fragments/diffSettings" (dict "DiffUrl" .DiffUrl "Unified" .Unified) }}
{{ if .ErrorMsg }}
{{ .ErrorMsg }}
{{ else if .Files }} {{ range .Files }}
{{ i "chevron-right" "size-4" }} {{ template "repo/fragments/diffStatPill" .Stats }} {{ .Path }}
{{ if .Note }}
{{ .Note }}
{{ else if $.Unified }} {{ template "diffUnified" . }} {{ else }} {{ template "diffSplit" . }} {{ end }}
{{ end }} {{ else }}
No change between two revisions.
{{ end }}
{{ template "activeFileHighlightScript" }} {{ template "fragments/line-quote-button" }} {{ template "reviewStateScript" }} {{ end }} {{ define "diffUnified" }}
{{ $name := .Id }} {{- range .Hunks -}} {{- if not .AtFileStart -}}
···
{{- end -}} {{- range $i, $line := .Lines -}} {{- $lineId := "" -}} {{- if ge .New 0 -}} {{- $lineId = printf "%s-N%d" $name .New -}} {{- else -}} {{- $lineId = printf "%s-O%d" $name .Old -}} {{- end -}} {{- $cls := "" -}} {{- if eq .Op "+" -}} {{- $cls = "add" -}} {{- else if eq .Op "-" -}} {{- $cls = "del" -}} {{- end -}}
{{ if gt .Old 0 }}{{ .Old }}{{ end }} {{ if gt .New 0 }}{{ .New }}{{ end }} {{ .Op }}
{{ .Content }}
{{- end -}} {{- end -}}
{{ end }} {{ define "diffSplit" }}
{{ $name := .Id }} {{- range .Hunks -}} {{- if not .AtFileStart -}}
···
{{- end -}} {{- range $i, $row := .Rows -}}
{{- template "diffSplitSide" (list $name "O" $row.Left) -}} {{- template "diffSplitSide" (list $name "N" $row.Right) -}}
{{- end -}} {{- end -}}
{{ end }} {{ define "diffSplitSide" }} {{- $name := index . 0 -}} {{- $side := index . 1 -}} {{- $line := index . 2 -}} {{- $lineId := printf "%s-%s%d" $name $side $line.Num -}} {{- $cls := "" -}} {{- $mark := "" -}} {{- if eq $line.Kind "del" }}{{ $cls = "del" }}{{ $mark = "-" -}} {{- else if eq $line.Kind "add" }}{{ $cls = "add" }}{{ $mark = "+" -}} {{- else if eq $line.Kind "empty" }}{{ $cls = "empty" -}} {{- end -}}
{{ if gt $line.Num 0 -}} {{ $line.Num }} {{- else -}} {{- end }} {{ $mark }}
{{ $line.Content }}
{{ end }} {{ define "activeFileHighlightScript" }} {{ end }} {{ define "reviewStateScript" }} {{ end }}