adds protoprint package, for generating proto source code from a descriptor #84
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This addresses #66. The implementation tries very hard to preserve all source comments. However, it turns out that protoc does not even bother putting all source comments into the file descriptor's
source_code_info
field. So I haven't been able to test some of the comment-formatting logic, which I guess is moot. (I have left it in place so, in the event I addsource_code_info
support to the protoparse package, this protoprint package could potentially preserve more comments than is possible with protoc.)This branch also makes json and text format of dynamic message always sort map keys prior to serialization (previously, it depended on unexported flag that was only set for tests). It now mirrors the golang/protobuf packages -- binary serialization does not sort map keys, but json and text formats do.