File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -23,6 +23,34 @@ type Line = {
2323
2424const hunkHeaderRegexp = / @ @ - ( \d + ) , ? ( \d * ) \+ ( \d + ) , ? ( \d * ) @ @ /
2525
26+ export function toString ( diff : Diff ) : string {
27+ if ( diff . hunks . length === 0 ) {
28+ return "" ;
29+ }
30+ let res : string
31+ res = '--- ' + diff . beforeFileName + '\n'
32+ res += '+++ ' + diff . afterFileName + '\n'
33+ diff . hunks . forEach ( ( hunk : Hunk ) => {
34+ res += '@@ -' + hunk . header . beforeStartLine + ',' + hunk . header . beforeLines + ' +' + hunk . header . afterStartLine + ',' + hunk . header . afterLines + ' @@\n'
35+ hunk . lines . forEach ( ( line : Line ) => {
36+ switch ( line . mark ) {
37+ case 'add' :
38+ res += '+' ;
39+ break ;
40+ case 'delete' :
41+ res += '-' ;
42+ break ;
43+ case 'nomodified' :
44+ res += ' ' ;
45+ break ;
46+ }
47+ res += line . text + '\n' ;
48+ } )
49+ } )
50+
51+ return res ;
52+ }
53+
2654export function parse ( text : string ) : Diff [ ] {
2755 const diffs : Diff [ ] = [ ] ;
2856 let currentDiffIndex = 0 ;
You can’t perform that action at this time.
0 commit comments