1package common
2
3import (
4 "github.com/alecthomas/chroma/v2"
5 "github.com/charmbracelet/crush/internal/tui/exp/diffview"
6 "github.com/charmbracelet/crush/internal/ui/styles"
7)
8
9// DiffFormatter returns a diff formatter with the given styles that can be
10// used to format diff outputs.
11func DiffFormatter(s *styles.Styles) *diffview.DiffView {
12 formatDiff := diffview.New()
13 style := chroma.MustNewStyle("crush", s.ChromaTheme())
14 diff := formatDiff.ChromaStyle(style).Style(s.Diff).TabWidth(4)
15 return diff
16}