blob: 60fd0c58754261487b5c761e4319446677f7f487 [file] [log] [blame]
import 'dart:convert';
import 'dart:io';
class CppFormatter {
Future<String> format(String code) async {
var process = await Process.start('clang-format', []);
process.stdin.write(code);
await process.stdin.close();
return utf8.decodeStream(process.stdout);
}
Future<String> formatAndGuard(String name, String code) async {
String guardName = name
.replaceAllMapped(
RegExp('(.+?)([A-Z])'), (Match m) => '${m[1]}_${m[2]}')
.toUpperCase();
return format('''#ifndef _RIVE_${guardName}_HPP_
#define _RIVE_${guardName}_HPP_
$code
#endif''');
}
}