MCPcopy
hub / github.com/rgburke/grv / processDiff

Method processDiff

cmd/grv/fancy_diff_view.go:50–93  ·  view source on GitHub ↗
(lines []*diffLineData)

Source from the content-addressed store, hash-verified

48type fancyDiffProcessor struct{}
49
50func (fancyDiffProcessor *fancyDiffProcessor) processDiff(lines []*diffLineData) (processedLines []*diffLineData, err error) {
51 var generatedLines []*diffLineData
52 var currentFile string
53
54 for lineIndex, line := range lines {
55 switch line.lineType {
56 case dltGitDiffHeaderDiff:
57 if generatedLines, currentFile, err = fancyDiffProcessor.processDiffHeader(lines, lineIndex); err != nil {
58 return
59 }
60
61 processedLines = append(processedLines, generatedLines...)
62 case dltGitDiffHeaderIndex,
63 dltGitDiffHeaderNewFile,
64 dltGitDiffHeaderOldFile,
65 dltGitDiffHeaderNewMode,
66 dltGitDiffHeaderOldMode,
67 dltGitDiffHeaderNewFileMode,
68 dltGitDiffHeaderDeletedFileMode,
69 dltGitDiffHeaderSimilarityIndex,
70 dltGitDiffHeaderRenameFrom,
71 dltGitDiffHeaderRenameTo,
72 dltGitDiffHeaderBinaryFile:
73 case dltHunkStart:
74 if generatedLines, err = fancyDiffProcessor.processHunkStart(lines, lineIndex, currentFile); err != nil {
75 return
76 }
77
78 processedLines = append(processedLines, generatedLines...)
79 case dltLineAdded:
80 processedLines = append(processedLines, newDiffLineData(trimFirstCharacter(line.line), line.lineType, CmpDiffviewFancyDifflineLineAdded))
81 case dltLineRemoved:
82 processedLines = append(processedLines, newDiffLineData(trimFirstCharacter(line.line), line.lineType, CmpDiffviewFancyDifflineLineRemoved))
83 case dltNormal:
84 processedLines = append(processedLines, newDiffLineData(trimFirstCharacter(line.line), line.lineType, line.sections[0].themeComponentID))
85 default:
86 processedLines = append(processedLines, line)
87 }
88 }
89
90 fancyDiffProcessor.highlightChanges(processedLines)
91
92 return
93}
94
95func (fancyDiffProcessor *fancyDiffProcessor) processDiffHeader(lines []*diffLineData, diffHeaderIndex int) (generatedLines []*diffLineData, currentFile string, err error) {
96 var oldFile, newFile, oldFileMode, newFileMode string

Callers

nothing calls this directly

Calls 5

processDiffHeaderMethod · 0.95
processHunkStartMethod · 0.95
highlightChangesMethod · 0.95
newDiffLineDataFunction · 0.85
trimFirstCharacterFunction · 0.85

Tested by

no test coverage detected