diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index cdebafe869a7..5cb782703f4b 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.2.6 + +* Fixes bug with parsing documentation comments that start with '/'. + ## 4.2.5 * [dart] Fixes enum parameter handling in Dart test API class. diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart index 7c988f85b332..23641d39d81c 100644 --- a/packages/pigeon/lib/generator_tools.dart +++ b/packages/pigeon/lib/generator_tools.dart @@ -9,7 +9,7 @@ import 'dart:mirrors'; import 'ast.dart'; /// The current version of pigeon. This must match the version in pubspec.yaml. -const String pigeonVersion = '4.2.5'; +const String pigeonVersion = '4.2.6'; /// Read all the content from [stdin] to a String. String readStdin() { @@ -474,7 +474,10 @@ void addDocumentationComments( indent.writeln(commentSpec.openCommentToken); currentLineOpenToken = commentSpec.blockContinuationToken; } - for (final String line in allComments) { + for (String line in allComments) { + if (line.isNotEmpty && line[0] != ' ') { + line = ' $line'; + } indent.writeln( '$currentLineOpenToken$line', ); diff --git a/packages/pigeon/pigeons/message.dart b/packages/pigeon/pigeons/message.dart index 644031cdab68..65ef2ac0e3a8 100644 --- a/packages/pigeon/pigeons/message.dart +++ b/packages/pigeon/pigeons/message.dart @@ -20,6 +20,10 @@ import 'package:pigeon/pigeon.dart'; /// This comment is to test enum documentation comments. /// /// This comment also tests multiple line comments. +/// +/////////////////////////// +/// This comment also tests comments that start with '/' +/////////////////////////// enum MessageRequestState { pending, success, diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore index abf5cc115a98..082790e1ddd7 100644 --- a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore +++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/.gitignore @@ -2,4 +2,4 @@ # changes on generated files. This will need a way to avoid unnecessary churn, # such as a flag to suppress version stamp generation. *.java -!AlternateLanguageTestPlugin.kt +!AlternateLanguageTestPlugin.java diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index 7d5060fc0f96..639d3e153fbc 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -2,7 +2,7 @@ name: pigeon description: Code generator tool to make communication between Flutter and the host platform type-safe and easier. repository: https://github.com/flutter/packages/tree/main/packages/pigeon issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon -version: 4.2.5 # This must match the version in lib/generator_tools.dart +version: 4.2.6 # This must match the version in lib/generator_tools.dart environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/pigeon/test/cpp_generator_test.dart b/packages/pigeon/test/cpp_generator_test.dart index cdf3876df79d..d4816c8929b7 100644 --- a/packages/pigeon/test/cpp_generator_test.dart +++ b/packages/pigeon/test/cpp_generator_test.dart @@ -1062,6 +1062,9 @@ void main() { ]; int count = 0; + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1107,7 +1110,10 @@ void main() { enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1121,6 +1127,7 @@ void main() { for (final String comment in comments) { expect(code, contains('//$comment')); } + expect(code, contains('// ///')); }); test('doesnt create codecs if no custom datatypes', () { diff --git a/packages/pigeon/test/dart_generator_test.dart b/packages/pigeon/test/dart_generator_test.dart index 1c1631173242..da1875e4b806 100644 --- a/packages/pigeon/test/dart_generator_test.dart +++ b/packages/pigeon/test/dart_generator_test.dart @@ -1174,6 +1174,10 @@ name: foobar ' enum comment', ]; int count = 0; + + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1219,7 +1223,10 @@ name: foobar enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1233,6 +1240,7 @@ name: foobar for (final String comment in comments) { expect(code, contains('///$comment')); } + expect(code, contains('/// ///')); }); test('doesnt create codecs if no custom datatypes', () { diff --git a/packages/pigeon/test/java_generator_test.dart b/packages/pigeon/test/java_generator_test.dart index d3822c5ad65f..58cc618ab3a4 100644 --- a/packages/pigeon/test/java_generator_test.dart +++ b/packages/pigeon/test/java_generator_test.dart @@ -1139,6 +1139,9 @@ void main() { ]; int count = 0; + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1185,7 +1188,10 @@ void main() { enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1204,6 +1210,7 @@ void main() { .hasMatch(code), true); } + expect(code, isNot(contains('*//'))); }); test('doesnt create codecs if no custom datatypes', () { diff --git a/packages/pigeon/test/kotlin_generator_test.dart b/packages/pigeon/test/kotlin_generator_test.dart index 5bc0fedc3f40..9a347d7e36bc 100644 --- a/packages/pigeon/test/kotlin_generator_test.dart +++ b/packages/pigeon/test/kotlin_generator_test.dart @@ -1019,6 +1019,9 @@ void main() { ]; int count = 0; + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1065,7 +1068,10 @@ void main() { enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1084,6 +1090,7 @@ void main() { .hasMatch(code), true); } + expect(code, isNot(contains('*//'))); }); test('doesnt create codecs if no custom datatypes', () { diff --git a/packages/pigeon/test/objc_generator_test.dart b/packages/pigeon/test/objc_generator_test.dart index efd177cbd961..0a56629539a1 100644 --- a/packages/pigeon/test/objc_generator_test.dart +++ b/packages/pigeon/test/objc_generator_test.dart @@ -1751,6 +1751,9 @@ void main() { ]; int count = 0; + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1797,7 +1800,10 @@ void main() { enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1811,6 +1817,7 @@ void main() { for (final String comment in comments) { expect(code, contains('///$comment')); } + expect(code, contains('/// ///')); }); test('doesnt create codecs if no custom datatypes', () { diff --git a/packages/pigeon/test/swift_generator_test.dart b/packages/pigeon/test/swift_generator_test.dart index ab0af5b52bc7..c22ddbe85ade 100644 --- a/packages/pigeon/test/swift_generator_test.dart +++ b/packages/pigeon/test/swift_generator_test.dart @@ -958,6 +958,9 @@ void main() { ]; int count = 0; + final List unspacedComments = ['////////']; + int unspacedCount = 0; + final Root root = Root( apis: [ Api( @@ -1004,7 +1007,10 @@ void main() { enums: [ Enum( name: 'enum', - documentationComments: [comments[count++]], + documentationComments: [ + comments[count++], + unspacedComments[unspacedCount++] + ], members: [ 'one', 'two', @@ -1019,6 +1025,7 @@ void main() { for (final String comment in comments) { expect(code, contains('///$comment')); } + expect(code, contains('/// ///')); }); test('doesnt create codecs if no custom datatypes', () {