Skip to content

Commit 8a35357

Browse files
committed
refactor: streamline Dart file formatting by using the command line tool instead of the Dart API, removing unnecessary imports and improving CI compatibility
1 parent 6a56817 commit 8a35357

File tree

4 files changed

+36
-33
lines changed

4 files changed

+36
-33
lines changed

maplibre_gl/lib/src/layer_properties.dart

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1913,16 +1913,12 @@ class FillExtrusionLayerProperties implements LayerProperties {
19131913
addIfPresent('fill-extrusion-color', fillExtrusionColor);
19141914
addIfPresent('fill-extrusion-translate', fillExtrusionTranslate);
19151915
addIfPresent(
1916-
'fill-extrusion-translate-anchor',
1917-
fillExtrusionTranslateAnchor,
1918-
);
1916+
'fill-extrusion-translate-anchor', fillExtrusionTranslateAnchor);
19191917
addIfPresent('fill-extrusion-pattern', fillExtrusionPattern);
19201918
addIfPresent('fill-extrusion-height', fillExtrusionHeight);
19211919
addIfPresent('fill-extrusion-base', fillExtrusionBase);
19221920
addIfPresent(
1923-
'fill-extrusion-vertical-gradient',
1924-
fillExtrusionVerticalGradient,
1925-
);
1921+
'fill-extrusion-vertical-gradient', fillExtrusionVerticalGradient);
19261922
addIfPresent('visibility', visibility);
19271923
return json;
19281924
}
@@ -2241,9 +2237,7 @@ class HillshadeLayerProperties implements LayerProperties {
22412237
}
22422238

22432239
addIfPresent(
2244-
'hillshade-illumination-direction',
2245-
hillshadeIlluminationDirection,
2246-
);
2240+
'hillshade-illumination-direction', hillshadeIlluminationDirection);
22472241
addIfPresent('hillshade-illumination-anchor', hillshadeIlluminationAnchor);
22482242
addIfPresent('hillshade-exaggeration', hillshadeExaggeration);
22492243
addIfPresent('hillshade-shadow-color', hillshadeShadowColor);

maplibre_gl_platform_interface/lib/src/source_properties.dart

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -607,9 +607,15 @@ class VideoSourceProperties implements SourceProperties {
607607
/// Type: array
608608
final List<List>? coordinates;
609609

610-
const VideoSourceProperties({this.urls, this.coordinates});
610+
const VideoSourceProperties({
611+
this.urls,
612+
this.coordinates,
613+
});
611614

612-
VideoSourceProperties copyWith(List<String>? urls, List<List>? coordinates) {
615+
VideoSourceProperties copyWith(
616+
List<String>? urls,
617+
List<List>? coordinates,
618+
) {
613619
return VideoSourceProperties(
614620
urls: urls ?? this.urls,
615621
coordinates: coordinates ?? this.coordinates,
@@ -651,9 +657,15 @@ class ImageSourceProperties implements SourceProperties {
651657
/// Type: array
652658
final List<List>? coordinates;
653659

654-
const ImageSourceProperties({this.url, this.coordinates});
660+
const ImageSourceProperties({
661+
this.url,
662+
this.coordinates,
663+
});
655664

656-
ImageSourceProperties copyWith(String? url, List<List>? coordinates) {
665+
ImageSourceProperties copyWith(
666+
String? url,
667+
List<List>? coordinates,
668+
) {
657669
return ImageSourceProperties(
658670
url: url ?? this.url,
659671
coordinates: coordinates ?? this.coordinates,

scripts/lib/generate.dart

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import 'dart:convert';
2323

2424
import 'package:mustache_template/mustache_template.dart';
2525
import 'package:recase/recase.dart';
26-
import 'package:dart_style/dart_style.dart';
27-
import 'package:pub_semver/pub_semver.dart';
2826

2927
import 'conversions.dart';
3028

@@ -129,28 +127,29 @@ Future<void> render(
129127
final template = Template(templateFile);
130128
final outputFile = File('$outputPath/$filename');
131129

132-
var rendered = template.renderString(renderContext);
130+
final rendered = template.renderString(renderContext);
133131

134-
// Format Dart files so that subsequent `dart format --set-exit-if-changed` doesn't fail (in CI).
132+
await outputFile.writeAsString(rendered);
133+
134+
// For Dart targets, run the official formatter to ensure perfect parity
135+
// with `dart format` (used by melos format-all in CI). Doing this instead
136+
// of using the dart_style API avoids subtle version / option drift.
135137
if (filename.endsWith('.dart')) {
136138
try {
137-
// Determine language version from current Dart SDK (major.minor)
138-
final sdkVersion = Platform.version.split(' ').first; // e.g. 3.5.2
139-
final versionParts = sdkVersion.split('.');
140-
final languageVersion =
141-
'${versionParts.elementAt(0)}.${versionParts.elementAt(1)}';
142-
143-
// Pass the version to the formatter so it can format accordingly
144-
final versionObj = Version.parse('$languageVersion.0');
145-
final formatter = DartFormatter(languageVersion: versionObj);
146-
rendered = formatter.format(rendered);
139+
final result = await Process.run(
140+
'dart',
141+
['format', outputFile.path],
142+
runInShell: true,
143+
);
144+
if (result.exitCode != 0) {
145+
stderr.writeln(
146+
'Warning: dart format failed for ${outputFile.path}: ${result.stderr}',
147+
);
148+
}
147149
} catch (e) {
148-
// If formatting fails, keep the unformatted content but log a warning.
149-
stderr.writeln('Warning: dart_style failed for $filename: $e');
150+
stderr.writeln('Warning: spawning dart format failed for $filename: $e');
150151
}
151152
}
152-
153-
await outputFile.writeAsString(rendered);
154153
}
155154

156155
/// Build the (paint/layout) style properties list for a given style.json key.

scripts/pubspec.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ environment:
99
sdk: ">=3.5.0 <4.0.0"
1010

1111
dependencies:
12-
dart_style: ^3.1.2
1312
mustache_template: ^2.0.1
14-
pub_semver: ^2.2.0
1513
recase: ^4.1.0
1614

1715
dev_dependencies:

0 commit comments

Comments
 (0)