Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: README.md

Issue 2043913005: Change how to set the Dart name of a field (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: better error checking, clean up pubspec Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 Protoc compiler Dart plugin 1 Protoc compiler Dart plugin
2 =========================== 2 ===========================
3 3
4 This application provides a plugin for protoc compiler which 4 This application provides a plugin for protoc compiler which
5 generates pure Dart library to deal with protobufs. 5 generates pure Dart library to deal with protobufs.
6 6
7 Please, do not forget that generated libraries depend on runtime 7 Please, do not forget that generated libraries depend on runtime
8 support library which can be found [here](https://github.com/dart-lang/dart-prot obuf). 8 support library which can be found [here](https://github.com/dart-lang/dart-prot obuf).
9 9
10 How to build and use 10 How to build and use
(...skipping 19 matching lines...) Expand all
30 ### Options to control the generated Dart code 30 ### Options to control the generated Dart code
31 31
32 The protocol buffer compiler accepts options for each plugin. For the 32 The protocol buffer compiler accepts options for each plugin. For the
33 Dart plugin, these options are passed together with the `--dart_out` 33 Dart plugin, these options are passed together with the `--dart_out`
34 option. The individial options are separated using comma, and the 34 option. The individial options are separated using comma, and the
35 final output directive is separated from the options using colon. Pass 35 final output directive is separated from the options using colon. Pass
36 options `<option 1>` and `<option 2>` like this: 36 options `<option 1>` and `<option 2>` like this:
37 37
38 --dart_out="<option 1>,<option 2>:." 38 --dart_out="<option 1>,<option 2>:."
39 39
40 #### Option for setting the name of field accessors
41
42 The following message definition has the field name `has_field`.
43
44 message MyMessage {
45 optional string has_field = 1;
46 }
47
48 This poses the problem, that the Dart class will have a getter and a
49 setter called `hasField`. This conflicts with the method `hasField`
50 which is already defined on the superclass `GeneratedMessage`.
51
52 To work around this problem the option `field_name` can be
53 used. Option `field_name` takes two values separated by the vertical
54 bar. The first value is the full name of the field and the second
55 value is the name of the field in the generated Dart code. Passing the
56 following option:
57
58 --dart_out="field_name=MyMessage.has_field|HasFld:."
59
60 Will generate the following message field accessors:
61
62 String get hasFld => getField(1);
63 void set hasFld(String v) { setField(1, v); }
64 bool hasHasFld() => hasField(1);
65 void clearHasFld() => clearField(1);
66
67 Using protocol buffer libraries to build new libraries 40 Using protocol buffer libraries to build new libraries
68 ------------------------------------------------------ 41 ------------------------------------------------------
69 42
70 The protocol buffer compiler produces one library for each `.proto` file 43 The protocol buffer compiler produces one library for each `.proto` file
71 it compiles. In some cases this is not exactly what is needed, e.g one 44 it compiles. In some cases this is not exactly what is needed, e.g one
72 would like to create new libraries which exposes the objects in these 45 would like to create new libraries which exposes the objects in these
73 libraries or create new librares combining object definitions from 46 libraries or create new librares combining object definitions from
74 several `.proto` libraries into one. 47 several `.proto` libraries into one.
75 48
76 The best way to aproach this is to create the new libraries needed and 49 The best way to aproach this is to create the new libraries needed and
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 $ protoc --plugin=protoc-gen-dart=./plugin --dart_out=. test.proto 109 $ protoc --plugin=protoc-gen-dart=./plugin --dart_out=. test.proto
137 110
138 Useful references 111 Useful references
139 ----------------- 112 -----------------
140 113
141 * [Main Dart site](http://www.dartlang.org) 114 * [Main Dart site](http://www.dartlang.org)
142 * [Main protobuf site](https://code.google.com/p/protobuf) 115 * [Main protobuf site](https://code.google.com/p/protobuf)
143 * [Protobuf runtime support project](https://github.com/dart-lang/dart-protobuf) 116 * [Protobuf runtime support project](https://github.com/dart-lang/dart-protobuf)
144 * [DartEditor download](http://www.dartlang.org) 117 * [DartEditor download](http://www.dartlang.org)
145 * [Pub documentation](http://pub.dartlang.org/doc) 118 * [Pub documentation](http://pub.dartlang.org/doc)
OLDNEW
« no previous file with comments | « Makefile ('k') | lib/extension_generator.dart » ('j') | lib/names.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698