Fixed: [Issue 159] 	Content assist for default value is broken.
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 871298d..e42a177 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
@@ -22,6 +22,7 @@
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.xtext.*;
@@ -165,6 +166,11 @@
     proposeAndAccept(EQUAL_PROTO2_IN_QUOTES, context, acceptor);
   }
 
+  private void proposeAndAccept(CompoundElement proposalText, ContentAssistContext context,
+      ICompletionProposalAcceptor acceptor) {
+    proposeAndAccept(proposalText.toString(), context, acceptor);
+  }
+
   private boolean isKeyword(EObject object, CommonKeyword keyword) {
     return object instanceof Keyword && keyword.hasValue(((Keyword) object).getValue());
   }
@@ -212,11 +218,6 @@
     return true;
   }
 
-  private void proposeAndAccept(CompoundElement proposalText, ContentAssistContext context,
-      ICompletionProposalAcceptor acceptor) {
-    proposeAndAccept(proposalText.toString(), context, acceptor);
-  }
-
   private void createAndAccept(CompoundElement display, int cursorPosition, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
     ICompletionProposal proposal = createCompletionProposal(display, context);
@@ -333,20 +334,43 @@
   private void proposeOption(Property option, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     String displayString = option.getName();
     String proposalText = displayString + space() + EQUAL + space();
-    boolean isStringOption = properties.isString(option);
-    if (isStringOption) {
-      proposalText = proposalText + EMPTY_STRING;
-    } else if (properties.isBool(option)) {
-      proposalText = proposalText + TRUE;
-    }
-    ICompletionProposal proposal = createCompletionProposal(proposalText, displayString, imageForOption(), context);
-    if (isStringOption && proposal instanceof ConfigurableCompletionProposal) {
+    proposePropertyValue(option, proposalText, displayString, imageForOption(), context, acceptor);
+  }
+  
+  @Override public void completeDefaultValueFieldOption_Value(EObject model, Assignment assignment, 
+      ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+    if (!(model instanceof Property)) return;
+    Property p = (Property) model;
+    proposePropertyValue(p, "", null, defaultImage(), context, acceptor);
+  }
+  
+  private void proposePropertyValue(Property p, String proposalText, String displayString, Image image, 
+      ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+    Object value = defaultValueOf(p);
+    if (value == null) return;
+    String text = proposalText + value;
+    ICompletionProposal proposal = createCompletionProposal(text, displayString, image, context);
+    if (value == EMPTY_STRING && proposal instanceof ConfigurableCompletionProposal) {
       // set cursor between the proposal's quotes
       ConfigurableCompletionProposal configurable = (ConfigurableCompletionProposal) proposal;
-      configurable.setCursorPosition(proposalText.length() - 1);
+      configurable.setCursorPosition(text.length() - 1);
     }
     acceptor.accept(proposal);
   }
+  
+  private Object defaultValueOf(Property p) {
+    if (properties.isBool(p)) return TRUE;
+    if (properties.isString(p)) return EMPTY_STRING;
+    return null;
+  }
+  
+  @Override public ICompletionProposal createCompletionProposal(String proposal, String displayString, Image image,
+      ContentAssistContext contentAssistContext) {
+    StyledString styled = null;
+    if (displayString != null) styled = new StyledString(displayString);
+    return createCompletionProposal(proposal, styled, image, getPriorityHelper().getDefaultPriority(), 
+        contentAssistContext.getPrefix(), contentAssistContext);
+  }
 
   @Override public void completeNativeFieldOption_Value(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {