Allow repeated fields within option values. Change-Id: I2ba5c813e12b2f004bfcbe07a30605d5796b1442
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java index b575932..9bed2d8 100644 --- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java +++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/ProtobufProposalProvider.java
@@ -704,10 +704,11 @@ ContentAssistContext context, ICompletionProposalAcceptor acceptor) { } - @Override public void completeSimpleValueField_Value(EObject model, Assignment assignment, - ContentAssistContext context, ICompletionProposalAcceptor acceptor) { - if (model instanceof SimpleValueField) { - SimpleValueField field = (SimpleValueField) model; + @Override + public void complete_SimpleValueLink(EObject model, RuleCall ruleCall, ContentAssistContext context, + ICompletionProposalAcceptor acceptor) { + SimpleValueField field = extractElementFromContext(context, SimpleValueField.class); + if (field != null) { FieldName name = field.getName(); if (name != null) { IndexedElement target = name.getTarget();
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext index fe0b46f..7b82eb2 100644 --- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext +++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
@@ -219,20 +219,24 @@ // { foo: 1, bar: 2 } ComplexValueCurlyBracket: - ->'{' {ComplexValueCurlyBracket} (fields+=ValueField (',')?)* '}'; + '{' {ComplexValueCurlyBracket} (fields+=ValueField (',')?)* '}'; // < foo: 1, bar: 2 > ComplexValueAngleBracket: - ->'<' {ComplexValueAngleBracket} (fields+=ValueField (',')?)* '>'; + '<' {ComplexValueAngleBracket} (fields+=ValueField (',')?)* '>'; ValueField: - SimpleValueField | ComplexValueField; + ->SimpleValueField | ComplexValueField; SimpleValueField: - name=FieldName ':' value=SimpleValueLink ';'?; + name=FieldName ':' + (values+=SimpleValueLink | '[' values+=SimpleValueLink (',' values+=SimpleValueLink)* ','? ']') + ';'?; ComplexValueField: - name=FieldName ':'? values=ComplexValue ';'?; + name=FieldName ':'? + (values+=ComplexValue | '[' values+=ComplexValue (',' values+=ComplexValue)* ','? ']') + ';'?; FieldName: NormalFieldName | ExtensionFieldName;