diff --git a/types/diff_renderer.go b/types/diff_renderer.go new file mode 100644 index 00000000..441c1979 --- /dev/null +++ b/types/diff_renderer.go @@ -0,0 +1,31 @@ +package types + +import "tangled.org/core/appview/filetree" + +type DiffRenderer interface { + // list of file affected by these diffs + ChangedFiles() []DiffFileRenderer + + // filetree + FileTree() *filetree.FileTreeNode + + Stats() DiffStat +} + +type DiffFileRenderer interface { + // html ID for each file in the diff + Id() string + + // produce a splitdiff + Split() SplitDiff + + // stats for this single file + Stats() DiffFileStat + + // old and new name of file + Names() DiffFileName + + // whether this diff can be displayed, + // returns a reason if not, and the empty string if it can + CanRender() string +}