• Matan Lurey's avatar
    Always escape when writing pubspec.yaml's 'description' field. (#130096) · 03749051
    Matan Lurey authored
    Closes https://github.com/flutter/flutter/issues/80013.
    
    **Before**:
    
    ```
    $ flutter create test1 --description "a: b"
    Creating project test1...
    Error detected in pubspec.yaml:
    Error on line 2, column 15: Mapping values are not allowed here. Did you miss a colon earlier?
      ╷
    2 │ description: a: b
      │               ^
      ╵
    Please correct the pubspec.yaml file at /Users/matan/Developer/scratch/test1/pubspec.yaml
    ```
    
    **After**:
    
    ```
    $ flutter create test1 --description "a: b"
    Creating project test1...
    Resolving dependencies in test1... 
    Got dependencies in test1.
    Wrote 129 files.
    
    All done!
    You can find general documentation for Flutter at: https://docs.flutter.dev/
    Detailed API documentation is available at: https://api.flutter.dev/
    If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev
    
    In order to run your application, type:
    
      $ cd test1
      $ flutter run
    
    Your application code is in test1/lib/main.dart.
    ```
    
    ---
    
    It's worth noting that this _always_ escapes a non-empty project description, which means that descriptions that were not previously wrapped in `"`s' will be. I'm not sure how worth it is to do a _conditional_ escape (i.e. only escape if not escaping would cause a problem), but willing to change.
    
    Side-note: I had no idea where to list this test in the (very large) `create_test.dart`, so I did my best :)
    03749051
Name
Last commit
Last update
..
android Loading commit data...
base Loading commit data...
build_system Loading commit data...
commands Loading commit data...
custom_devices Loading commit data...
dart Loading commit data...
debug_adapters Loading commit data...
drive Loading commit data...
fuchsia Loading commit data...
intellij Loading commit data...
ios Loading commit data...
isolated Loading commit data...
linux Loading commit data...
localizations Loading commit data...
macos Loading commit data...
migrations Loading commit data...
proxied_devices Loading commit data...
reporting Loading commit data...
runner Loading commit data...
test Loading commit data...
tester Loading commit data...
vscode Loading commit data...
web Loading commit data...
windows Loading commit data...
application_package.dart Loading commit data...
artifacts.dart Loading commit data...
asset.dart Loading commit data...
build_info.dart Loading commit data...
bundle.dart Loading commit data...
bundle_builder.dart Loading commit data...
cache.dart Loading commit data...
cmake.dart Loading commit data...
cmake_project.dart Loading commit data...
compile.dart Loading commit data...
context_runner.dart Loading commit data...
convert.dart Loading commit data...
daemon.dart Loading commit data...
dart_pub_json_formatter.dart Loading commit data...
desktop_device.dart Loading commit data...
devfs.dart Loading commit data...
device.dart Loading commit data...
device_port_forwarder.dart Loading commit data...
devtools_launcher.dart Loading commit data...
doctor.dart Loading commit data...
doctor_validator.dart Loading commit data...
emulator.dart Loading commit data...
features.dart Loading commit data...
flutter_application_package.dart Loading commit data...
flutter_cache.dart Loading commit data...
flutter_device_manager.dart Loading commit data...
flutter_features.dart Loading commit data...
flutter_manifest.dart Loading commit data...
flutter_plugins.dart Loading commit data...
flutter_project_metadata.dart Loading commit data...
globals.dart Loading commit data...
html_utils.dart Loading commit data...
http_host_validator.dart Loading commit data...
license_collector.dart Loading commit data...
mdns_discovery.dart Loading commit data...
persistent_tool_state.dart Loading commit data...
platform_plugins.dart Loading commit data...
plugins.dart Loading commit data...
pre_run_validator.dart Loading commit data...
preview_device.dart Loading commit data...
project.dart Loading commit data...
project_validator.dart Loading commit data...
project_validator_result.dart Loading commit data...
protocol_discovery.dart Loading commit data...
proxy_validator.dart Loading commit data...
resident_devtools_handler.dart Loading commit data...
resident_runner.dart Loading commit data...
run_cold.dart Loading commit data...
run_hot.dart Loading commit data...
sksl_writer.dart Loading commit data...
template.dart Loading commit data...
tracing.dart Loading commit data...
version.dart Loading commit data...
vmservice.dart Loading commit data...
xcode_project.dart Loading commit data...