Fixed various formatting rules.
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/formatting/ProtobufFormatter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/formatting/ProtobufFormatter.java
index a40797c..2bb65fe 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/formatting/ProtobufFormatter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/formatting/ProtobufFormatter.java
@@ -1,10 +1,10 @@
 /*
  * Copyright (c) 2011 Google Inc.
- * 
+ *
  * All rights reserved. This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License v1.0 which
  * accompanies this distribution, and is available at
- * 
+ *
  * http://www.eclipse.org/legal/epl-v10.html
  */
 package com.google.eclipse.protobuf.formatting;
@@ -12,19 +12,21 @@
 import static com.google.eclipse.protobuf.grammar.CommonKeyword.*;
 import static com.google.eclipse.protobuf.util.CommonWords.space;
 
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
 import com.google.eclipse.protobuf.services.*;
 import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.EnumElements;
 import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.ExtendMessageElements;
+import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.GroupElements;
 import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.MessageElements;
 import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.RpcElements;
 import com.google.eclipse.protobuf.services.ProtobufGrammarAccess.ServiceElements;
 
-import org.eclipse.xtext.Keyword;
-import org.eclipse.xtext.formatting.impl.*;
-
 /**
  * This class provides custom formatting.
- * 
+ *
  * @see <a href="http://www.eclipse.org/Xtext/documentation/2_0_0/105-formatting.php">Xtext Formatting</a>
  */
 public class ProtobufFormatter extends AbstractDeclarativeFormatter {
@@ -32,7 +34,13 @@
   @Override protected void configureFormatting(FormattingConfig c) {
     ProtobufGrammarAccess g = (ProtobufGrammarAccess) getGrammarAccess();
     c.setLinewrap(0, 1, 2).before(g.getSL_COMMENTRule());
+    c.setLinewrap(1).after(g.getPackageRule());
+    c.setLinewrap(1).after(g.getBuiltInOptionRule());
+    c.setLinewrap(1).after(g.getImportRule());
+    c.setLinewrap(1).after(g.getFieldRule());
     c.setLinewrap(1).after(g.getPropertyRule());
+    c.setLinewrap(1).after(g.getEnumRule());
+    c.setLinewrap(1).after(g.getEnumElementRule());
     for (Keyword equal : g.findKeywords(EQUAL.toString())) {
       c.setSpace(space()).around(equal);
     }
@@ -53,6 +61,7 @@
     }
     indentMessageElements(c, g);
     indentExtendMessageElements(c, g);
+    indentGroupElements(c, g);
     indentEnumElements(c, g);
     indentServiceElements(c, g);
     indentRpcElements(c, g);
@@ -63,13 +72,19 @@
     c.setIndentationIncrement().after(e.getLeftCurlyBracketKeyword_2());
     c.setIndentationDecrement().before(e.getRightCurlyBracketKeyword_4());
   }
-  
+
   private void indentExtendMessageElements(FormattingConfig c, ProtobufGrammarAccess g) {
     ExtendMessageElements e = g.getExtendMessageAccess();
     c.setIndentationIncrement().after(e.getLeftCurlyBracketKeyword_2());
     c.setIndentationDecrement().before(e.getRightCurlyBracketKeyword_4());
   }
-  
+
+  private void indentGroupElements(FormattingConfig c, ProtobufGrammarAccess g) {
+    GroupElements e = g.getGroupAccess();
+    c.setIndentationIncrement().after(e.getLeftCurlyBracketKeyword_6());
+    c.setIndentationDecrement().before(e.getRightCurlyBracketKeyword_8());
+  }
+
   private void indentEnumElements(FormattingConfig c, ProtobufGrammarAccess g) {
     EnumElements e = g.getEnumAccess();
     c.setIndentationIncrement().after(e.getLeftCurlyBracketKeyword_2());