writeBack method
Rewrites only the top-level version line, preserving all other formatting.
Implementation
Future<void> writeBack(ResolvedVersion version) async {
final content = await pubspec.readAsString();
final line = RegExp(r'^version\s*:\s*.*$', multiLine: true);
if (!line.hasMatch(content)) {
throw ArgumentError(
'pubspec.yaml does not contain a writable version line.');
}
await pubspec.writeAsString(
content.replaceFirst(line, 'version: ${version.name}+${version.code}'),
);
}