[Adaptation Layer] Added rive-tizen adaptation layer class.
[platform/core/uifw/rive-tizen.git] / submodule / dev / core_generator / lib / src / cpp_formatter.dart
1 import 'dart:convert';
2 import 'dart:io';
3
4 class CppFormatter {
5   Future<String> format(String code) async {
6     var process = await Process.start('clang-format', []);
7     process.stdin.write(code);
8     await process.stdin.close();
9     return utf8.decodeStream(process.stdout);
10   }
11
12   Future<String> formatAndGuard(String name, String code) async {
13     String guardName = name
14         .replaceAllMapped(
15             RegExp('(.+?)([A-Z])'), (Match m) => '${m[1]}_${m[2]}')
16         .toUpperCase();
17     return format('''#ifndef _RIVE_${guardName}_HPP_
18         #define _RIVE_${guardName}_HPP_
19         $code
20         #endif''');
21   }
22 }