Skip to content

Commit c6c4314

Browse files
authored
[ffigen] Format using dart format (#2362)
1 parent 92e243f commit c6c4314

File tree

5 files changed

+25
-11
lines changed

5 files changed

+25
-11
lines changed

pkgs/ffigen/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
## 19.1.0-wip
22

3+
- Format using `dart format` so that the formatter uses the target package's
4+
Dart version and formatting options.
5+
- Add `_` to the list of Dart keywords, since it has special meaning in newer
6+
Dart versions.
7+
38
## 19.0.0
49

510
- Use package:objective_c 8.0.0.

pkgs/ffigen/lib/src/code_generator/dart_keywords.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
///
77
/// Source: https://dart.dev/guides/language/language-tour#keywords.
88
const keywords = {
9+
'_',
910
'abstract',
1011
'as',
1112
'assert',

pkgs/ffigen/lib/src/code_generator/library.dart

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'dart:io';
66

7-
import 'package:dart_style/dart_style.dart';
7+
import 'package:logging/logging.dart';
88
import 'package:yaml_edit/yaml_edit.dart';
99

1010
import '../code_generator.dart';
@@ -13,6 +13,8 @@ import '../config_provider/config_types.dart';
1313

1414
import 'writer.dart';
1515

16+
final _logger = Logger('ffigen.library');
17+
1618
/// Container for all Bindings.
1719
class Library {
1820
/// List of bindings in this library.
@@ -92,14 +94,19 @@ class Library {
9294
/// generated file.
9395
void generateFile(File file, {bool format = true}) {
9496
if (!file.existsSync()) file.createSync(recursive: true);
95-
var bindings = generate();
97+
file.writeAsStringSync(generate());
9698
if (format) {
97-
final formatter = DartFormatter(
98-
languageVersion: DartFormatter.latestShortStyleLanguageVersion,
99-
);
100-
bindings = formatter.format(bindings);
99+
final result = Process.runSync(
100+
Platform.resolvedExecutable,
101+
[
102+
'format',
103+
file.absolute.path,
104+
],
105+
workingDirectory: file.parent.absolute.path);
106+
if (result.exitCode != 0) {
107+
_logger.severe('Formatting failed\n${result.stdout}\n${result.stderr}');
108+
}
101109
}
102-
file.writeAsStringSync(bindings);
103110
}
104111

105112
/// Generates [file] with the Objective C code needed for the bindings, if

pkgs/ffigen/test/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.temp

pkgs/ffigen/test/test_utils.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'package:ffigen/src/code_generator.dart';
88
import 'package:ffigen/src/config_provider/config.dart';
99
import 'package:ffigen/src/config_provider/utils.dart';
1010
import 'package:ffigen/src/config_provider/yaml_config.dart';
11-
import 'package:ffigen/src/strings.dart' as strings;
1211
import 'package:logging/logging.dart';
1312
import 'package:package_config/package_config_types.dart';
1413
import 'package:path/path.dart' as path;
@@ -90,6 +89,9 @@ String absPath(String p) => path.join(packagePathForTests, p);
9089
String configPath(String directory, String file) =>
9190
absPath(configPathForTest(directory, file));
9291

92+
/// Returns the temp directory used to store bindings generated by tests.
93+
String tmpDir = path.join(packagePathForTests, 'test', '.temp');
94+
9395
/// Generates actual file using library and tests using [expect] with expected.
9496
///
9597
/// This will not delete the actual debug file incase [expect] throws an error.
@@ -102,9 +104,7 @@ void _matchFileWithExpected({
102104
String Function(String)? codeNormalizer,
103105
}) {
104106
final expectedPath = path.joinAll([packagePathForTests, ...pathToExpected]);
105-
final file = File(
106-
path.join(strings.tmpDir, pathForActual),
107-
);
107+
final file = File(path.join(tmpDir, pathForActual));
108108
fileWriter(library: library, file: file);
109109
try {
110110
final actual =

0 commit comments

Comments
 (0)