// import 'package:flutter/material.dart'; // import 'package:git_touch/models/code.dart'; // import 'package:git_touch/models/theme.dart'; // import 'package:provider/provider.dart'; // class DiffLine { // String? type; // int lineNumber; // String content; // DiffLine({ // required this.type, // required this.lineNumber, // required this.content, // }); // } // class DiffChunk { // String heading; // List lines; // DiffChunk({required this.heading, required this.lines}); // } // class DiffView extends StatelessWidget { // final String source; // DiffView(this.source); // @override // Widget build(BuildContext context) { // final code = Provider.of(context); // final theme = Provider.of(context); // final lines = source.split('\n'); // final chunks = []; // var offset = 0; // for (final line in lines) { // if (line.startsWith('@@')) { // chunks.add(DiffChunk(heading: line, lines: [])); // offset = int.parse(line.substring(4).split(',')[0]); // } else { // chunks.last.lines.add(DiffLine( // type: line.isEmpty ? null : line[0], // lineNumber: offset, // content: line, // )); // offset++; // } // } // return DefaultTextStyle( // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // for (var c in chunks) // Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text( // c.heading, // style: TextStyle( // color: theme.palette.tertiaryText, // backgroundColor: Color(0xfffafafa), // ), // ), // for (var l in c.lines) // Text( // l.content, // style: TextStyle( // backgroundColor: l.type == '-' // ? Color(0x00fbe9eb) // : l.type == '+' // ? Color(0xffecfdf0) // : null, // ), // ), // ], // ), // ], // ), // style: TextStyle( // fontFamily: code.fontFamilyUsed, // fontSize: 14, // color: theme.palette.text, // ), // ); // } // }