Major cleanup.
diff --git a/com.google.eclipse.protobuf.feature/feature.xml b/com.google.eclipse.protobuf.feature/feature.xml
index bf5e092..90368a9 100644
--- a/com.google.eclipse.protobuf.feature/feature.xml
+++ b/com.google.eclipse.protobuf.feature/feature.xml
@@ -22,7 +22,6 @@
    </url>
 
    <requires>
-      <import plugin="org.eclipse.xtext"/>
       <import plugin="org.eclipse.xtext.util"/>
       <import plugin="org.eclipse.emf.ecore"/>
       <import plugin="org.eclipse.emf.common"/>
@@ -37,9 +36,12 @@
       <import plugin="org.eclipse.ui"/>
       <import plugin="org.eclipse.xtext.builder"/>
       <import plugin="com.ibm.icu"/>
+      <import plugin="org.eclipse.emf.databinding"/>
       <import plugin="org.eclipse.core.resources"/>
       <import plugin="org.eclipse.core.filesystem" version="1.3.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.emf.databinding"/>
+      <import plugin="org.eclipse.xtext" version="2.1.1" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.compare.core" version="3.5.200" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui.workbench.texteditor"/>
    </requires>
 
    <plugin
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue161_PackageScoping_Test.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue161_PackageScoping_Test.java
index 9fcddc5..db4e3fc 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue161_PackageScoping_Test.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue161_PackageScoping_Test.java
@@ -15,17 +15,17 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.*;
-import com.google.eclipse.protobuf.scoping.ProtobufScopeProvider;
-
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.xtext.scoping.IScope;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.scoping.ProtobufScopeProvider;
+
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=161">Issue 161</a>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Issue161_PackageScoping_Test {
@@ -53,7 +53,7 @@
   //   ONE = 1;
   //   TWO = 2;
   // }
-  
+
   // syntax = "proto2";
   // package com.google.proto.project.shared;
   //
@@ -65,7 +65,7 @@
   @Test public void should_include_package_intersection() {
     MessageField field = xtext.find("type", " =", MessageField.class);
     IScope scope = provider.scope_ComplexTypeLink_target((ComplexTypeLink) field.getType(), reference);
-    assertThat(descriptionsIn(scope), contain("base.shared.Type", "proto.base.shared.Type", 
+    assertThat(descriptionsIn(scope), contain("base.shared.Type", "proto.base.shared.Type",
                                               "google.proto.base.shared.Type", "com.google.proto.base.shared.Type"));
   }
 }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue167_PackageScopingWithNestedTypes_Test.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue167_PackageScopingWithNestedTypes_Test.java
index 311a01e..19637f7 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue167_PackageScopingWithNestedTypes_Test.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/bugs/Issue167_PackageScopingWithNestedTypes_Test.java
@@ -15,17 +15,17 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.*;
-import com.google.eclipse.protobuf.scoping.ProtobufScopeProvider;
-
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.xtext.scoping.IScope;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.scoping.ProtobufScopeProvider;
+
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=167">Issue 167</a>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Issue167_PackageScopingWithNestedTypes_Test {
@@ -48,14 +48,14 @@
   //
   // syntax = 'proto2';
   // package com.google.proto.base.shared;
-  // 
+  //
   // message Outer {
   //   enum Type {
   //     ONE = 1;
   //     TWO = 2;
   //   }
   // }
-  
+
   // syntax = "proto2";
   // package com.google.proto.project.shared;
   //
@@ -67,8 +67,8 @@
   @Test public void should_include_package_intersection() {
     MessageField field = xtext.find("type", " =", MessageField.class);
     IScope scope = provider.scope_ComplexTypeLink_target((ComplexTypeLink) field.getType(), reference);
-    assertThat(descriptionsIn(scope), contain("base.shared.Outer.Type", "proto.base.shared.Outer.Type", 
-                                              "google.proto.base.shared.Outer.Type", 
+    assertThat(descriptionsIn(scope), contain("base.shared.Outer.Type", "proto.base.shared.Outer.Type",
+                                              "google.proto.base.shared.Outer.Type",
                                               "com.google.proto.base.shared.Outer.Type"));
   }
 }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFields.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFields.java
index 69253ee..ca4c976 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFields.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFields.java
@@ -1,9 +1,9 @@
 /*
  * 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.junit.matchers;
@@ -32,13 +32,19 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof IEObjectDescriptions)) return false;
+    if (!(arg instanceof IEObjectDescriptions)) {
+      return false;
+    }
     IEObjectDescriptions descriptions = (IEObjectDescriptions) arg;
-    if (descriptions.size() != fields.size()) return false;
+    if (descriptions.size() != fields.size()) {
+      return false;
+    }
     for (MessageField field : fields) {
       String name = field.getName();
       EObject described = descriptions.objectDescribedAs(name);
-      if (described != field) return false;
+      if (described != field) {
+        return false;
+      }
     }
     return true;
   }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFieldsInMessage.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFieldsInMessage.java
index ac3fa14..2f53cd3 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFieldsInMessage.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllFieldsInMessage.java
@@ -1,9 +1,9 @@
 /*
  * 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.junit.matchers;
@@ -38,14 +38,20 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof IEObjectDescriptions)) return false;
+    if (!(arg instanceof IEObjectDescriptions)) {
+      return false;
+    }
     IEObjectDescriptions descriptions = (IEObjectDescriptions) arg;
     List<IndexedElement> elements = allIndexedElements();
-    if (descriptions.size() != elements.size()) return false;
+    if (descriptions.size() != elements.size()) {
+      return false;
+    }
     for (IndexedElement e : elements) {
       String name = nameOf(e);
       EObject described = descriptions.objectDescribedAs(name);
-      if (described != e) return false;
+      if (described != e) {
+        return false;
+      }
     }
     return true;
   }
@@ -63,7 +69,9 @@
   }
 
   private String nameOf(IndexedElement e) {
-    if (e == null) return null;
+    if (e == null) {
+      return null;
+    }
     return (e instanceof Group) ? ((Group) e).getName() : ((MessageField) e).getName();
   }
 }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllLiteralsInEnum.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllLiteralsInEnum.java
index 7fcad3f..6fd2fdb 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllLiteralsInEnum.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllLiteralsInEnum.java
@@ -1,9 +1,9 @@
 /*
  * 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.junit.matchers;
@@ -35,14 +35,20 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof IEObjectDescriptions)) return false;
+    if (!(arg instanceof IEObjectDescriptions)) {
+      return false;
+    }
     IEObjectDescriptions descriptions = (IEObjectDescriptions) arg;
     List<Literal> literals = allLiterals();
-    if (descriptions.size() != literals.size()) return false;
+    if (descriptions.size() != literals.size()) {
+      return false;
+    }
     for (Literal literal : literals) {
       String name = literal.getName();
       EObject described = descriptions.objectDescribedAs(name);
-      if (described != literal) return false;
+      if (described != literal) {
+        return false;
+      }
     }
     return true;
   }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllNames.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllNames.java
index f40ca20..c818b62 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllNames.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainAllNames.java
@@ -1,9 +1,9 @@
 /*
  * 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.junit.matchers;
@@ -30,13 +30,19 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof IEObjectDescriptions)) return false;
+    if (!(arg instanceof IEObjectDescriptions)) {
+      return false;
+    }
     IEObjectDescriptions descriptions = (IEObjectDescriptions) arg;
     List<String> names = new ArrayList<String>(descriptions.names());
-    if (names.size() != expectedNames.length) return false;
+    if (names.size() != expectedNames.length) {
+      return false;
+    }
     for (String name : expectedNames) {
       boolean removed = names.remove(name);
-      if (!removed) return false;
+      if (!removed) {
+        return false;
+      }
     }
     return names.isEmpty();
   }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainNames.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainNames.java
index 24503f6..a6f9ee8 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainNames.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/junit/matchers/ContainNames.java
@@ -1,16 +1,16 @@
 /*
  * 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.junit.matchers;
 
 import static java.util.Arrays.asList;
 
-import java.util.*;
+import java.util.List;
 
 import org.hamcrest.*;
 
@@ -32,7 +32,9 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof IEObjectDescriptions)) return false;
+    if (!(arg instanceof IEObjectDescriptions)) {
+      return false;
+    }
     IEObjectDescriptions descriptions = (IEObjectDescriptions) arg;
     return descriptions.names().containsAll(expectedNames);
   }
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/model/util/Options_sourceOf_Test.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/model/util/Options_sourceOf_Test.java
index bb6e9c0..84a5083 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/model/util/Options_sourceOf_Test.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/model/util/Options_sourceOf_Test.java
@@ -13,14 +13,14 @@
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
+import org.junit.*;
+
 import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 
-import org.junit.*;
-
 /**
  * Tests for <code>{@link Options#sourceOf(CustomOption)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Options_sourceOf_Test {
diff --git a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider_scope_FieldName_target_with_ExtensionFieldName_Test.java b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider_scope_FieldName_target_with_ExtensionFieldName_Test.java
index ad04200..0e1c5bc 100644
--- a/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider_scope_FieldName_target_with_ExtensionFieldName_Test.java
+++ b/com.google.eclipse.protobuf.integration.test/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider_scope_FieldName_target_with_ExtensionFieldName_Test.java
@@ -15,16 +15,16 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.*;
-
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.xtext.scoping.IScope;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.*;
+
 /**
  * Tests for <code>{@link ProtobufScopeProvider#scope_FieldName_target(FieldName, EReference)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufScopeProvider_scope_FieldName_target_with_ExtensionFieldName_Test {
@@ -54,7 +54,7 @@
   //   optional google.protobuf.FileOptions file = 2;
   // }
   //
-  // extend google.protobuf.FileOptions { 
+  // extend google.protobuf.FileOptions {
   //   optional Aggregate fileopt = 15478479;
   // }
   //
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue154_AllowMultipleSemicolons_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue154_AllowMultipleSemicolons_Test.java
index ca6de14..8ff3e4b 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue154_AllowMultipleSemicolons_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue154_AllowMultipleSemicolons_Test.java
@@ -12,25 +12,25 @@
 import static com.google.eclipse.protobuf.junit.core.XtextRule.createWith;
 import static org.junit.Assert.assertNotNull;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=154">Issue 154</a>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Issue154_AllowMultipleSemicolons_Test {
 
   @Rule public XtextRule xtext = createWith(unitTestSetup());
-  
+
   // syntax = "proto2";
-  // 
+  //
   // message Foo {
   //   optional double bar = 1 [deprecated = true];;
   // }
   @Test public void should_allow_multiple_semicolons_at_the_end_of_field() {
     assertNotNull(xtext.root());
-  }   
+  }
 }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue165_Support64BitNumbers_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue165_Support64BitNumbers_Test.java
index 225f943..b2cc4cd 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue165_Support64BitNumbers_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue165_Support64BitNumbers_Test.java
@@ -14,12 +14,12 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
-import com.google.eclipse.protobuf.conversion.LONGValueConverter;
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-
 import org.eclipse.xtext.nodemodel.INode;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.conversion.LONGValueConverter;
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=165">Issue 165</a>.
  *
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue166_SupportOptionalDecimals_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue166_SupportOptionalDecimals_Test.java
index 09732ef..fc9d409 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue166_SupportOptionalDecimals_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue166_SupportOptionalDecimals_Test.java
@@ -13,11 +13,11 @@
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
+import org.junit.*;
+
 import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 
-import org.junit.*;
-
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=166">Issue 166</a>.
  *
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java
index 088c366..c170026 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/bugs/Issue168_GroupsCanHaveMessagesAndExtensions_Test.java
@@ -11,10 +11,10 @@
 import static com.google.eclipse.protobuf.junit.core.Setups.unitTestSetup;
 import static com.google.eclipse.protobuf.junit.core.XtextRule.createWith;
 
-import com.google.eclipse.protobuf.junit.core.*;
-
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+
 /**
  * Tests fix for <a href="http://code.google.com/p/protobuf-dt/issues/detail?id=168">Issue 168</a>.
  *
@@ -23,7 +23,7 @@
 public class Issue168_GroupsCanHaveMessagesAndExtensions_Test {
 
   @Rule public XtextRule xtext = createWith(unitTestSetup());
-  
+
   // syntax = "proto2";
   //
   // message TopMessage {
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/LONGValueConverter_toValue_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/LONGValueConverter_toValue_Test.java
index 39ad8a1..3e3bf22 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/LONGValueConverter_toValue_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/LONGValueConverter_toValue_Test.java
@@ -12,23 +12,20 @@
 import static com.google.eclipse.protobuf.junit.core.XtextRule.createWith;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
 import static org.junit.rules.ExpectedException.none;
 import static org.mockito.Mockito.mock;
 
 import org.eclipse.xtext.conversion.ValueConverterException;
 import org.eclipse.xtext.nodemodel.INode;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
+import org.junit.*;
 import org.junit.rules.ExpectedException;
 
 import com.google.eclipse.protobuf.junit.core.XtextRule;
 
 /**
  * Tests for <code>{@link LONGValueConverter#toString()}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class LONGValueConverter_toValue_Test {
@@ -43,7 +40,7 @@
     node = mock(INode.class);
     converter = xtext.injector().getInstance(LONGValueConverter.class);
   }
-  
+
   @Test public void should_throw_error_if_input_is_null() {
     thrown.expect(ValueConverterException.class);
     thrown.expectMessage("Couldn't convert empty string to long.");
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/grammar/Keywords_isKeyword_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/grammar/Keywords_isKeyword_Test.java
index dc3f22b..e7a2378 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/grammar/Keywords_isKeyword_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/grammar/Keywords_isKeyword_Test.java
@@ -20,7 +20,7 @@
 
 /**
  * Tests for <code>{@link Keywords#isKeyword(String)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Keywords_isKeyword_Test {
@@ -29,18 +29,18 @@
 
   private IGrammarAccess grammarAccess;
   private Keywords keywords;
-  
+
   @Before public void setUp() {
     grammarAccess = xtext.getInstanceOf(IGrammarAccess.class);
     keywords = xtext.getInstanceOf(Keywords.class);
   }
-  
+
   @Test public void should_return_true_if_given_String_is_keyword() {
     for (String s : getAllKeywords(grammarAccess.getGrammar())) {
       assertTrue(keywords.isKeyword(s));
     }
   }
-  
+
   @Test public void should_return_false_if_given_String_is_not_keyword() {
     assertFalse(keywords.isKeyword("Google"));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/CommentProcessor.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/CommentProcessor.java
index 0ebc1c8..99d16c0 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/CommentProcessor.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/CommentProcessor.java
@@ -28,7 +28,9 @@
     while (scanner.hasNextLine()) {
       String line = scanner.nextLine();
       Matcher matcher = CREATE_FILE_PATTERN.matcher(line);
-      if (!matcher.matches()) return comment;
+      if (!matcher.matches()) {
+        return comment;
+      }
       fileName = matcher.group(1);
       break;
     }
@@ -38,7 +40,9 @@
   private File createFile(String fileName, String contents) {
     ensureParentDirectoryExists();
     File file = protoFile(fileName);
-    if (file.isFile()) file.delete();
+    if (file.isFile()) {
+      file.delete();
+    }
     Writer out = null;
     try {
       out = new OutputStreamWriter(new FileOutputStream(file));
@@ -52,7 +56,9 @@
   }
 
   private void closeQuietly(Writer out) {
-    if (out == null) return;
+    if (out == null) {
+      return;
+    }
     try {
       out.close();
     } catch (IOException e) {}
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
index 17d8723..e3e8f50 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Finder.java
@@ -53,13 +53,17 @@
     while (iterator.hasNext()) {
       AbstractNode node = iterator.next();
       int nodeOffset = node.getOffset();
-      if (nodeOffset > offset || (nodeOffset + node.getLength()) <= offset) continue;
+      if (nodeOffset > offset || (nodeOffset + node.getLength()) <= offset) {
+        continue;
+      }
       EObject e = node.getSemanticElement();
       if (isDefaultValueFieldOption(name, type, e)) {
         return type.cast(e);
       }
       if (type.isInstance(e)) {
-        if (areNamesEqual(name, e, options)) return type.cast(e);
+        if (areNamesEqual(name, e, options)) {
+          return type.cast(e);
+        }
       }
     }
     String format = "Unable to find element. Text: '%s', count: %d, type: %s, options: %s";
@@ -78,17 +82,25 @@
       realExpected = qualifiedName.getLastSegment();
     }
     String actual = nameOf(e);
-    if (options.contains(IGNORE_CASE)) return realExpected.equalsIgnoreCase(actual);
+    if (options.contains(IGNORE_CASE)) {
+      return realExpected.equalsIgnoreCase(actual);
+    }
     return realExpected.equals(actual);
   }
-  
+
   private String nameOf(Object o) {
-    if (!(o instanceof EObject)) return null;
+    if (!(o instanceof EObject)) {
+      return null;
+    }
     EObject e = (EObject) o;
     for (String name : FEATURE_NAMES) {
       Object value = feature(e, name);
-      if (value instanceof String) return (String) value;
-      if (value != null) return nameOf(value);
+      if (value instanceof String) {
+        return (String) value;
+      }
+      if (value != null) {
+        return nameOf(value);
+      }
     }
     return null;
   }
@@ -102,9 +114,13 @@
     BidiTreeIterator<AbstractNode> iterator = root.basicIterator();
     while (iterator.hasNext()) {
       AbstractNode node = iterator.next();
-      if (!(node instanceof ILeafNode)) continue;
+      if (!(node instanceof ILeafNode)) {
+        continue;
+      }
       String nodeText = clean(node.getText());
-      if (text.equals(nodeText)) return (ILeafNode) node;
+      if (text.equals(nodeText)) {
+        return (ILeafNode) node;
+      }
     }
     String format = "Unable to find node. Text: '%s'";
     throw new AssertionError(String.format(format, text));
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/GeneratedProtoFiles.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/GeneratedProtoFiles.java
index 0980053..8aac327 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/GeneratedProtoFiles.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/GeneratedProtoFiles.java
@@ -19,17 +19,17 @@
 final class GeneratedProtoFiles {
 
   private static final String PARENT_DIRECTORY_NAME = "test-protos";
-  
+
   static File protoFile(String fileName) {
     return new File(PARENT_DIRECTORY_NAME + separator + fileName);
   }
-  
+
   static void ensureParentDirectoryExists() {
     File parent = new File(PARENT_DIRECTORY_NAME);
     if (!parent.isDirectory()) {
       assertTrue(parent.mkdir());
     }
   }
-  
+
   private GeneratedProtoFiles() {}
 }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/IntegrationTestSetup.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/IntegrationTestSetup.java
index 90f239a..0935741 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/IntegrationTestSetup.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/IntegrationTestSetup.java
@@ -11,14 +11,14 @@
 import static com.google.eclipse.protobuf.junit.core.GeneratedProtoFiles.protoFile;
 import static org.eclipse.xtext.util.Strings.isEmpty;
 
-import com.google.eclipse.protobuf.*;
-import com.google.eclipse.protobuf.scoping.IFileUriResolver;
-import com.google.inject.*;
+import java.io.File;
 
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 
-import java.io.File;
+import com.google.eclipse.protobuf.*;
+import com.google.eclipse.protobuf.scoping.IFileUriResolver;
+import com.google.inject.*;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -26,25 +26,30 @@
 public class IntegrationTestSetup extends ProtobufStandaloneSetup {
 
   IntegrationTestSetup() {}
-  
+
   @Override
   public Injector createInjector() {
     return Guice.createInjector(new Module());
   }
-  
+
   private static class Module extends ProtobufRuntimeModule {
     @SuppressWarnings("unused")
     public Class<? extends IFileUriResolver> bindFileUriResolver() {
       return FileUriResolver.class;
     }
   }
-  
+
   private static class FileUriResolver implements IFileUriResolver {
     @Override public String resolveUri(String importUri, Resource declaringResource) {
       URI uri = URI.createURI(importUri);
-      if (!isEmpty(uri.scheme())) return importUri; // already resolved.
+      if (!isEmpty(uri.scheme()))
+       {
+        return importUri; // already resolved.
+      }
       File file = protoFile(importUri);
-      if (!file.exists()) throw new IllegalArgumentException("File: " + importUri + " does not exist.");
+      if (!file.exists()) {
+        throw new IllegalArgumentException("File: " + importUri + " does not exist.");
+      }
       return file.toURI().toString();
     }
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Setups.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Setups.java
index 8209403..04503df 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Setups.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/Setups.java
@@ -18,10 +18,10 @@
   public static ISetup unitTestSetup() {
     return new UnitTestSetup();
   }
-  
+
   public static ISetup integrationTestSetup() {
     return new IntegrationTestSetup();
   }
-  
+
   private Setups() {}
 }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/TestSourceReader.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/TestSourceReader.java
index 5add2bd..418e23b 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/TestSourceReader.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/TestSourceReader.java
@@ -1,22 +1,22 @@
 /*
  * 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.junit.core;
 
 import static java.io.File.separator;
 
-import com.google.eclipse.protobuf.junit.util.MultiLineTextBuilder;
+import java.io.*;
+import java.util.*;
 
 import org.junit.runners.model.FrameworkMethod;
 
-import java.io.*;
-import java.util.*;
+import com.google.eclipse.protobuf.junit.util.MultiLineTextBuilder;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -27,30 +27,36 @@
 
   private final Map<String, List<String>> comments = new HashMap<String, List<String>>();
   private final CommentProcessor processor = new CommentProcessor();
-  
+
   private boolean initialized;
-  
+
   private final Object lock = new Object();
- 
+
   String commentsIn(FrameworkMethod method) {
     synchronized (lock) {
       ensureCommentsAreRead(method.getMethod().getDeclaringClass());
       List<String> allComments = comments.get(method.getName());
-      if (allComments == null || allComments.isEmpty()) return null;
+      if (allComments == null || allComments.isEmpty()) {
+        return null;
+      }
       for (String comment : allComments) {
         Object processed = processor.processComment(comment);
-        if (processed instanceof String) return (String) processed;
+        if (processed instanceof String) {
+          return (String) processed;
+        }
       }
       return null;
     }
   }
-  
+
   private void ensureCommentsAreRead(Class<?> testClass) {
-    if (initialized) return;
+    if (initialized) {
+      return;
+    }
     doReadComments(testClass);
     initialized = true;
   }
-  
+
   private void doReadComments(Class<?> testClass) {
     String fqn = testClass.getName().replace('.', '/');
     fqn = fqn.indexOf("$") == -1 ? fqn : fqn.substring(0, fqn.indexOf("$"));
@@ -68,16 +74,20 @@
           comment.append(line.substring(COMMENT_START.length()).trim());
           continue;
         }
-        if (comment.isEmpty()) continue;
+        if (comment.isEmpty()) {
+          continue;
+        }
         line = line.trim();
         String testName = testName(line);
         if (line.length() == 0 || testName != null) {
-          if (!allComments.contains(comment)) allComments.add(comment.toString());
+          if (!allComments.contains(comment)) {
+            allComments.add(comment.toString());
+          }
           comment = new MultiLineTextBuilder();
         }
         if (testName != null) {
           comments.put(testName, allComments);
-          allComments = new ArrayList<String>(); 
+          allComments = new ArrayList<String>();
         }
       }
     } catch (IOException e) {
@@ -88,7 +98,9 @@
   }
 
   private static String testName(String line) {
-    if (!line.startsWith("@Test")) return null;
+    if (!line.startsWith("@Test")) {
+      return null;
+    }
     int indexOfShould = line.indexOf("should");
     return (indexOfShould == -1) ? null : line.substring(indexOfShould, line.indexOf("("));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/UnitTestSetup.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/UnitTestSetup.java
index ca4dd7b..0177a82 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/UnitTestSetup.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/UnitTestSetup.java
@@ -21,18 +21,18 @@
 public class UnitTestSetup extends ProtobufStandaloneSetup {
 
   UnitTestSetup() {}
-  
+
   @Override
   public Injector createInjector() {
     return Guice.createInjector(new Module());
   }
-  
+
   private static class Module extends ProtobufRuntimeModule {
     @Override public void configureExtensionRegistry(Binder binder) {
-      binder.bind(IExtensionRegistry.class).toProvider(ExtensionRegistryProvider.class);    
+      binder.bind(IExtensionRegistry.class).toProvider(ExtensionRegistryProvider.class);
     }
   }
-  
+
   private static class ExtensionRegistryProvider implements Provider<IExtensionRegistry> {
     @Override public IExtensionRegistry get() {
       return mock(IExtensionRegistry.class);
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/XtextRule.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
index 6cccc7e..f08dcf8 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/core/XtextRule.java
@@ -74,7 +74,9 @@
     resource = resourceFrom(new StringInputStream(text));
     IParseResult parseResult = resource.getParseResult();
     root = (Protobuf) parseResult.getRootASTElement();
-    if (ignoreSyntaxErrors) return;
+    if (ignoreSyntaxErrors) {
+      return;
+    }
     if (!parseResult.hasSyntaxErrors()) {
       if (root.getSyntax() == null) {
         throw new IllegalStateException("Please specify 'proto2' syntax");
@@ -83,8 +85,9 @@
     }
     StringBuilder builder = new StringBuilder();
     builder.append("Syntax errors:");
-    for (INode error : parseResult.getSyntaxErrors())
+    for (INode error : parseResult.getSyntaxErrors()) {
       builder.append(lineSeparator()).append("- ").append(error.getSyntaxErrorMessage());
+    }
     throw new IllegalStateException(builder.toString());
   }
 
@@ -93,7 +96,7 @@
   }
 
   private XtextResource resourceFrom(InputStream input) {
-    return resourceFrom(input, createURI("mytestmodel.proto")); //$NON-NLS-1$
+    return resourceFrom(input, createURI("mytestmodel.proto"));
   }
 
   private XtextResource resourceFrom(InputStream input, URI uri) {
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
index 65fd42c..6f5c274 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/EnumHasLiterals.java
@@ -12,8 +12,7 @@
 
 import java.util.*;
 
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
+import org.hamcrest.*;
 
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.protobuf.Enum;
@@ -28,16 +27,20 @@
   public static EnumHasLiterals hasLiterals(String... literalNames) {
     return new EnumHasLiterals(literalNames);
   }
-  
+
   private EnumHasLiterals(String... literalNames) {
     this.literalNames = literalNames;
   }
-  
+
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof Enum)) return false;
+    if (!(arg instanceof Enum)) {
+      return false;
+    }
     Enum anEnum = (Enum) arg;
     List<String> actualNames = literalNames(anEnum);
-    for (String name : literalNames) actualNames.remove(name);
+    for (String name : literalNames) {
+      actualNames.remove(name);
+    }
     return actualNames.isEmpty();
   }
 
@@ -48,7 +51,7 @@
     }
     return names;
   }
-  
+
   @Override public void describeTo(Description description) {
     description.appendValue(Arrays.toString(literalNames));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/FieldHasType.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/FieldHasType.java
index 3b31b28..341fc20 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/FieldHasType.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/matchers/FieldHasType.java
@@ -36,14 +36,18 @@
   }
 
   @Override public boolean matches(Object arg) {
-    if (!(arg instanceof MessageField)) return false;
+    if (!(arg instanceof MessageField)) {
+      return false;
+    }
     MessageField field = (MessageField) arg;
     return typeName.equals(typeNameOf(field));
   }
 
   private String typeNameOf(MessageField field) {
     TypeLink link = field.getType();
-    if (link instanceof ScalarTypeLink) return ((ScalarTypeLink) link).getTarget().getName();
+    if (link instanceof ScalarTypeLink) {
+      return ((ScalarTypeLink) link).getTarget().getName();
+    }
     if (link instanceof ComplexTypeLink) {
       ComplexType type = ((ComplexTypeLink) link).getTarget();
       return type == null ? null : type.getName();
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/FileStub.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/FileStub.java
index 67ede73..ada60de 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/FileStub.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/FileStub.java
@@ -138,7 +138,9 @@
   /** {@inheritDoc} */
   @Override public void deleteMarkers(String type, boolean includeSubtypes, int depth) {
     List<MarkerStub> markers = markersByType.get(type);
-    if (markers != null) markers.clear();
+    if (markers != null) {
+      markers.clear();
+    }
   }
 
   /** {@inheritDoc} */
@@ -154,7 +156,9 @@
   /** {@inheritDoc} */
   @Override public IMarker[] findMarkers(String type, boolean includeSubtypes, int depth) {
     List<MarkerStub> markers = markersByType.get(type);
-    if (markers == null) return new IMarker[0];
+    if (markers == null) {
+      return new IMarker[0];
+    }
     return markers.toArray(new IMarker[markers.size()]);
   }
 
@@ -523,7 +527,9 @@
 
   public List<MarkerStub> markersOfType(String type) {
     List<MarkerStub> markers = markersByType.get(type);
-    if (markers == null) return emptyList();
+    if (markers == null) {
+      return emptyList();
+    }
     return unmodifiableList(markers);
   }
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/MarkerStub.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/MarkerStub.java
index cdc7eae..b90a24e 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/MarkerStub.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/MarkerStub.java
@@ -8,6 +8,7 @@
  */
 package com.google.eclipse.protobuf.junit.stubs.resources;
 
+import static com.google.eclipse.protobuf.util.Objects.*;
 import static java.util.Collections.unmodifiableMap;
 
 import java.util.*;
@@ -59,21 +60,27 @@
   /** {@inheritDoc} */
   @Override public int getAttribute(String attributeName, int defaultValue) {
     Object attribute = attributes.get(attributeName);
-    if (attribute instanceof Integer) return (Integer) attribute;
+    if (attribute instanceof Integer) {
+      return (Integer) attribute;
+    }
     return defaultValue;
   }
 
   /** {@inheritDoc} */
   @Override public String getAttribute(String attributeName, String defaultValue) {
     Object attribute = attributes.get(attributeName);
-    if (attribute instanceof String) return (String) attribute;
+    if (attribute instanceof String) {
+      return (String) attribute;
+    }
     return defaultValue;
   }
 
   /** {@inheritDoc} */
   @Override public boolean getAttribute(String attributeName, boolean defaultValue) {
     Object attribute = attributes.get(attributeName);
-    if (attribute instanceof Boolean) return (Boolean) attribute;
+    if (attribute instanceof Boolean) {
+      return (Boolean) attribute;
+    }
     return defaultValue;
   }
 
@@ -85,8 +92,9 @@
   /** {@inheritDoc} */
   @Override public Object[] getAttributes(String[] attributeNames) {
     List<Object> values = new ArrayList<Object>();
-    for (String name : attributeNames)
+    for (String name : attributeNames) {
       values.add(attributes.get(name));
+    }
     return values.toArray();
   }
 
@@ -143,7 +151,7 @@
   public int severity() {
     return getAttribute(SEVERITY, -1);
   }
-  
+
   public String message() {
     return (String) getAttribute(MESSAGE);
   }
@@ -153,24 +161,24 @@
   }
 
   @Override public boolean equals(Object obj) {
-    if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (this == obj) {
+      return true;
+    }
+    if (obj == null || getClass() != obj.getClass()) {
+      return false;
+    }
     MarkerStub other = (MarkerStub) obj;
-    if (attributes == null) {
-      if (other.attributes != null) return false;
-    } else if (!attributes.equals(other.attributes)) return false;
-    if (type == null) {
-      if (other.type != null) return false;
-    } else if (!type.equals(other.type)) return false;
-    return true;
+    if (!areEqual(attributes, other.attributes)) {
+      return false;
+    }
+    return areEqual(type, other.type);
   }
 
   @Override public int hashCode() {
-    final int prime = 31;
+    final int prime = HASH_CODE_PRIME;
     int result = 1;
-    result = prime * result + ((attributes == null) ? 0 : attributes.hashCode());
-    result = prime * result + ((type == null) ? 0 : type.hashCode());
+    result = prime * result + hashCodeOf(attributes);
+    result = prime * result + hashCodeOf(type);
     return result;
   }
 
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/ResourceStub.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/ResourceStub.java
index 7af740a..c5dc851 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/ResourceStub.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/stubs/resources/ResourceStub.java
@@ -26,11 +26,11 @@
   private URI uri;
 
   public ResourceStub() {}
-  
+
   public ResourceStub(String uri) {
     setURI(createURI(uri));
   }
-  
+
   /** {@inheritDoc} */
   @Override public EList<Adapter> eAdapters() {
     throw new UnsupportedOperationException();
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/util/MultiLineTextBuilder.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/util/MultiLineTextBuilder.java
index f11f65d..5022fae 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/util/MultiLineTextBuilder.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/junit/util/MultiLineTextBuilder.java
@@ -16,26 +16,26 @@
 public class MultiLineTextBuilder {
 
   private final StringBuilder builder = new StringBuilder();
-  
+
   public MultiLineTextBuilder() {}
-  
+
   public MultiLineTextBuilder(String initialContent) {
     append(initialContent);
   }
-  
+
   public MultiLineTextBuilder append(String s) {
     builder.append(s).append(lineSeparator());
     return this;
   }
-  
+
   public boolean isEmpty() {
     return builder.length() == 0;
   }
-  
+
   public boolean hasContent(String s) {
     return toString().equals(s);
   }
-  
+
   @Override public String toString() {
     return builder.toString();
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_appendToMessage_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_appendToMessage_Test.java
index 03778fe..0e7a134 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_appendToMessage_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_appendToMessage_Test.java
@@ -17,17 +17,17 @@
 
 /**
  * Tests for <code>{@link ProtobufDiagnostic#appendToMessage(String)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufDiagnostic_appendToMessage_Test {
 
   private ProtobufDiagnostic diagnostic;
-  
+
   @Before public void setUp() {
     diagnostic = new ProtobufDiagnostic("1000", new String[0], "Hello", mock(INode.class));
   }
-  
+
   @Test public void should_append_text_to_message() {
     diagnostic.appendToMessage(" ");
     diagnostic.appendToMessage("World");
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_constructor_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_constructor_Test.java
index 11497b7..9d54625 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_constructor_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic_constructor_Test.java
@@ -20,33 +20,33 @@
 
 /**
  * Tests for <code>{@link ProtobufDiagnostic#ProtobufDiagnostic(String, String[], String, INode)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufDiagnostic_constructor_Test {
 
   private static INode node;
-  
+
   @BeforeClass public static void setUpOnce() {
     node = mock(INode.class);
   }
-  
+
   @Test(expected = NullPointerException.class)
   public void should_throw_exception_if_data_is_null() {
     new ProtobufDiagnostic("1000", null, "message", node);
   }
-  
+
   @Test(expected = NullPointerException.class)
   public void should_throw_exception_if_data_contains_nulls() {
     new ProtobufDiagnostic("1000", new String[] { null }, "message", node);
   }
-  
+
   @Test(expected = NullPointerException.class)
   public void should_throw_exception_if_node_is_null() {
     new ProtobufDiagnostic("1000", new String[0], "message", null);
   }
-  
-  @SuppressWarnings("unchecked") 
+
+  @SuppressWarnings("unchecked")
   @Test public void should_create_new_instance() {
     String[] data = { "abc.proto" };
     ProtobufDiagnostic d = new ProtobufDiagnostic("1000", data, "message", node);
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufResource_createDiagnostic_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufResource_createDiagnostic_Test.java
index 3a08e0e..7a671c3 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufResource_createDiagnostic_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/linking/ProtobufResource_createDiagnostic_Test.java
@@ -23,25 +23,25 @@
 
 /**
  * Tests for <code>{@link ProtobufResource#createDiagnostic(Triple, DiagnosticMessage)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufResource_createDiagnostic_Test {
 
   private static Triple<EObject, EReference, INode> triple;
-  
+
   @BeforeClass public static void setUpOnce() {
     triple = Tuples.create(mock(EObject.class), mock(EReference.class), mock(INode.class));
   }
-  
+
   private DiagnosticMessage message;
   private ProtobufResource resource;
-  
+
   @Before public void setUp() {
     message = new DiagnosticMessage("message", WARNING, "1000", new String[] { "abc.proto" });
     resource = new ProtobufResource();
   }
-  
+
   @Test public void should_create_dianostic() {
     Diagnostic diagnostic = resource.createDiagnostic(triple, message);
     assertThat(diagnostic, instanceOf(ProtobufDiagnostic.class));
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_firstNodeForFeature_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_firstNodeForFeature_Test.java
index a39b03b..1c5e898 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_firstNodeForFeature_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_firstNodeForFeature_Test.java
@@ -14,13 +14,13 @@
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.MessageField;
-
 import org.eclipse.emf.ecore.*;
 import org.eclipse.xtext.nodemodel.INode;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.MessageField;
+
 /**
  * Tests for <code>{@link INodes#firstNodeForFeature(EObject, EStructuralFeature)}</code>
  *
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_isHiddenLeafNode_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_isHiddenLeafNode_Test.java
index 80993ed..c4e6a92 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_isHiddenLeafNode_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/INodes_isHiddenLeafNode_Test.java
@@ -16,17 +16,17 @@
 
 /**
  * Tests for <code>{@link INodes#isHiddenLeafNode(INode)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class INodes_isHiddenLeafNode_Test {
 
   private INodes nodes;
-  
+
   @Before public void setUp() {
     nodes = new INodes();
   }
-  
+
   @Test public void should_return_true_if_given_node_is_an_ILeafNode_and_is_hidden() {
     ILeafNode node = mock(ILeafNode.class);
     when(node.isHidden()).thenReturn(true);
@@ -38,7 +38,7 @@
     when(node.isHidden()).thenReturn(false);
     assertFalse(nodes.isHiddenLeafNode(node));
   }
-  
+
   @Test public void should_return_false_if_given_node_is_not_an_ILeafNode() {
     INode node = mock(INode.class);
     assertFalse(nodes.isHiddenLeafNode(node));
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexFeatureOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexFeatureOf_Test.java
index a21fba2..66ff31f 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexFeatureOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexFeatureOf_Test.java
@@ -8,29 +8,29 @@
  */
 package com.google.eclipse.protobuf.model.util;
 
+import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.*;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-
-import com.google.eclipse.protobuf.protobuf.*;
+import static org.mockito.Mockito.mock;
 
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.junit.*;
-import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.*;
+
+import com.google.eclipse.protobuf.protobuf.*;
 
 /**
  * Tests for <code>{@link IndexedElements#indexFeatureOf(IndexedElement)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class IndexedElements_indexFeatureOf_Test {
 
   private static IndexedElements indexedElements;
-  
+
   @BeforeClass public static void setUpOnce() {
     indexedElements = new IndexedElements();
   }
-  
+
   @Test public void should_return_name_of_Property() {
     MessageField field = mock(MessageField.class);
     EStructuralFeature expected = MESSAGE_FIELD__INDEX;
@@ -42,7 +42,7 @@
     EStructuralFeature expected = GROUP__INDEX;
     assertThat(indexedElements.indexFeatureOf(group), equalTo(expected));
   }
-  
+
   @Test public void should_return_null_if_IndexedElement_is_null() {
     assertNull(indexedElements.indexFeatureOf(null));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexOf_Test.java
index be51897..0d2dfde 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_indexOf_Test.java
@@ -9,26 +9,26 @@
 package com.google.eclipse.protobuf.model.util;
 
 import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.protobuf.*;
-
 import org.junit.*;
 
+import com.google.eclipse.protobuf.protobuf.*;
+
 /**
  * Tests for <code>{@link IndexedElements#indexOf(IndexedElement)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class IndexedElements_indexOf_Test {
 
   private static IndexedElements indexedElements;
-  
+
   @BeforeClass public static void setUpOnce() {
     indexedElements = new IndexedElements();
   }
-  
+
   @Test public void should_return_name_of_Property() {
     MessageField field = mock(MessageField.class);
     when(field.getIndex()).thenReturn(6L);
@@ -42,7 +42,7 @@
     assertThat(indexedElements.indexOf(group), equalTo(8L));
     verify(group).getIndex();
   }
-  
+
   @Test public void should_return_MIN_VALUE_if_IndexedElement_is_null() {
     assertThat(indexedElements.indexOf(null), equalTo(Long.MIN_VALUE));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_nameOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_nameOf_Test.java
index 413c94e..4c2bf4b 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_nameOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_nameOf_Test.java
@@ -14,26 +14,26 @@
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.junit.core.*;
-import com.google.eclipse.protobuf.protobuf.*;
-
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.*;
+
 /**
  * Tests for <code>{@link IndexedElements#nameOf(IndexedElement)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class IndexedElements_nameOf_Test {
 
   @Rule public XtextRule xtext = createWith(unitTestSetup());
-  
+
   private IndexedElements indexedElements;
-  
+
   @Before public void setUp() {
     indexedElements = xtext.getInstanceOf(IndexedElements.class);
   }
-  
+
   @Test public void should_return_name_of_Property() {
     MessageField field = mock(MessageField.class);
     when(field.getName()).thenReturn("foo");
@@ -47,7 +47,7 @@
     assertThat(indexedElements.nameOf(group), equalTo("foo"));
     verify(group).getName();
   }
-  
+
   @Test public void should_return_null_if_IndexedElement_is_null() {
     assertNull(indexedElements.nameOf(null));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_setIndexOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_setIndexOf_Test.java
index 12d8f55..b636061 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_setIndexOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/IndexedElements_setIndexOf_Test.java
@@ -10,23 +10,23 @@
 
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.protobuf.*;
-
 import org.junit.*;
 
+import com.google.eclipse.protobuf.protobuf.*;
+
 /**
  * Tests for <code>{@link IndexedElements#setIndexTo(IndexedElement, long)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class IndexedElements_setIndexOf_Test {
 
   private static IndexedElements indexedElements;
-  
+
   @BeforeClass public static void setUpOnce() {
     indexedElements = new IndexedElements();
   }
-  
+
   @Test public void should_return_name_of_Property() {
     MessageField field = mock(MessageField.class);
     indexedElements.setIndexTo(field, 6L);
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/MessageFields_isPrimitive_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/MessageFields_isPrimitive_Test.java
index c1eef68..ce25b1e 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/MessageFields_isPrimitive_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/MessageFields_isPrimitive_Test.java
@@ -13,10 +13,10 @@
 import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
 import static org.junit.Assert.*;
 
-import org.junit.*;
-
 import java.util.List;
 
+import org.junit.*;
+
 import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.MessageField;
 
@@ -51,8 +51,9 @@
   // }
   @Test public void should_return_true_if_field_is_primitive() {
     List<MessageField> allFields = getAllContentsOfType(xtext.root(), MessageField.class);
-    for (MessageField field : allFields)
+    for (MessageField field : allFields) {
       assertTrue(fields.isPrimitive(field));
+    }
   }
 
   // syntax = "proto2";
@@ -68,7 +69,8 @@
   // }
   @Test public void should_return_false_if_field_is_not_primitive() {
     List<MessageField> allFields = getAllContentsOfType(xtext.root(), MessageField.class);
-    for (MessageField p : allFields)
+    for (MessageField p : allFields) {
       assertFalse(fields.isPrimitive(p));
+    }
   }
 }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/Options_nameForOption_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/Options_nameForOption_Test.java
index 093c4b6..7a99481 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/Options_nameForOption_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/model/util/Options_nameForOption_Test.java
@@ -14,39 +14,39 @@
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
 
+import org.junit.*;
+
 import com.google.eclipse.protobuf.junit.core.XtextRule;
 import com.google.eclipse.protobuf.protobuf.*;
 
-import org.junit.*;
-
 /**
  * Tests for <code>{@link Options#nameForOption(IndexedElement)}</code>
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Options_nameForOption_Test {
-  
+
   @Rule public XtextRule xtext = createWith(unitTestSetup());
 
   private Options options;
-  
+
   @Before public void setUp() {
     options = xtext.getInstanceOf(Options.class);
   }
-  
+
   @Test public void should_return_unchanged_name_if_element_is_Field() {
     MessageField field = mock(MessageField.class);
     when(field.getName()).thenReturn("active");
     assertThat(options.nameForOption(field), equalTo("active"));
     verify(field).getName();
   }
-  
+
   @Test public void should_return_name_in_lower_case_if_element_is_Group() {
     Group group = mock(Group.class);
     when(group.getName()).thenReturn("Person");
     assertThat(options.nameForOption(group), equalTo("person"));
     verify(group).getName();
   }
-  
+
   @Test public void should_return_null_if_element_is_null() {
     assertNull(options.nameForOption(null));
   }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/LocalNamesProvider_names_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/LocalNamesProvider_names_Test.java
index 2a55884..d50d44e 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/LocalNamesProvider_names_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/LocalNamesProvider_names_Test.java
@@ -20,7 +20,6 @@
 import org.junit.*;
 
 import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.naming.LocalNamesProvider;
 import com.google.eclipse.protobuf.protobuf.Enum;
 
 /**
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/NameResolver_nameOf_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/NameResolver_nameOf_Test.java
index 2466c2e..dc0d184 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/NameResolver_nameOf_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/naming/NameResolver_nameOf_Test.java
@@ -22,19 +22,19 @@
 
 /**
  * Tests for <code>{@link NameResolver#nameOf(EObject)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class NameResolver_nameOf_Test {
 
   @Rule public XtextRule xtext = createWith(unitTestSetup());
-  
+
   private NameResolver resolver;
-  
+
   @Before public void setUp() {
     resolver = xtext.getInstanceOf(NameResolver.class);
   }
-  
+
   // syntax = "proto2";
   //
   // message Person {}
@@ -43,13 +43,13 @@
     String name = resolver.nameOf(message);
     assertThat(name, equalTo("Person"));
   }
-  
+
   // syntax = "proto2";
   //
   // package com.google.proto.test;
   @Test public void should_return_name_of_Package() {
     Package aPackage = xtext.find("com.google.proto.test", Package.class);
     String name = resolver.nameOf(aPackage);
-    assertThat(name, equalTo("com.google.proto.test"));    
+    assertThat(name, equalTo("com.google.proto.test"));
   }
 }
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser_doParse_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser_doParse_Test.java
index 6d1d335..a669172 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser_doParse_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser_doParse_Test.java
@@ -13,16 +13,16 @@
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
 import static org.junit.Assert.assertThat;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.Protobuf;
-
 import org.antlr.runtime.CharStream;
 import org.eclipse.xtext.nodemodel.impl.NodeModelBuilder;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.Protobuf;
+
 /**
  * Tests for <code>{@link Proto2OnlyParser#doParse(String, CharStream, NodeModelBuilder, int)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Proto2OnlyParser_doParse_Test {
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkSyntaxIsProto2_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkSyntaxIsProto2_Test.java
index a3b10fa..bc0f27b 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkSyntaxIsProto2_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkSyntaxIsProto2_Test.java
@@ -13,14 +13,14 @@
 import static org.eclipse.xtext.validation.ValidationMessageAcceptor.INSIGNIFICANT_INDEX;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.protobuf.Syntax;
-
 import org.eclipse.xtext.validation.ValidationMessageAcceptor;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.protobuf.Syntax;
+
 /**
  * Tests for <code>{@link ProtobufJavaValidator#checkSyntaxIsProto2(Syntax)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufJavaValidator_checkSyntaxIsProto2_Test {
@@ -28,21 +28,21 @@
   private Syntax syntax;
   private ValidationMessageAcceptor messageAcceptor;
   private ProtobufJavaValidator validator;
-  
+
   @Before public void setUp() {
     syntax = mock(Syntax.class);
     messageAcceptor = mock(ValidationMessageAcceptor.class);
     validator = new ProtobufJavaValidator();
     validator.setMessageAcceptor(messageAcceptor);
   }
-  
+
   @Test public void should_create_error_if_syntax_is_not_proto2() {
     when(syntax.getName()).thenReturn("proto1");
     validator.checkSyntaxIsProto2(syntax);
     String message = "Unrecognized syntax identifier \"proto1\".  This parser only recognizes \"proto2\".";
     verify(messageAcceptor).acceptError(message, syntax, SYNTAX__NAME, INSIGNIFICANT_INDEX, SYNTAX_IS_NOT_PROTO2_ERROR);
   }
-  
+
   @Test public void should_not_create_error_if_syntax_is_proto2() {
     when(syntax.getName()).thenReturn("proto2");
     validator.checkSyntaxIsProto2(syntax);
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsGreaterThanZero_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsGreaterThanZero_Test.java
index 2a4c399..bd25629 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsGreaterThanZero_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsGreaterThanZero_Test.java
@@ -10,7 +10,7 @@
 
 import static com.google.eclipse.protobuf.junit.core.Setups.unitTestSetup;
 import static com.google.eclipse.protobuf.junit.core.XtextRule.createWith;
-import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.*;
+import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.MESSAGE_FIELD__INDEX;
 import static com.google.eclipse.protobuf.validation.ProtobufJavaValidator.INVALID_FIELD_TAG_NUMBER_ERROR;
 import static org.eclipse.xtext.validation.ValidationMessageAcceptor.INSIGNIFICANT_INDEX;
 import static org.mockito.Mockito.*;
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsUnique_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsUnique_Test.java
index 5497e3a..e8fcb92 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsUnique_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator_checkTagNumberIsUnique_Test.java
@@ -15,12 +15,12 @@
 import static org.eclipse.xtext.validation.ValidationMessageAcceptor.INSIGNIFICANT_INDEX;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.junit.core.XtextRule;
-import com.google.eclipse.protobuf.protobuf.*;
-
 import org.eclipse.xtext.validation.ValidationMessageAcceptor;
 import org.junit.*;
 
+import com.google.eclipse.protobuf.junit.core.XtextRule;
+import com.google.eclipse.protobuf.protobuf.*;
+
 /**
  * Tests for <code>{@link ProtobufJavaValidator#checkTagNumberIsUnique(IndexedElement)}</code>
  *
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder_findRootOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder_findRootOf_Test.java
index 36ea148..53bf906 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder_findRootOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder_findRootOf_Test.java
@@ -12,8 +12,6 @@
 import static org.junit.Assert.*;
 import static org.junit.rules.ExpectedException.none;
 
-import com.google.eclipse.protobuf.ui.builder.protoc.ProtoDescriptorPathFinder;
-
 import org.junit.*;
 import org.junit.rules.ExpectedException;
 
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory_createErrorIfNecessary_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory_createErrorIfNecessary_Test.java
index 090dae6..984fe8e 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory_createErrorIfNecessary_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory_createErrorIfNecessary_Test.java
@@ -19,7 +19,6 @@
 import org.junit.*;
 
 import com.google.eclipse.protobuf.junit.stubs.resources.*;
-import com.google.eclipse.protobuf.ui.builder.protoc.ProtocMarkerFactory;
 
 /**
  * Tests for <code>{@link ProtocMarkerFactory#createErrorIfNecessary(String, String, int)}</code>.
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser_shortestQualifiedNamesIn_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser_shortestQualifiedNamesIn_Test.java
index 501a328..c665c58 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser_shortestQualifiedNamesIn_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser_shortestQualifiedNamesIn_Test.java
@@ -13,18 +13,18 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.mock;
 
-import com.google.eclipse.protobuf.protobuf.Message;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.QualifiedName;
 import org.eclipse.xtext.resource.*;
 import org.junit.*;
 
-import java.util.*;
+import com.google.eclipse.protobuf.protobuf.Message;
 
 /**
  * Tests for <code>{@link IEObjectDescriptionChooser#shortestQualifiedNamesIn(Collection)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class IEObjectDescriptionChooser_shortestQualifiedNamesIn_Test {
@@ -32,7 +32,7 @@
   private List<IEObjectDescription> descriptions;
   private Map<String, String> userData;
   private IEObjectDescriptionChooser chooser;
-  
+
   @Before public void setUp() {
     userData = emptyMap();
     chooser = new IEObjectDescriptionChooser();
@@ -43,7 +43,7 @@
 
   /*
    * Creates IEObjectDescriptions for the given EObject, one per segment in the given qualified name.
-   * 
+   *
    * Example:
    * Given the qualified name "com.google.test.Phone", this method will use these qualified names to create
    * IEObjectDescriptions:
@@ -61,7 +61,7 @@
       descriptions.add(new EObjectDescription(newName, e, userData));
     }
   }
-  
+
   @Test public void should_return_descriptions_with_shortest_QualifiedName() {
     Collection<IEObjectDescription> chosen = chooser.shortestQualifiedNamesIn(descriptions);
     assertThat(chosen, containOnly("EMail", "Phone"));
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionsHaveNames.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionsHaveNames.java
index e6f0b4b..bce9d0b 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionsHaveNames.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionsHaveNames.java
@@ -26,26 +26,34 @@
   public static IEObjectDescriptionsHaveNames containOnly(String...names) {
     return new IEObjectDescriptionsHaveNames(names);
   }
-  
+
   private IEObjectDescriptionsHaveNames(String[] qualifiedNames) {
     this.qualifiedNames = new ArrayList<String>(asList(qualifiedNames));
   }
-  
+
   /** {@inheritDoc} */
-  @Override @SuppressWarnings("unchecked") 
+  @Override @SuppressWarnings("unchecked")
   public boolean matches(Object arg) {
-    if (!(arg instanceof Collection)) return false;
+    if (!(arg instanceof Collection)) {
+      return false;
+    }
     Collection<IEObjectDescription> descriptions = (Collection<IEObjectDescription>) arg;
     List<String> copyOfNames = new ArrayList<String>(qualifiedNames);
-    if (copyOfNames.size() != descriptions.size()) return false;
+    if (copyOfNames.size() != descriptions.size()) {
+      return false;
+    }
     for (IEObjectDescription description : descriptions) {
       QualifiedName qualifiedName = description.getName();
-      if (qualifiedName == null) continue;
-      if (!copyOfNames.remove(qualifiedName.toString())) return false;
+      if (qualifiedName == null) {
+        continue;
+      }
+      if (!copyOfNames.remove(qualifiedName.toString())) {
+        return false;
+      }
     }
     return copyOfNames.isEmpty();
   }
-  
+
   /** {@inheritDoc} */
   @Override public void describeTo(Description description) {
     description.appendValue(qualifiedNames);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider_getDocumentation_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider_getDocumentation_Test.java
index f12f74f..5bb4354 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider_getDocumentation_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider_getDocumentation_Test.java
@@ -17,28 +17,28 @@
 
 /**
  * Tests for <code>{@link ProtobufDocumentationProvider#getDocumentation(EObject)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufDocumentationProvider_getDocumentation_Test {
 
   private static EObject o;
-  
+
   @BeforeClass public static void setUpOnce() {
     o = mock(EObject.class);
   }
-  
+
   private SLCommentDocumentationProvider delegate1;
   private MLCommentDocumentationProvider delegate2;
-  
+
   private ProtobufDocumentationProvider provider;
-  
+
   @Before public void setUp() {
     delegate1 = mock(SLCommentDocumentationProvider.class);
     delegate2 = mock(MLCommentDocumentationProvider.class);
     provider = new ProtobufDocumentationProvider(delegate1, delegate2);
   }
-  
+
   @Test public void should_use_first_delegate_if_it_returns_comment() {
     String comment = "Hello World";
     when(delegate1.getDocumentation(o)).thenReturn(comment);
@@ -46,7 +46,7 @@
     verify(delegate1).getDocumentation(o);
     verifyZeroInteractions(delegate2);
   }
-  
+
   @Test public void should_use_second_delegage_if_first_does_not_return_comment() {
     when(delegate1.getDocumentation(o)).thenReturn("");
     String comment = "Hello World";
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink_open_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink_open_Test.java
index 0ead841..c7901f0 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink_open_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink_open_Test.java
@@ -19,7 +19,7 @@
 
 /**
  * Tests for <code>{@link ImportHyperlink#open()}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ImportHyperlink_open_Test {
@@ -29,14 +29,14 @@
   @BeforeClass public static void setUpOnce() {
     region = mock(IRegion.class);
   }
-  
+
   private FileOpener fileOpener;
   private ImportHyperlink hyperlink;
-  
+
   @Before public void setUp() {
     fileOpener = mock(FileOpener.class);
   }
-  
+
   @Test public void should_open_file_in_workspace() throws Throwable {
     URI uri = createPlatformResourceURI("test.proto", false);
     hyperlink = new ImportHyperlink(uri, region, fileOpener);
@@ -50,7 +50,7 @@
     hyperlink.open();
     verify(fileOpener).openProtoFileInPlugin(uri);
   }
-  
+
   @Test public void should_open_file_in_file_system() throws Throwable {
     URI uri = createFileURI("test.proto");
     hyperlink = new ImportHyperlink(uri, region, fileOpener);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/model/ContentReader_contentsOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/model/ContentReader_contentsOf_Test.java
index d0b00db..29988d0 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/model/ContentReader_contentsOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/editor/model/ContentReader_contentsOf_Test.java
@@ -18,17 +18,17 @@
 
 /**
  * Tests for <code>{@link ContentReader#contentsOf(InputStream)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ContentReader_contentsOf_Test {
 
   private ContentReader reader;
-  
+
   @Before public void setUp() {
     reader = new ContentReader();
   }
-  
+
   @Test public void should_read_InputStream() throws IOException {
     String contents = "Hello \r\n World";
     InputStream input = new StringInputStream(contents);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/BooleanPreference_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/BooleanPreference_Test.java
index f349712..5f54bba 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/BooleanPreference_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/BooleanPreference_Test.java
@@ -16,34 +16,34 @@
 
 /**
  * Tests for <code>{@link BooleanPreference}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class BooleanPreference_Test {
 
   private String name;
   private IPreferenceStore store;
-  
+
   private BooleanPreference preference;
-  
+
   @Before public void setUp() {
     name = "active";
     store = mock(IPreferenceStore.class);
     preference = new BooleanPreference(name, store);
   }
-  
+
   @Test public void should_read_value_from_IPreferenceStore() {
     when(store.getBoolean(name)).thenReturn(true);
     assertTrue(preference.value());
     verify(store).getBoolean(name);
   }
-  
+
   @Test public void should_read_default_value_from_IPreferenceStore() {
     when(store.getDefaultBoolean(name)).thenReturn(true);
     assertTrue(preference.defaultValue());
     verify(store).getDefaultBoolean(name);
   }
-  
+
   @Test public void should_update_value_in_IPreferenceStore() {
     preference.value(true);
     verify(store).setValue(name, true);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_parse_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_parse_Test.java
index bd3a501..6ad7726 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_parse_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_parse_Test.java
@@ -15,7 +15,7 @@
 
 /**
  * Tests for <code>{@link DirectoryPath#parse(String)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class DirectoryPath_parse_Test {
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_toString_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_toString_Test.java
index 0b1d1f5..eb808f8 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_toString_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath_toString_Test.java
@@ -13,11 +13,9 @@
 
 import org.junit.Test;
 
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.DirectoryPath;
-
 /**
  * Tests for <code>{@link DirectoryPath#toString()}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class DirectoryPath_toString_Test {
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectName_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectName_Test.java
index 13c59db..99606dd 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectName_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectName_Test.java
@@ -12,30 +12,28 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.ProjectVariable;
-
 import org.eclipse.core.resources.IProject;
 import org.junit.*;
 
 /**
  * Tests for <code>{@link ProjectVariable#useProjectName(String, IProject)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProjectVariable_useProjectName_Test {
 
   private IProject project;
-  
+
   @Before public void setUp() {
     project = mock(IProject.class);
   }
-  
+
   @Test public void should_use_project_name_if_path_contains_variable() {
     when(project.getName()).thenReturn("test");
     String newPath = ProjectVariable.useProjectName("/${project}/src/test", project);
     assertThat(newPath, equalTo("/test/src/test"));
   }
-  
+
   @Test public void should_not_use_project_name_if_path_does_not_contain_variable() {
     when(project.getName()).thenReturn("test");
     String newPath = ProjectVariable.useProjectName("/main/src/test", project);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectVariable_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectVariable_Test.java
index 96c9c7d..df5ce9e 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectVariable_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable_useProjectVariable_Test.java
@@ -12,32 +12,30 @@
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.*;
 
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.ProjectVariable;
-
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.*;
 import org.junit.*;
 
 /**
  * Tests for <code>{@link ProjectVariable#useProjectVariable(IPath, IProject)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProjectVariable_useProjectVariable_Test {
 
   private IProject project;
-  
+
   @Before public void setUp() {
     project = mock(IProject.class);
   }
-  
+
   @Test public void should_use_variable_if_path_contains_project_name() {
     IPath path = new Path("/test/src/test");
     when(project.getName()).thenReturn("test");
     IPath newPath = ProjectVariable.useProjectVariable(path, project);
     assertThat(newPath.toString(), equalTo("/${project}/src/test"));
   }
-  
+
   @Test public void should_not_use_variable_if_path_does_not_contain_project_name() {
     IPath path = new Path("/main/src/test");
     when(project.getName()).thenReturn("test");
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver_resolveUri_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver_resolveUri_Test.java
index 7ca5aff..3de99ee 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver_resolveUri_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver_resolveUri_Test.java
@@ -60,11 +60,11 @@
     String resolved = resolver.resolveUri("src/proto/read-only/address.proto", resourceUri, preferences);
     assertThat(resolved, equalTo("platform:/resource/src/proto/read-only/address.proto"));
   }
-  
+
   private void expectResolvedPathToBelongToExistingFile() {
     when(resources.fileExists(any(URI.class))).thenReturn(true);
   }
-  
+
   @Test public void should_return_null_if_URI_cannot_be_resolved() {
     when(resources.fileExists(any(URI.class))).thenReturn(false);
     String resolved = resolver.resolveUri("src/proto/read-only/person.proto", resourceUri, preferences);
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Paths_segmentsOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Paths_segmentsOf_Test.java
index 8d5a546..b282816 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Paths_segmentsOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Paths_segmentsOf_Test.java
@@ -25,12 +25,12 @@
   public void should_throw_error_if_path_is_null() {
     Paths.segmentsOf(null);
   }
-  
+
   @Test public void should_separate_segments_using_system_file_separator() {
     String path = "folder1" + separator + "folder1_1" + separator + "folder1_1_1";
     assertThat(Paths.segmentsOf(path), equalTo(new String[] { "folder1" , "folder1_1", "folder1_1_1" }));
   }
-  
+
   @Test public void should_separate_segments_for_path_ending_with_system_file_separator() {
     String path = "folder1" + separator + "folder1_1" + separator;
     assertThat(Paths.segmentsOf(path), equalTo(new String[] { "folder1" , "folder1_1" }));
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_createMarkers_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_createMarkers_Test.java
index ea86f95..2006c77 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_createMarkers_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_createMarkers_Test.java
@@ -12,17 +12,17 @@
 import static java.util.Arrays.asList;
 import static org.mockito.Mockito.*;
 
+import java.util.List;
+
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.*;
 import org.eclipse.xtext.ui.editor.validation.MarkerCreator;
 import org.eclipse.xtext.validation.Issue;
 import org.junit.*;
 
-import java.util.List;
-
 /**
  * Tests for <code>{@link ProtobufResourceUIValidatorExtension#createMarkers(IFile, List, IProgressMonitor)}</code>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufResourceUIValidatorExtension_createMarkers_Test {
@@ -39,13 +39,13 @@
 
   private MarkerCreator markerCreator;
   private ProtobufResourceUIValidatorExtension validator;
-  
+
   @Before public void setUp() {
     markerCreator = mock(MarkerCreator.class);
     validator = new ProtobufResourceUIValidatorExtension();
     validator.markerCreator = markerCreator;
   }
-  
+
   @Test public void should_create_markers_using_proto_editor_marker_type() throws CoreException {
     validator.createMarkers(file, issues, monitor);
     for (Issue issue : issues) {
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_deleteMarkers_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_deleteMarkers_Test.java
index 44a40a1..879bc68 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_deleteMarkers_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/validation/ProtobufResourceUIValidatorExtension_deleteMarkers_Test.java
@@ -20,11 +20,11 @@
 
 /**
  * Tests for <code>{@link ProtobufResourceUIValidatorExtension#deleteMarkers(IFile, CheckMode, IProgressMonitor)}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufResourceUIValidatorExtension_deleteMarkers_Test {
-  
+
   private static CheckMode checkMode;
   private static IProgressMonitor monitor;
 
@@ -35,17 +35,17 @@
 
   private IFile file;
   private ProtobufResourceUIValidatorExtension validator;
-  
+
   @Before public void setUp() {
     file = mock(IFile.class);
     validator = new ProtobufResourceUIValidatorExtension();
   }
-  
+
   @Test public void should_delete_all_xtext_and_protocol_buffer_editor_markers() throws CoreException {
     validator.deleteMarkers(file, checkMode, monitor);
     verifyDeletionOfMarkers(FAST_VALIDATION, NORMAL_VALIDATION, EDITOR_CHECK);
   }
-  
+
   private void verifyDeletionOfMarkers(String...markerTypes) throws CoreException {
     for (String markerType : markerTypes) {
       verify(file).deleteMarkers(markerType, true, DEPTH_ZERO);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
index 9bbaa42..1ad4743 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
@@ -29,8 +29,7 @@
 import com.google.eclipse.protobuf.scoping.IFileUriResolver;
 import com.google.eclipse.protobuf.ui.builder.nature.AutoAddNatureEditorCallback;
 import com.google.eclipse.protobuf.ui.documentation.ProtobufDocumentationProvider;
-import com.google.eclipse.protobuf.ui.editor.FileOutsideWorkspaceIconUpdater;
-import com.google.eclipse.protobuf.ui.editor.ProtobufUriEditorOpener;
+import com.google.eclipse.protobuf.ui.editor.*;
 import com.google.eclipse.protobuf.ui.editor.hyperlinking.ProtobufHyperlinkDetector;
 import com.google.eclipse.protobuf.ui.editor.model.ProtobufDocumentProvider;
 import com.google.eclipse.protobuf.ui.editor.spelling.ProtobufReconciler;
@@ -69,7 +68,7 @@
   public Class<? extends IHighlightingConfiguration> bindHighlightingConfiguration() {
     return HighlightingConfiguration.class;
   }
-  
+
   @Override public Class<? extends IContentOutlinePage> bindIContentOutlinePage() {
     return ProtobufOutlinePage.class;
   }
@@ -77,19 +76,19 @@
   public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProvider() {
     return ProtobufDocumentationProvider.class;
   }
-  
+
   @Override public Class<? extends IHyperlinkDetector> bindIHyperlinkDetector() {
     return ProtobufHyperlinkDetector.class;
   }
-  
+
   public Class<? extends IPreferenceStoreAccess> bindIPreferenceStoreAccess() {
     return PreferenceStoreAccess.class;
   }
-  
+
   @Override public Class<? extends IReconciler> bindIReconciler() {
     return ProtobufReconciler.class;
   }
-  
+
   public Class<? extends IResourceUIValidatorExtension> bindIResourceUIValidatorExtension() {
     return ProtobufResourceUIValidatorExtension.class;
   }
@@ -101,7 +100,7 @@
   @Override public Class<? extends IXtextEditorCallback> bindIXtextEditorCallback() {
     return AutoAddNatureEditorCallback.class;
   }
-  
+
   public Class<? extends XtextDocumentProvider> bindXtextDocumentProvider() {
     return ProtobufDocumentProvider.class;
   }
@@ -117,7 +116,9 @@
   }
 
   @Override public void configureLanguageSpecificURIEditorOpener(Binder binder) {
-    if (!isWorkbenchRunning())return;
+    if (!isWorkbenchRunning()) {
+      return;
+    }
     binder.bind(IURIEditorOpener.class)
           .annotatedWith(LanguageSpecific.class)
           .to(ProtobufUriEditorOpener.class);
@@ -130,7 +131,7 @@
     configurePreferenceInitializer(binder, "pathsPreferences", PathsPreferenceStoreInitializer.class);
     configurePreferenceInitializer(binder, "saveActionsPreferences", SaveActionsPreferenceStoreInitializer.class);
   }
-  
+
   private void configurePreferenceInitializer(Binder binder, String name,
       Class<? extends IPreferenceStoreInitializer> initializerType) {
     binder.bind(IPreferenceStoreInitializer.class).annotatedWith(named(name)).to(initializerType);
@@ -143,7 +144,9 @@
   }
 
   private void setValidationTrigger(IWorkbenchWindow w, AbstractUIPlugin plugin) {
-    if (w == null || !(plugin instanceof ProtobufActivator)) return;
+    if (w == null || !(plugin instanceof ProtobufActivator)) {
+      return;
+    }
     w.getPartService().addPartListener(new ValidateOnActivation());
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/nature/AutoAddNatureEditorCallback.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/nature/AutoAddNatureEditorCallback.java
index cdeffa0..d3464a8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/nature/AutoAddNatureEditorCallback.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/nature/AutoAddNatureEditorCallback.java
@@ -8,19 +8,16 @@
  */
 package com.google.eclipse.protobuf.ui.builder.nature;
 
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.xtext.builder.nature.ToggleXtextNatureAction;
-import org.eclipse.xtext.builder.nature.XtextNature;
-import org.eclipse.xtext.ui.editor.AbstractDirtyStateAwareEditorCallback;
-import org.eclipse.xtext.ui.editor.XtextEditor;
+import org.eclipse.core.resources.*;
+import org.eclipse.xtext.builder.nature.*;
+import org.eclipse.xtext.ui.editor.*;
 
 import com.google.inject.Inject;
 
 /**
  * Automatically adds <code>{@link XtextNature}</code> to a project if needed (e.g. when opening a 'Protocol Buffer'
  * editor for the first time.)
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @SuppressWarnings("restriction")
@@ -31,9 +28,15 @@
   @Override public void afterCreatePartControl(XtextEditor editor) {
     super.afterCreatePartControl(editor);
     IResource resource = editor.getResource();
-    if (resource == null) return;
+    if (resource == null) {
+      return;
+    }
     IProject project = resource.getProject();
-    if (!project.isAccessible() || project.isHidden()) return;
-    if (!xtext.hasNature(project)) xtext.toggleNature(project);
+    if (!project.isAccessible() || project.isHidden()) {
+      return;
+    }
+    if (!xtext.hasNature(project)) {
+      xtext.toggleNature(project);
+    }
   }
 }
\ No newline at end of file
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CodeGenerationErrorParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CodeGenerationErrorParser.java
index 7d1bdfa..a2a381c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CodeGenerationErrorParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CodeGenerationErrorParser.java
@@ -32,7 +32,9 @@
   @Override
   public boolean parseAndAddMarkerIfNecessary(String line, ProtocMarkerFactory markerFactory) throws CoreException {
     Matcher errorMatcher = ERROR_PATTERN.matcher(line);
-    if (!errorMatcher.matches()) return false;
+    if (!errorMatcher.matches()) {
+      return false;
+    }
     markerFactory.createErrorIfNecessary(errorMatcher.group(1), errorMatcher.group(2), -1);
     return true;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CompoundParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CompoundParser.java
index 4a6d464..0d076dd 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CompoundParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/CompoundParser.java
@@ -10,21 +10,25 @@
 
 import static java.util.Arrays.asList;
 
-import org.eclipse.core.runtime.CoreException;
+import java.util.List;
 
-import java.util.*;
+import org.eclipse.core.runtime.CoreException;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
 class CompoundParser implements ProtocOutputParser {
 
-  private static final List<ProtocOutputParser> PARSERS = asList(new LineSpecificErrorParser(), new CodeGenerationErrorParser()); 
-  
-  @Override 
+  private static final List<ProtocOutputParser> PARSERS =
+      asList(new LineSpecificErrorParser(), new CodeGenerationErrorParser());
+
+  @Override
   public boolean parseAndAddMarkerIfNecessary(String line, ProtocMarkerFactory markerFactory) throws CoreException {
-    for (ProtocOutputParser parser: PARSERS)
-      if (parser.parseAndAddMarkerIfNecessary(line, markerFactory)) return true;
+    for (ProtocOutputParser parser: PARSERS) {
+      if (parser.parseAndAddMarkerIfNecessary(line, markerFactory)) {
+        return true;
+      }
+    }
     return false;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/LineSpecificErrorParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/LineSpecificErrorParser.java
index 18745be..0f73849 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/LineSpecificErrorParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/LineSpecificErrorParser.java
@@ -35,8 +35,13 @@
   @Override
   public boolean parseAndAddMarkerIfNecessary(String line, ProtocMarkerFactory markerFactory) throws CoreException {
     Matcher errorMatcher = ERROR_PATTERN.matcher(line);
-    if (!errorMatcher.matches()) return false;
-    markerFactory.createErrorIfNecessary(errorMatcher.group(1), errorMatcher.group(4), parseInt(errorMatcher.group(2)));
+    if (!errorMatcher.matches()) {
+      return false;
+    }
+    String fileName = errorMatcher.group(1);
+    int lineNumber = parseInt(errorMatcher.group(2));
+    String description = errorMatcher.group(4);
+    markerFactory.createErrorIfNecessary(fileName, description, lineNumber);
     return true;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/OutputDirectories.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/OutputDirectories.java
index 3777932..3968f54 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/OutputDirectories.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/OutputDirectories.java
@@ -31,7 +31,9 @@
       throws CoreException {
     Map<SupportedLanguage, IFolder> outputDirectories = new HashMap<SupportedLanguage, IFolder>();
     for (CodeGenerationSetting preference : preferences.allSettings()) {
-      if (!preference.isEnabled()) continue;
+      if (!preference.isEnabled()) {
+        continue;
+      }
       outputDirectories.put(preference.language(), findOrCreateOutputDirectory(project, preference));
     }
     return new OutputDirectories(outputDirectories);
@@ -48,7 +50,9 @@
     for (String segment : segmentsOf(outputFolderName)) {
       path.append(segment);
       outputFolder = project.getFolder(path.toString());
-      if (!outputFolder.exists()) outputFolder.create(true, true, NO_MONITOR);
+      if (!outputFolder.exists()) {
+        outputFolder.create(true, true, NO_MONITOR);
+      }
       path.append(separator);
     }
     return outputFolder;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder.java
index 0a01887..ff6e925 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtoDescriptorPathFinder.java
@@ -22,18 +22,20 @@
 class ProtoDescriptorPathFinder {
 
   private final String descriptorFqn;
-  
+
   ProtoDescriptorPathFinder() {
     this(separator);
   }
-  
+
   @VisibleForTesting
   ProtoDescriptorPathFinder(String fileSeparator) {
     descriptorFqn = concat(fileSeparator, asList("", "google", "protobuf", "descriptor.proto"));
   }
-    
+
   String findRootOf(String descriptorFilePath) {
-    if (isEmpty(descriptorFilePath)) return null;
+    if (isEmpty(descriptorFilePath)) {
+      return null;
+    }
     int indexOfDescriptorFqn = descriptorFilePath.indexOf(descriptorFqn);
     if (indexOfDescriptorFqn == -1) {
       String format = "Path '%s' does not contain '%s'";
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
index 7c7d5bb..91f6d67 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtobufBuildParticipant.java
@@ -16,14 +16,13 @@
 import static org.eclipse.core.resources.IResource.DEPTH_INFINITE;
 
 import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.xtext.builder.IXtextBuilderParticipant;
-import org.eclipse.xtext.resource.IResourceDescription;
+import org.eclipse.xtext.resource.*;
 import org.eclipse.xtext.resource.IResourceDescription.Delta;
 
 import com.google.eclipse.protobuf.ui.preferences.pages.compiler.*;
@@ -46,19 +45,29 @@
   @Override public void build(IBuildContext context, IProgressMonitor monitor) throws CoreException {
     IProject project = context.getBuiltProject();
     CompilerPreferences preferences = compilerPreferencesFactory.preferences(project);
-    if (!preferences.shouldCompileProtoFiles()) return;
+    if (!preferences.shouldCompileProtoFiles()) {
+      return;
+    }
     List<Delta> deltas = context.getDeltas();
-    if (deltas.isEmpty()) return;
+    if (deltas.isEmpty()) {
+      return;
+    }
     OutputDirectories outputDirectories = findOrCreateOutputDirectories(project, preferences.codeGenerationSettings());
     String descriptorPath = descriptorPath(preferences);
     List<String> importRoots = importRoots(project);
     for (Delta d : deltas) {
       IFile source = protoFile(d.getNew(), project);
-      if (source == null) continue;
-      if (importRoots.isEmpty()) importRoots = singleImportRoot(source);
+      if (source == null) {
+        continue;
+      }
+      if (importRoots.isEmpty()) {
+        importRoots = singleImportRoot(source);
+      }
       generateSingleProto(source, preferences.protocPath(), importRoots, descriptorPath, outputDirectories);
     }
-    if (preferences.shouldRefreshResources()) refresh(project, outputDirectories, preferences.refreshTarget(), monitor);
+    if (preferences.shouldRefreshResources()) {
+      refresh(project, outputDirectories, preferences.refreshTarget(), monitor);
+    }
   }
 
   private String descriptorPath(CompilerPreferences preferences) {
@@ -72,7 +81,9 @@
       List<DirectoryPath> directoryPaths = preferences.importRoots();
       for (DirectoryPath path : directoryPaths) {
         String location = path.location(project);
-        if (location != null) paths.add(location);
+        if (location != null) {
+          paths.add(location);
+        }
       }
       return unmodifiableList(paths);
     }
@@ -85,14 +96,23 @@
   }
 
   private static String filePathIfIsProtoFile(IResourceDescription r) {
-    if (r == null) return null;
+    if (r == null) {
+      return null;
+    }
     URI uri = r.getURI();
-    if (!uri.fileExtension().equals("proto")) return null; //$NON-NLS-1$
-    if (uri.scheme() == null) return uri.toFileString();
+    if (!uri.fileExtension().equals("proto"))
+    {
+      return null;
+    }
+    if (uri.scheme() == null) {
+      return uri.toFileString();
+    }
     StringBuilder b = new StringBuilder();
     int segmentCount = uri.segmentCount();
     for (int i = 1; i < segmentCount; i++)
-      b.append("/").append(uri.segment(i)); //$NON-NLS-1$
+     {
+      b.append("/").append(uri.segment(i));
+    }
     return b.length() == 0 ? null : b.toString();
   }
 
@@ -128,7 +148,7 @@
       ProtocMarkerFactory markerFactory = new ProtocMarkerFactory(source);
       while ((line = bufferedReader.readLine()) != null) {
         outputParser.parseAndAddMarkerIfNecessary(line, markerFactory);
-        System.out.println("[protoc] " + line); //$NON-NLS-1$
+        System.out.println("[protoc] " + line);
       }
     } finally {
       close(reader);
@@ -136,7 +156,9 @@
   }
 
   private static void close(Reader reader) {
-    if (reader == null) return;
+    if (reader == null) {
+      return;
+    }
     try {
       reader.close();
     } catch (IOException ignored) {}
@@ -148,7 +170,9 @@
       refresh(project, monitor);
       return;
     }
-    for (IFolder outputDirectory : outputDirectories.values()) refresh(outputDirectory, monitor);
+    for (IFolder outputDirectory : outputDirectories.values()) {
+      refresh(outputDirectory, monitor);
+    }
   }
 
   private static void refresh(IResource target, IProgressMonitor monitor) throws CoreException {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocCommandFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocCommandFactory.java
index f81bb1a..34211c1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocCommandFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocCommandFactory.java
@@ -12,8 +12,7 @@
 
 import java.util.*;
 
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.*;
 import org.eclipse.xtext.util.Strings;
 
 import com.google.eclipse.protobuf.ui.preferences.pages.compiler.SupportedLanguage;
@@ -26,8 +25,9 @@
   private static final Map<SupportedLanguage, String> LANG_OUT_FLAG = new HashMap<SupportedLanguage, String>();
 
   static {
-    for (SupportedLanguage lang : SupportedLanguage.values())
+    for (SupportedLanguage lang : SupportedLanguage.values()) {
       LANG_OUT_FLAG.put(lang, "--" + lang.code() + "_out=");
+    }
   }
 
   String protocCommand(IFile protoFile, String protocPath, List<String> importRoots, String descriptorPath,
@@ -42,7 +42,9 @@
     }
     for (SupportedLanguage language : SupportedLanguage.values()) {
       IFolder outputDirectory = outputDirectories.outputDirectoryFor(language);
-      if (outputDirectory == null) continue;
+      if (outputDirectory == null) {
+        continue;
+      }
       command.append(langOutFlag(language)).append(outputDirectory.getLocation().toOSString()).append(space());
     }
     command.append(protoFile.getLocation().toOSString());
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory.java
index 7470db9..4739f4b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocMarkerFactory.java
@@ -35,7 +35,9 @@
 
   void createErrorIfNecessary(String fileName, String message, int lineNumber) throws CoreException {
     String location = file.getLocation().toOSString();
-    if (!location.endsWith(fileName) || containsMarker(message, lineNumber)) return;
+    if (!location.endsWith(fileName) || containsMarker(message, lineNumber)) {
+      return;
+    }
     IMarker marker = file.createMarker(PROTOC_CHECK);
     marker.setAttribute(SEVERITY, SEVERITY_ERROR);
     marker.setAttribute(MESSAGE, message);
@@ -45,8 +47,9 @@
   private boolean containsMarker(String description, int lineNumber) throws CoreException {
     for (IMarker marker : markers) {
       String markerMessage = (String) marker.getAttribute(MESSAGE);
-      if (markerMessage.equalsIgnoreCase(description) && marker.getAttribute(LINE_NUMBER).equals(lineNumber))
+      if (markerMessage.equalsIgnoreCase(description) && marker.getAttribute(LINE_NUMBER).equals(lineNumber)) {
         return true;
+      }
     }
     return false;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocOutputParser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocOutputParser.java
index 2fae3f1..8b6c6b0 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocOutputParser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/protoc/ProtocOutputParser.java
@@ -8,10 +8,10 @@
  */
 package com.google.eclipse.protobuf.ui.builder.protoc;
 
-import com.google.inject.ImplementedBy;
-
 import org.eclipse.core.runtime.CoreException;
 
+import com.google.inject.ImplementedBy;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/CommentNodesFinder.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/CommentNodesFinder.java
index 9f69203..1c8271c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/CommentNodesFinder.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/CommentNodesFinder.java
@@ -38,15 +38,23 @@
   Pair<INode, Matcher> matchingCommentNode(EObject target, String...patternsToMatch) {
     ICompositeNode node = getNode(target);
     for (INode currentNode : node.getAsTreeIterable()) {
-      if (!nodes.isHiddenLeafNode(currentNode)) continue;
-      if (!nodes.belongsToComment(currentNode)) continue;
+      if (!nodes.isHiddenLeafNode(currentNode)) {
+        continue;
+      }
+      if (!nodes.belongsToComment(currentNode)) {
+        continue;
+      }
       String rawComment = ((ILeafNode) currentNode).getText();
-      if (isEmpty(rawComment)) continue;
+      if (isEmpty(rawComment)) {
+        continue;
+      }
       String[] comment = rawComment.split(lineSeparator());
       for (String line : comment) {
         for (Pattern pattern : compile(patternsToMatch, target)) {
           Matcher matcher = pattern.matcher(line);
-          if (matcher.matches()) return pair(currentNode, matcher);
+          if (matcher.matches()) {
+            return pair(currentNode, matcher);
+          }
         }
       }
     }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartInsertHandler.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartInsertHandler.java
index 30dace2..2ba35b2 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartInsertHandler.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartInsertHandler.java
@@ -25,13 +25,17 @@
   /** {@inheritDoc} */
   @Override public final Object execute(ExecutionEvent event) {
     XtextEditor activeEditor = getActiveXtextEditor();
-    if (activeEditor != null) insertContent(activeEditor, styledTextFrom(activeEditor));
+    if (activeEditor != null) {
+      insertContent(activeEditor, styledTextFrom(activeEditor));
+    }
     return null;
   }
 
   private StyledText styledTextFrom(XtextEditor editor) {
     Object adapter = editor.getAdapter(Control.class);
-    if (adapter instanceof StyledText) return (StyledText) adapter;
+    if (adapter instanceof StyledText) {
+      return (StyledText) adapter;
+    }
     return null;
   }
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartSemicolonHandler.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartSemicolonHandler.java
index 9dedf95..286bd9e 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartSemicolonHandler.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/SmartSemicolonHandler.java
@@ -31,7 +31,7 @@
 import com.google.eclipse.protobuf.model.util.*;
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.ui.preferences.pages.editor.numerictag.*;
-import com.google.eclipse.protobuf.ui.util.*;
+import com.google.eclipse.protobuf.ui.util.Literals;
 import com.google.inject.Inject;
 
 /**
@@ -78,7 +78,9 @@
   }
 
   private ContentToInsert newContent(final XtextEditor editor, final StyledText styledText, final String line) {
-    if (line.endsWith(SEMICOLON)) return INSERT_SEMICOLON_AT_CURRENT_LOCATION;
+    if (line.endsWith(SEMICOLON)) {
+      return INSERT_SEMICOLON_AT_CURRENT_LOCATION;
+    }
     final IXtextDocument document = editor.getDocument();
     try {
       return document.modify(new IUnitOfWork<ContentToInsert, XtextResource>() {
@@ -86,7 +88,9 @@
           int offset = styledText.getCaretOffset();
           ContentAssistContext[] context = contextFactory.create(editor.getInternalSourceViewer(), offset, resource);
           for (ContentAssistContext c : context) {
-            if (nodes.belongsToCommentOrString(c.getCurrentNode())) continue;
+            if (nodes.belongsToCommentOrString(c.getCurrentNode())) {
+              continue;
+            }
             EObject model = modelFrom(c);
             if (model instanceof FieldOption) {
               FieldOption option = (FieldOption) model;
@@ -124,14 +128,16 @@
 
   private EObject modelFrom(ContentAssistContext c) {
     EObject current = c.getCurrentModel();
-    if (isIndexed(current)) return current;
+    if (isIndexed(current)) {
+      return current;
+    }
     return c.getPreviousModel();
   }
 
   private boolean isIndexed(EObject e) {
     return e instanceof MessageField || e instanceof Literal;
   }
-  
+
   private ContentToInsert newContent(Literal literal) {
     INode indexNode = nodes.firstNodeForFeature(literal, LITERAL__INDEX);
     ContentToInsert content = newContent(indexNode);
@@ -153,11 +159,15 @@
 
   private void updateIndexInCommentOfParent(EObject o, long index, IXtextDocument document) {
     EObject parent = o.eContainer();
-    if (parent == null) return;
+    if (parent == null) {
+      return;
+    }
     NumericTagPreferences preferences = preferencesFactory.preferences();
     for (String pattern : preferences.patterns()) {
       Pair<INode, Matcher> match = commentNodesFinder.matchingCommentNode(parent, pattern);
-      if (match == null) return;
+      if (match == null) {
+        return;
+      }
       String original = match.getSecond().group();
       String replacement = NUMBERS_PATTERN.matcher(original).replaceFirst(String.valueOf(index + 1));
       INode node = match.getFirst();
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser.java
index 5345983..e88afea 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/contentassist/IEObjectDescriptionChooser.java
@@ -10,26 +10,30 @@
 
 import static java.util.Collections.*;
 
+import java.util.*;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.QualifiedName;
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
-
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
 class IEObjectDescriptionChooser {
 
   Collection<IEObjectDescription> shortestQualifiedNamesIn(Collection<IEObjectDescription> descriptions) {
-    if (descriptions.isEmpty()) return emptySet();
+    if (descriptions.isEmpty()) {
+      return emptySet();
+    }
     Map<EObject, IEObjectDescription> shortestOnes = new HashMap<EObject, IEObjectDescription>();
     for (IEObjectDescription d : descriptions) {
       EObject e = d.getEObjectOrProxy();
       IEObjectDescription stored = shortestOnes.get(e);
       if (stored != null) {
         QualifiedName currentName = d.getName();
-        if (currentName.getSegmentCount() >= stored.getName().getSegmentCount()) continue; 
+        if (currentName.getSegmentCount() >= stored.getName().getSegmentCount()) {
+          continue;
+        }
       }
       shortestOnes.put(e, d);
     }
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 1a8d68f..a2ccd53 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
@@ -74,7 +74,9 @@
 
   @Override public void completeComplexTypeLink_Target(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof MessageField)) return;
+    if (!(model instanceof MessageField)) {
+      return;
+    }
     Collection<IEObjectDescription> scope = scoping().allPossibleTypesFor((MessageField) model);
     for (IEObjectDescription d : descriptionChooser.shortestQualifiedNamesIn(scope)) {
       Image image = imageHelper.getImage(images.imageFor(d.getEObjectOrProxy()));
@@ -94,7 +96,7 @@
       proposeAndAccept(d, image, context, acceptor);
     }
   }
-  
+
   @Override public void completeMessageLink_Target(EObject model, Assignment assignment, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
     Collection<IEObjectDescription> scope = emptySet();
@@ -112,19 +114,25 @@
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     ProtoDescriptor descriptor = descriptorProvider.primaryDescriptor();
     Collection<MessageField> optionProperties = descriptor.availableOptionsFor(model);
-    if (!optionProperties.isEmpty()) proposeOptions(optionProperties, context, acceptor);
+    if (!optionProperties.isEmpty()) {
+      proposeOptions(optionProperties, context, acceptor);
+    }
   }
 
   private void proposeOptions(Collection<MessageField> optionSources, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    for (MessageField source : optionSources) proposeOption(source, context, acceptor);
+    for (MessageField source : optionSources) {
+      proposeOption(source, context, acceptor);
+    }
   }
 
   @Override public void completeNativeOption_Value(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     NativeOption option = (NativeOption) model;
     MessageField optionSource = (MessageField) options.rootSourceOf(option);
-    if (optionSource == null) return;
+    if (optionSource == null) {
+      return;
+    }
     ProtoDescriptor descriptor = descriptorProvider.primaryDescriptor();
     Enum enumType = descriptor.enumTypeOf(optionSource);
     if (enumType != null) {
@@ -142,14 +150,20 @@
 
   @Override public void completeKeyword(Keyword keyword, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    if (keyword == null) return;
+    if (keyword == null) {
+      return;
+    }
     boolean proposalWasHandledAlready = completeKeyword(keyword.getValue(), context, acceptor);
-    if (proposalWasHandledAlready) return;
+    if (proposalWasHandledAlready) {
+      return;
+    }
     super.completeKeyword(keyword, context, acceptor);
   }
 
   private boolean completeKeyword(String keyword, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (isLastWordFromCaretPositionEqualTo(keyword, context)) return true;
+    if (isLastWordFromCaretPositionEqualTo(keyword, context)) {
+      return true;
+    }
     if (EQUAL.hasValue(keyword)) {
       EObject grammarElement = context.getLastCompleteNode().getGrammarElement();
       if (isKeyword(grammarElement, SYNTAX)) {
@@ -185,7 +199,9 @@
     StyledText styledText = context.getViewer().getTextWidget();
     int valueLength = word.length();
     int start = styledText.getCaretOffset() - valueLength;
-    if (start < 0) return false;
+    if (start < 0) {
+      return false;
+    }
     String previousWord = styledText.getTextRange(start, valueLength);
     return word.equals(previousWord);
   }
@@ -215,23 +231,31 @@
 
   private MessageField fieldFrom(ContentAssistContext context) {
     EObject model = context.getCurrentModel();
-    if (model instanceof MessageField) return (MessageField) model;
+    if (model instanceof MessageField) {
+      return (MessageField) model;
+    }
     if (model instanceof Option) {
       Option option = (Option) model;
       IndexedElement source = options.rootSourceOf(option);
-      if (source instanceof MessageField) return (MessageField) source;
+      if (source instanceof MessageField) {
+        return (MessageField) source;
+      }
     }
     if (model instanceof FieldOption) {
       FieldOption option = (FieldOption) model;
       IndexedElement source = fieldOptions.rootSourceOf(option);
-      if (source instanceof MessageField) return (MessageField) source;
+      if (source instanceof MessageField) {
+        return (MessageField) source;
+      }
     }
     return null;
   }
 
   private boolean proposeOpeningBracket(ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     EObject model = context.getCurrentModel();
-    if (model instanceof ComplexValue) return true;
+    if (model instanceof ComplexValue) {
+      return true;
+    }
     if (model instanceof MessageField) {
       MessageField field = (MessageField) model;
       Modifier modifier = field.getModifier();
@@ -252,8 +276,12 @@
   private <T> T extractElementFromContext(ContentAssistContext context, Class<T> type) {
     EObject model = context.getCurrentModel();
     // this is most likely a bug in Xtext:
-    if (!type.isInstance(model)) model = context.getPreviousModel();
-    if (!type.isInstance(model)) return null;
+    if (!type.isInstance(model)) {
+      model = context.getPreviousModel();
+    }
+    if (!type.isInstance(model)) {
+      return null;
+    }
     return type.cast(model);
   }
 
@@ -273,8 +301,12 @@
     if (model instanceof DefaultValueFieldOption) {
       field = (MessageField) model.eContainer();
     }
-    if (field == null) return;
-    if (!messageFields.isOptional(field)) return;
+    if (field == null) {
+      return;
+    }
+    if (!messageFields.isOptional(field)) {
+      return;
+    }
     Enum enumType = finder.enumTypeOf(field);
     if (enumType != null) {
       proposeAndAccept(enumType, context, acceptor);
@@ -297,9 +329,13 @@
     int index = 1;
     String name = typeName + index;
     for (EObject o : model.eContainer().eContents()) {
-      if (o == model || !(o instanceof MessageField)) continue;
+      if (o == model || !(o instanceof MessageField)) {
+        continue;
+      }
       MessageField field = (MessageField) o;
-      if (!name.equals(field.getName())) continue;
+      if (!name.equals(field.getName())) {
+        continue;
+      }
       name = typeName + (++index);
     }
     proposeAndAccept(name, context, acceptor);
@@ -333,25 +369,34 @@
     ProtoDescriptor descriptor = descriptorProvider.primaryDescriptor();
     for (MessageField optionSource : descriptor.availableOptionsFor(field)) {
       String optionName = optionSource.getName();
-      if (optionNames.contains(optionName) || ("packed".equals(optionName) && !canBePacked(field))) continue;
+      if (optionNames.contains(optionName) || ("packed".equals(optionName) && !canBePacked(field))) {
+        continue;
+      }
       proposeOption(optionSource, context, acceptor);
     }
   }
 
   private List<String> existingFieldOptionNames(IndexedElement e) {
     List<FieldOption> allFieldOptions = indexedElements.fieldOptionsOf(e);
-    if (allFieldOptions.isEmpty()) return emptyList();
+    if (allFieldOptions.isEmpty()) {
+      return emptyList();
+    }
     List<String> optionNames = new ArrayList<String>();
-    for (FieldOption option : allFieldOptions)
+    for (FieldOption option : allFieldOptions) {
       optionNames.add(fieldOptions.nameOf(option));
+    }
     return optionNames;
   }
 
   private void proposeDefaultKeyword(IndexedElement e, List<String> existingOptionNames, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    if (!(e instanceof MessageField)) return;
+    if (!(e instanceof MessageField)) {
+      return;
+    }
     MessageField field = (MessageField) e;
-    if (!messageFields.isOptional(field) || existingOptionNames.contains(DEFAULT.toString())) return;
+    if (!messageFields.isOptional(field) || existingOptionNames.contains(DEFAULT.toString())) {
+      return;
+    }
     CompoundElement display = DEFAULT_EQUAL;
     int cursorPosition = display.charCount();
     if (messageFields.isString(field)) {
@@ -362,7 +407,9 @@
   }
 
   private boolean canBePacked(IndexedElement e) {
-    if (!(e instanceof MessageField)) return false;
+    if (!(e instanceof MessageField)) {
+      return false;
+    }
     MessageField field = (MessageField) e;
     return messageFields.isPrimitive(field) && REPEATED.equals(field.getModifier());
   }
@@ -372,7 +419,9 @@
     String displayString = optionSource.getName();
     String proposalText = displayString + space() + EQUAL + space();
     Object value = defaultValueOf(optionSource);
-    if (value != null) proposalText = proposalText + value;
+    if (value != null) {
+      proposalText = proposalText + value;
+    }
     ICompletionProposal proposal = createCompletionProposal(proposalText, displayString, imageForOption(), context);
     if (value == EMPTY_STRING && proposal instanceof ConfigurableCompletionProposal) {
       // set cursor between the proposal's quotes
@@ -383,8 +432,12 @@
   }
 
   private Object defaultValueOf(MessageField field) {
-    if (messageFields.isBool(field)) return TRUE;
-    if (messageFields.isString(field)) return EMPTY_STRING;
+    if (messageFields.isBool(field)) {
+      return TRUE;
+    }
+    if (messageFields.isString(field)) {
+      return EMPTY_STRING;
+    }
     return null;
   }
 
@@ -397,14 +450,20 @@
     if (model instanceof MessageField) {
       field = (MessageField) model;
     }
-    if (field == null) return;
-    if (!messageFields.isOptional(field)) return;
+    if (field == null) {
+      return;
+    }
+    if (!messageFields.isOptional(field)) {
+      return;
+    }
     proposeFieldValue(field, context, acceptor);
   }
 
   @Override public void completeNativeFieldOption_Value(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof NativeFieldOption)) return;
+    if (!(model instanceof NativeFieldOption)) {
+      return;
+    }
     NativeFieldOption option = (NativeFieldOption) model;
     ProtoDescriptor descriptor = descriptorProvider.primaryDescriptor();
     MessageField field = (MessageField) fieldOptions.rootSourceOf(option);
@@ -436,8 +495,9 @@
 
   private void proposeAndAccept(CommonKeyword[] keywords, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    for (CommonKeyword keyword : keywords)
+    for (CommonKeyword keyword : keywords) {
       proposeAndAccept(keyword.toString(), context, acceptor);
+    }
   }
 
   private void proposeEmptyString(ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
@@ -456,7 +516,9 @@
 
   @Override public void completeCustomOption_Source(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof CustomOption)) return;
+    if (!(model instanceof CustomOption)) {
+      return;
+    }
     CustomOption option = (CustomOption) model;
     Collection<IEObjectDescription> scope = scoping().allPossibleSourcesOf(option);
     proposeAndAcceptOptions(scope, context, acceptor);
@@ -464,7 +526,9 @@
 
   @Override public void completeCustomFieldOption_Source(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof CustomFieldOption)) return;
+    if (!(model instanceof CustomFieldOption)) {
+      return;
+    }
     CustomFieldOption option = (CustomFieldOption) model;
     Collection<IEObjectDescription> scope = scoping().allPossibleSourcesOf(option);
     proposeAndAcceptOptions(scope, context, acceptor);
@@ -488,7 +552,9 @@
 
   @Override public void completeCustomOption_Fields(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof CustomOption)) return;
+    if (!(model instanceof CustomOption)) {
+      return;
+    }
     CustomOption option = (CustomOption) model;
     proposeAndAccept(scoping().allPossibleNormalFieldsOf(option), context, acceptor);
     proposeAndAccept(scoping().allPossibleExtensionFieldsOf(option), "(%s)", "(%s)", context, acceptor);
@@ -496,7 +562,9 @@
 
   @Override public void completeCustomFieldOption_Fields(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof CustomFieldOption)) return;
+    if (!(model instanceof CustomFieldOption)) {
+      return;
+    }
     CustomFieldOption option = (CustomFieldOption) model;
     proposeAndAccept(scoping().allPossibleNormalFieldsOf(option), context, acceptor);
     proposeExtensionFields(scoping().allPossibleExtensionFieldsOf(option), context, acceptor);
@@ -533,10 +601,14 @@
 
   @Override public void completeCustomOption_Value(EObject model, Assignment assignment, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof CustomOption)) return;
+    if (!(model instanceof CustomOption)) {
+      return;
+    }
     CustomOption option = (CustomOption) model;
     IndexedElement e = options.lastFieldSourceFrom(option);
-    if (e == null) e = options.rootSourceOf(option);
+    if (e == null) {
+      e = options.rootSourceOf(option);
+    }
     if (e instanceof MessageField) {
       proposeFieldValue((MessageField) e, context, acceptor);
     }
@@ -545,10 +617,14 @@
   @Override public void completeCustomFieldOption_Value(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     // TODO content assist returns "{"
-    if (!(model instanceof CustomFieldOption)) return;
+    if (!(model instanceof CustomFieldOption)) {
+      return;
+    }
     CustomFieldOption option = (CustomFieldOption) model;
     IndexedElement e = fieldOptions.sourceOfLastFieldIn(option);
-    if (e == null) e = fieldOptions.rootSourceOf(option);
+    if (e == null) {
+      e = fieldOptions.rootSourceOf(option);
+    }
     if (e instanceof MessageField) {
       proposeFieldValue((MessageField) e, context, acceptor);
     }
@@ -556,8 +632,12 @@
 
   private void proposeFieldValue(MessageField field, ContentAssistContext context,
       ICompletionProposalAcceptor acceptor) {
-    if (field == null) return;
-    if (proposePrimitiveValues(field, context, acceptor)) return;
+    if (field == null) {
+      return;
+    }
+    if (proposePrimitiveValues(field, context, acceptor)) {
+      return;
+    }
     Enum enumType = finder.enumTypeOf(field);
     if (enumType != null) {
       proposeAndAccept(enumType, context, acceptor);
@@ -566,8 +646,9 @@
 
   private void proposeAndAccept(Enum enumType, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
     Image image = imageHelper.getImage(images.imageFor(Literal.class));
-    for (Literal literal : getAllContentsOfType(enumType, Literal.class))
+    for (Literal literal : getAllContentsOfType(enumType, Literal.class)) {
       proposeAndAccept(literal.getName(), image, context, acceptor);
+    }
   }
 
   @Override public void completeNormalFieldName_Target(EObject model, Assignment assignment,
@@ -580,7 +661,9 @@
 
   @Override public void completeSimpleValueField_Value(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof SimpleValueField)) return;
+    if (!(model instanceof SimpleValueField)) {
+      return;
+    }
     SimpleValueField field = (SimpleValueField) model;
     FieldName name = field.getName();
     if (name != null) {
@@ -590,7 +673,9 @@
 
   @Override public void completeSimpleValueField_Name(EObject model, Assignment assignment,
       ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-    if (!(model instanceof ComplexValue)) return;
+    if (!(model instanceof ComplexValue)) {
+      return;
+    }
     ComplexValue value = (ComplexValue) model;
     proposeAndAccept(scoping().allPossibleNamesOfNormalFieldsOf(value), "%s:", null, context, acceptor);
     proposeAndAccept(scoping().allPossibleNamesOfExtensionFieldsOf(value), "[%s]:", "[%s]", context, acceptor);
@@ -633,7 +718,9 @@
   @Override public ICompletionProposal createCompletionProposal(String proposal, String displayString, Image image,
       ContentAssistContext contentAssistContext) {
     StyledString styled = null;
-    if (displayString != null) styled = new StyledString(displayString);
+    if (displayString != null) {
+      styled = new StyledString(displayString);
+    }
     int priority = getPriorityHelper().getDefaultPriority();
     String prefix = contentAssistContext.getPrefix();
     return createCompletionProposal(proposal, styled, image, priority, prefix, contentAssistContext);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/MLCommentDocumentationProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/MLCommentDocumentationProvider.java
index 07fefb2..ff49697 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/MLCommentDocumentationProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/MLCommentDocumentationProvider.java
@@ -42,11 +42,17 @@
   private String findComment(EObject o) {
     String returnValue = null;
     ICompositeNode node = getNode(o);
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     // get the last multiple-line comment before a non hidden leaf node
     for (INode currentNode : node.getAsTreeIterable()) {
-        if (!nodes.isHiddenLeafNode(currentNode)) continue;
-        if (!nodes.belongsToMultipleLineComment(currentNode)) continue;
+        if (!nodes.isHiddenLeafNode(currentNode)) {
+          continue;
+        }
+        if (!nodes.belongsToMultipleLineComment(currentNode)) {
+          continue;
+        }
         String text = ((ILeafNode) currentNode).getText();
         if (COMMENT.matcher(text).matches()) {
           returnValue = cleanUp(text);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider.java
index 2fd0b0e..2ea544c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/ProtobufDocumentationProvider.java
@@ -37,7 +37,9 @@
   @Override public String getDocumentation(EObject o) {
     for (IEObjectDocumentationProvider p: delegates) {
       String documentation = p.getDocumentation(o);
-      if (!(isEmpty(documentation))) return documentation;
+      if (!(isEmpty(documentation))) {
+        return documentation;
+      }
     }
     return "";
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/SLCommentDocumentationProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/SLCommentDocumentationProvider.java
index a816c71..94b939c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/SLCommentDocumentationProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/documentation/SLCommentDocumentationProvider.java
@@ -46,11 +46,17 @@
   private String findComment(EObject o) {
     EObject target = findRealTarget(o);
     ICompositeNode node = getNode(target);
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     StringBuilder commentBuilder = new StringBuilder();
     for (INode currentNode : node.getAsTreeIterable()) {
-      if (!nodes.isHiddenLeafNode(currentNode)) continue;
-      if (!nodes.belongsToSingleLineComment(currentNode)) continue;
+      if (!nodes.isHiddenLeafNode(currentNode)) {
+        continue;
+      }
+      if (!nodes.belongsToSingleLineComment(currentNode)) {
+        continue;
+      }
       String comment = ((ILeafNode) currentNode).getText();
       commentBuilder.append(cleanUp(comment));
     }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOpener.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOpener.java
index c2653de..56eaa3c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOpener.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOpener.java
@@ -8,8 +8,7 @@
  */
 package com.google.eclipse.protobuf.ui.editor;
 
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.filesystem.*;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.URI;
@@ -18,8 +17,7 @@
 import org.eclipse.ui.part.FileEditorInput;
 
 import com.google.eclipse.protobuf.ui.util.Resources;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
+import com.google.inject.*;
 
 /**
  * Utility methods related to open file from different type of locations.
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOutsideWorkspaceIconUpdater.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOutsideWorkspaceIconUpdater.java
index d33862a..a529ac1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOutsideWorkspaceIconUpdater.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/FileOutsideWorkspaceIconUpdater.java
@@ -12,17 +12,14 @@
 import static org.eclipse.xtext.ui.editor.Messages.XtextEditorErrorTickUpdater_JobName;

 

 import org.eclipse.core.resources.IResource;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.IStatus;

+import org.eclipse.core.runtime.*;

 import org.eclipse.core.runtime.jobs.ISchedulingRule;

 import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.IEditorInput;

-import org.eclipse.ui.IEditorSite;

+import org.eclipse.ui.*;

 import org.eclipse.ui.progress.UIJob;

 import org.eclipse.xtext.ui.PluginImageHelper;

 import org.eclipse.xtext.ui.editor.IXtextEditorCallback.NullImpl;

-import org.eclipse.xtext.ui.editor.SchedulingRuleFactory;

-import org.eclipse.xtext.ui.editor.XtextEditor;

+import org.eclipse.xtext.ui.editor.*;

 

 import com.google.inject.Inject;

 

diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/ProtobufUriEditorOpener.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/ProtobufUriEditorOpener.java
index c529cc8..db27f3e 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/ProtobufUriEditorOpener.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/ProtobufUriEditorOpener.java
@@ -13,8 +13,7 @@
 import org.apache.log4j.Logger;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.*;
 import org.eclipse.xtext.ui.editor.LanguageSpecificURIEditorOpener;
 
 import com.google.inject.Inject;
@@ -43,10 +42,12 @@
   }
 
   private IEditorPart editorFor(URI uri) throws PartInitException {
-    if (uri.isFile())
+    if (uri.isFile()) {
       return fileOpener.openProtoFileInFileSystem(uri);
-    if (uri.isPlatformPlugin())
+    }
+    if (uri.isPlatformPlugin()) {
       return fileOpener.openProtoFileInPlugin(uri);
+    }
     return null;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/UriEditorInput.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/UriEditorInput.java
index fcfc111..638e17b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/UriEditorInput.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/UriEditorInput.java
@@ -8,11 +8,12 @@
  */
 package com.google.eclipse.protobuf.ui.editor;
 
+import static com.google.eclipse.protobuf.util.Objects.*;
+
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.*;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -56,25 +57,25 @@
     return fileUri;
   }
 
-  @Override public int hashCode() {
-    final int prime = 31;
-    int result = 1;
-    result = prime * result + ((name == null) ? 0 : name.hashCode());
-    result = prime * result + ((fileUri == null) ? 0 : fileUri.hashCode());
-    return result;
+  @Override public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
+    }
+    if (obj == null || getClass() != obj.getClass()) {
+      return false;
+    }
+    UriEditorInput other = (UriEditorInput) obj;
+    if (!areEqual(name, other.name)) {
+      return false;
+    }
+    return areEqual(fileUri, other.fileUri);
   }
 
-  @Override public boolean equals(Object obj) {
-    if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
-    UriEditorInput other = (UriEditorInput) obj;
-    if (name == null) {
-      if (other.name != null) return false;
-    } else if (!name.equals(other.name)) return false;
-    if (fileUri == null) {
-      if (other.fileUri != null) return false;
-    } else if (!fileUri.equals(other.fileUri)) return false;
-    return true;
+  @Override public int hashCode() {
+    final int prime = HASH_CODE_PRIME;
+    int result = 1;
+    result = prime * result + hashCodeOf(name);
+    result = prime * result + hashCodeOf(fileUri);
+    return result;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
index 3022d5a..9fabec3 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ImportHyperlink.java
@@ -45,7 +45,9 @@
         fileOpener.openProtoFileInPlugin(importUri);
         return;
       }
-      if (importUri.isFile()) fileOpener.openProtoFileInFileSystem(importUri);
+      if (importUri.isFile()) {
+        fileOpener.openProtoFileInFileSystem(importUri);
+      }
     } catch (PartInitException e) {
       logger.error("Unable to open " + importUri.toString(), e);
     }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
index dfafa37..255023d 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/hyperlinking/ProtobufHyperlinkDetector.java
@@ -8,13 +8,9 @@
  */
 package com.google.eclipse.protobuf.ui.editor.hyperlinking;
 
+import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.IMPORT__IMPORT_URI;
 import static org.eclipse.emf.common.util.URI.createURI;
 
-import com.google.eclipse.protobuf.model.util.INodes;
-import com.google.eclipse.protobuf.protobuf.Import;
-import com.google.eclipse.protobuf.ui.editor.FileOpener;
-import com.google.inject.Inject;
-
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.text.*;
 import org.eclipse.jface.text.hyperlink.*;
@@ -24,7 +20,11 @@
 import org.eclipse.xtext.ui.editor.hyperlinking.DefaultHyperlinkDetector;
 import org.eclipse.xtext.ui.editor.model.IXtextDocument;
 import org.eclipse.xtext.util.concurrent.IUnitOfWork;
-import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.*;
+
+import com.google.eclipse.protobuf.model.util.INodes;
+import com.google.eclipse.protobuf.protobuf.Import;
+import com.google.eclipse.protobuf.ui.editor.FileOpener;
+import com.google.inject.Inject;
 
 
 /**
@@ -45,7 +45,9 @@
       final boolean canShowMultipleHyperlinks) {
     IXtextDocument document = (IXtextDocument)textViewer.getDocument();
     IHyperlink[] importHyperlinks = importHyperlinks(document, region);
-    if (importHyperlinks != NO_HYPERLINKS) return importHyperlinks;
+    if (importHyperlinks != NO_HYPERLINKS) {
+      return importHyperlinks;
+    }
     return document.readOnly(new IUnitOfWork<IHyperlink[], XtextResource>() {
       @Override public IHyperlink[] exec(XtextResource resource) {
         return getHelper().createHyperlinksByOffset(resource, region.getOffset(), canShowMultipleHyperlinks);
@@ -57,31 +59,41 @@
     return document.readOnly(new IUnitOfWork<IHyperlink[], XtextResource>() {
       @Override public IHyperlink[] exec(XtextResource resource) {
         EObject resolved = eObjectAtOffsetHelper.resolveElementAt(resource, region.getOffset());
-        if (!(resolved instanceof Import)) return NO_HYPERLINKS;
+        if (!(resolved instanceof Import)) {
+          return NO_HYPERLINKS;
+        }
         Import anImport = (Import) resolved;
         String importUri = rawUriIn(anImport);
-        if (importUri == null) return NO_HYPERLINKS;
+        if (importUri == null) {
+          return NO_HYPERLINKS;
+        }
         IRegion importUriRegion;
         try {
           importUriRegion = importUriRegion(document, region.getOffset(), importUri);
         } catch (BadLocationException e) {
           return NO_HYPERLINKS;
         }
-        if (importUriRegion == null) return NO_HYPERLINKS;
+        if (importUriRegion == null) {
+          return NO_HYPERLINKS;
+        }
         IHyperlink hyperlink = new ImportHyperlink(createURI(anImport.getImportURI()), importUriRegion, fileOpener);
         return new IHyperlink[] { hyperlink };
       }
     });
   }
-  
+
   private String rawUriIn(Import anImport) {
     INode node = nodes.firstNodeForFeature(anImport, IMPORT__IMPORT_URI);
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     String text = node.getText();
-    if (text == null || text.length() < 3) return null;
+    if (text == null || text.length() < 3) {
+      return null;
+    }
     return text.substring(1, text.length() - 1); // remove quotes
   }
-  
+
   private IRegion importUriRegion(IXtextDocument document, int offset, String importUri) throws BadLocationException {
     int lineNumber = document.getLineOfOffset(offset);
     int lineLength = document.getLineLength(lineNumber);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/DocumentContentsFactoryRegistry.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/DocumentContentsFactoryRegistry.java
index d8c1b1d..6915b11 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/DocumentContentsFactoryRegistry.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/DocumentContentsFactoryRegistry.java
@@ -8,8 +8,7 @@
  */
 package com.google.eclipse.protobuf.ui.editor.model;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 import org.eclipse.ui.IEditorInput;
 
@@ -29,10 +28,14 @@
   }
 
   DocumentContentsFactory findFactory(Object element) {
-    if (!(element instanceof IEditorInput)) return null;
+    if (!(element instanceof IEditorInput)) {
+      return null;
+    }
     IEditorInput input = (IEditorInput) element;
     for (DocumentContentsFactory factory : factories) {
-      if (factory.supportsEditorInputType(input)) return factory;
+      if (factory.supportsEditorInputType(input)) {
+        return factory;
+      }
     }
     return null;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/ProtobufDocumentProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/ProtobufDocumentProvider.java
index f0d832d..5af5872 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/ProtobufDocumentProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/ProtobufDocumentProvider.java
@@ -16,26 +16,17 @@
 import static org.eclipse.core.filebuffers.LocationKind.*;
 import static org.eclipse.text.undo.DocumentUndoManagerRegistry.getDocumentUndoManager;
 
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
+import org.eclipse.core.filebuffers.*;
+import org.eclipse.core.runtime.*;
+import org.eclipse.jface.text.*;
 import org.eclipse.jface.text.source.IAnnotationModel;
 import org.eclipse.text.edits.TextEdit;
 import org.eclipse.text.undo.IDocumentUndoManager;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.xtext.ui.editor.model.XtextDocument;
-import org.eclipse.xtext.ui.editor.model.XtextDocumentProvider;
+import org.eclipse.ui.*;
+import org.eclipse.xtext.ui.editor.model.*;
 
-import com.google.eclipse.protobuf.ui.preferences.pages.editor.save.SaveActionsPreferences;
+import com.google.eclipse.protobuf.ui.preferences.pages.editor.save.*;
 import com.google.eclipse.protobuf.ui.preferences.pages.editor.save.SaveActionsPreferences.RemoveTrailingSpace;
-import com.google.eclipse.protobuf.ui.preferences.pages.editor.save.SaveActionsPreferencesFactory;
 import com.google.eclipse.protobuf.ui.util.editor.Editors;
 import com.google.inject.Inject;
 
@@ -45,14 +36,16 @@
 public class ProtobufDocumentProvider extends XtextDocumentProvider {
 
   private static final IRegion[] NO_CHANGE = new IRegion[0];
-  
+
   @Inject private Editors editors;
   @Inject private DocumentContentsFactoryRegistry documentContentsFactories;
-  @Inject private SaveActionsPreferencesFactory preferencesFactory;  
+  @Inject private SaveActionsPreferencesFactory preferencesFactory;
   @Inject private SaveActions saveActions;
 
   @Override protected ElementInfo createElementInfo(Object element) throws CoreException {
-    if (documentContentsFactories.findFactory(element) != null) return createElementInfo((IEditorInput) element);
+    if (documentContentsFactories.findFactory(element) != null) {
+      return createElementInfo((IEditorInput) element);
+    }
     return super.createElementInfo(element);
   }
 
@@ -77,7 +70,9 @@
 
   @Override protected IDocument createDocument(Object element) throws CoreException {
     DocumentContentsFactory factory = documentContentsFactories.findFactory(element);
-    if (factory != null) return createDocument(factory, element);
+    if (factory != null) {
+      return createDocument(factory, element);
+    }
     return super.createDocument(element);
   }
 
@@ -99,7 +94,9 @@
       IFileEditorInput editorInput, IDocument document) throws CoreException {
     IRegion[] changedRegions = changedRegions(monitor, editorInput, document);
     TextEdit edit = saveActions.createSaveAction(document, changedRegions);
-    if (edit == null) return;
+    if (edit == null) {
+      return;
+    }
     try {
       IDocumentUndoManager manager = getDocumentUndoManager(document);
       manager.beginCompoundChange();
@@ -109,17 +106,19 @@
       throw error(t);
     }
   }
-  
+
   private IRegion[] changedRegions(IProgressMonitor monitor, IFileEditorInput editorInput, IDocument document) throws CoreException {
     SaveActionsPreferences preferences = preferencesFactory.preferences();
     RemoveTrailingSpace removeTrailingSpace = preferences.removeTrailingSpace();
-    if (removeTrailingSpace.equals(NONE)) return NO_CHANGE;
+    if (removeTrailingSpace.equals(NONE)) {
+      return NO_CHANGE;
+    }
     if (removeTrailingSpace.equals(IN_EDITED_LINES)) {
       return editors.calculateChangedLineRegions(textFileBuffer(monitor, editorInput), document, monitor);
     }
     return new IRegion[] { new Region(0, document.getLength()) };
   }
-  
+
   private ITextFileBuffer textFileBuffer(IProgressMonitor monitor, IFileEditorInput editorInput) throws CoreException {
     IPath location = editorInput.getFile().getFullPath();
     ITextFileBufferManager textFileBufferManager = getTextFileBufferManager();
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/SaveActions.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/SaveActions.java
index 8258517..9e27081 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/SaveActions.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/SaveActions.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.ui.editor.model;
@@ -14,13 +14,8 @@
 import static org.eclipse.jface.text.TextUtilities.getPartition;
 
 import org.apache.log4j.Logger;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.text.edits.DeleteEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.TextEdit;
+import org.eclipse.jface.text.*;
+import org.eclipse.text.edits.*;
 
 import com.google.inject.Singleton;
 
@@ -31,7 +26,7 @@
 class SaveActions {
 
   private static Logger logger = Logger.getLogger(SaveActions.class);
-  
+
   TextEdit createSaveAction(IDocument document, IRegion[] changedRegions) {
     TextEdit rootEdit = null;
     try {
@@ -39,15 +34,23 @@
         int lastLine = document.getLineOfOffset(region.getOffset() + region.getLength());
         for (int line = firstLine(region, document); line <= lastLine; line++) {
           IRegion lineRegion = document.getLineInformation(line);
-          if (lineRegion.getLength() == 0) continue;
+          if (lineRegion.getLength() == 0) {
+            continue;
+          }
           int lineStart = lineRegion.getOffset();
           int lineEnd = lineStart + lineRegion.getLength();
           int charPos = rightMostNonWhitespaceChar(document, lineStart, lineEnd);
-          if (charPos >= lineEnd) continue;
+          if (charPos >= lineEnd) {
+            continue;
+          }
           // check partition - don't remove whitespace inside strings
           ITypedRegion partition = getPartition(document, DEFAULT_PARTITIONING, charPos, false);
-          if ("__string".equals(partition.getType())) continue;
-          if (rootEdit == null) rootEdit = new MultiTextEdit();
+          if ("__string".equals(partition.getType())) {
+            continue;
+          }
+          if (rootEdit == null) {
+            rootEdit = new MultiTextEdit();
+          }
           rootEdit.addChild(new DeleteEdit(charPos, lineEnd - charPos));
         }
       }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriDocumentContentsFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriDocumentContentsFactory.java
index 2780f39..a34d84f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriDocumentContentsFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/model/UriDocumentContentsFactory.java
@@ -11,8 +11,7 @@
 import static com.google.eclipse.protobuf.ui.exception.CoreExceptions.error;
 import static com.google.eclipse.protobuf.util.Closeables.closeQuietly;
 
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
 import java.net.URL;
 
 import org.eclipse.core.runtime.CoreException;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconcileStrategy.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconcileStrategy.java
index 4b5cc25..670c4fe 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconcileStrategy.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconcileStrategy.java
@@ -29,7 +29,9 @@
 
   @Override public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) {
     super.reconcile(dirtyRegion, subRegion);
-    if (spellingStrategy == null) return;
+    if (spellingStrategy == null) {
+      return;
+    }
     spellingStrategy.reconcile(dirtyRegion, subRegion);
   }
 
@@ -40,18 +42,24 @@
 
   @Override public void setDocument(IDocument document) {
     super.setDocument(document);
-    if (spellingStrategy == null) return;
+    if (spellingStrategy == null) {
+      return;
+    }
     spellingStrategy.setDocument(document);
     initialReconcile();
   }
 
   private void initialReconcile() {
-    if (spellingStrategy == null) return;
+    if (spellingStrategy == null) {
+      return;
+    }
     spellingStrategy.initialReconcile();
   }
 
   void addSpellSupport(ISourceViewer viewer, SpellingService spellingService) {
-    if (spellingStrategy != null) return;
+    if (spellingStrategy != null) {
+      return;
+    }
     spellingStrategy = new ProtobufSpelling(viewer, spellingService, nodes);
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconciler.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconciler.java
index ba6496f..86f91f1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconciler.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufReconciler.java
@@ -1,22 +1,22 @@
 /*
  * 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.ui.editor.spelling;
 
 import static org.eclipse.ui.editors.text.EditorsUI.getSpellingService;
 
-import com.google.inject.Inject;
-
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jface.text.source.ISourceViewer;
 import org.eclipse.xtext.ui.editor.reconciler.XtextReconciler;
 
+import com.google.inject.Inject;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
@@ -29,7 +29,9 @@
   }
 
   @Override public void install(ITextViewer textViewer) {
-    if (installed) return;
+    if (installed) {
+      return;
+    }
     super.install(textViewer);
     if (textViewer instanceof ISourceViewer) {
       ISourceViewer viewer = (ISourceViewer) textViewer;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
index 5a14785..fc5b6aa 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
@@ -42,7 +42,9 @@
 
   @Override public void reconcile(IRegion region) {
     IAnnotationModel model = getAnnotationModel();
-    if (model == null) return;
+    if (model == null) {
+      return;
+    }
     super.reconcile(new Region(0, xtextDocument().getLength()));
     removeUnwantedAnnotations(model);
   }
@@ -59,17 +61,21 @@
     return (XtextDocument) super.getDocument();
   }
 
-  @SuppressWarnings("unchecked") 
+  @SuppressWarnings("unchecked")
   private void removeUnwantedAnnotations(INode rootNode, IAnnotationModel model) {
     Iterator<Annotation> iterator = model.getAnnotationIterator();
     while (iterator.hasNext()) {
       Annotation annotation = iterator.next();
-      if (shouldRemoveFromModel(annotation, model, rootNode)) model.removeAnnotation(annotation);
+      if (shouldRemoveFromModel(annotation, model, rootNode)) {
+        model.removeAnnotation(annotation);
+      }
     }
   }
 
   private boolean shouldRemoveFromModel(Annotation annotation, IAnnotationModel model, INode rootNode) {
-    if (!(annotation instanceof SpellingAnnotation)) return false;
+    if (!(annotation instanceof SpellingAnnotation)) {
+      return false;
+    }
     SpellingAnnotation spellingAnnotation = (SpellingAnnotation) annotation;
     Position position = model.getPosition(spellingAnnotation);
     ILeafNode node = findLeafNodeAtOffset(rootNode, position.getOffset());
@@ -77,8 +83,12 @@
   }
 
   private boolean shouldSpellCheck(INode node) {
-    if (node == null) return false;
-    if (nodes.belongsToComment(node)) return true;
+    if (node == null) {
+      return false;
+    }
+    if (nodes.belongsToComment(node)) {
+      return true;
+    }
     if (nodes.belongsToString(node)) {
       EObject o = findActualSemanticObjectFor(node);
       return !(o instanceof Import);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/HighlightingConfiguration.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/HighlightingConfiguration.java
index 4429ac6..ccae5aa 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/HighlightingConfiguration.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/HighlightingConfiguration.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.ui.editor.syntaxcoloring;
@@ -57,7 +57,7 @@
   private TextStyle copyOfDefaultTextStyle() {
     return defaultTextStyle().copy();
   }
-  
+
   private TextStyle copyOfNumberTextStyle() {
     return numberTextStyle().copy();
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/Messages.java
index f33316e..8ceacc4 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/Messages.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/Messages.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.ui.editor.syntaxcoloring;
 
@@ -34,7 +34,7 @@
   public static String rpcReturnTypes;
   public static String serviceDefinitions;
   public static String strings;
-  
+
   static {
     // initialize resource bundle
     Class<Messages> type = Messages.class;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/ProtobufSemanticHighlightingCalculator.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/ProtobufSemanticHighlightingCalculator.java
index c9ecbdb..917bfb8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/ProtobufSemanticHighlightingCalculator.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/syntaxcoloring/ProtobufSemanticHighlightingCalculator.java
@@ -11,6 +11,7 @@
 
 import static com.google.eclipse.protobuf.protobuf.ProtobufPackage.Literals.*;
 import static com.google.eclipse.protobuf.ui.editor.syntaxcoloring.HighlightingConfiguration.*;
+import static org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration.*;
 
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.*;
@@ -34,9 +35,13 @@
   @Inject private Options options;
 
   @Override public void provideHighlightingFor(XtextResource resource, IHighlightedPositionAcceptor acceptor) {
-    if (resource == null) return;
+    if (resource == null) {
+      return;
+    }
     EList<EObject> contents = resource.getContents();
-    if (contents == null || contents.isEmpty()) return;
+    if (contents == null || contents.isEmpty()) {
+      return;
+    }
     Protobuf protobuf = (Protobuf) contents.get(0);
     highlight(protobuf, acceptor);
   }
@@ -151,7 +156,9 @@
 
   private void highlightPropertyType(MessageField field, IHighlightedPositionAcceptor acceptor) {
     TypeLink link = field.getType();
-    if (!(link instanceof ComplexTypeLink)) return;
+    if (!(link instanceof ComplexTypeLink)) {
+      return;
+    }
     ComplexType type = ((ComplexTypeLink) link).getTarget();
     if (type instanceof Message) {
       highlightFirstFeature(field, MESSAGE_FIELD__TYPE, acceptor, MESSAGE_ID);
@@ -225,7 +232,9 @@
   private void highlightFirstFeature(EObject semantic, EStructuralFeature feature,
       IHighlightedPositionAcceptor acceptor, String highlightId) {
     INode node = nodes.firstNodeForFeature(semantic, feature);
-    if (node == null) return;
+    if (node == null) {
+      return;
+    }
     acceptor.addPosition(node.getOffset(), node.getLength(), highlightId);
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/exception/CoreExceptions.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/exception/CoreExceptions.java
index 0cadeb5..111e795 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/exception/CoreExceptions.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/exception/CoreExceptions.java
@@ -11,8 +11,7 @@
 import static com.google.eclipse.protobuf.ui.ProtobufUiModule.PLUGIN_ID;
 import static org.eclipse.core.runtime.IStatus.ERROR;
 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.*;
 
 /**
  * Factory of <code>{@link CoreException}</code>s.
@@ -23,7 +22,9 @@
 
   public static CoreException error(Throwable cause) {
     String message = cause.getMessage();
-    if (message == null) message = "";
+    if (message == null) {
+      message = "";
+    }
     return new CoreException(new Status(ERROR, PLUGIN_ID, message, cause));
   }
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/grammar/CompoundElement.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/grammar/CompoundElement.java
index d21b959..964be3f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/grammar/CompoundElement.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/grammar/CompoundElement.java
@@ -47,7 +47,9 @@
     for (int i = 0; i < count; i++) {
       String s = objects[i].toString();
       buffer.append(s);
-      if (i < count - 1 && !s.endsWith(space())) buffer.append(space());
+      if (i < count - 1 && !s.endsWith(space())) {
+        buffer.append(space());
+      }
     }
     return buffer.toString();
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Images.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Images.java
index bc3d548..3cb9de1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Images.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Images.java
@@ -73,9 +73,13 @@
 
   public String imageFor(Class<?> type) {
     String image = IMAGES_BY_TYPE.get(type);
-    if (image != null) return image;
+    if (image != null) {
+      return image;
+    }
     Class<?>[] interfaces = type.getInterfaces();
-    if (interfaces == null || interfaces.length != 1) return DEFAULT_IMAGE;
+    if (interfaces == null || interfaces.length != 1) {
+      return DEFAULT_IMAGE;
+    }
     return imageFor(interfaces[0]);
   }
 
@@ -83,15 +87,21 @@
     String value = keyword.getValue();
     Modifier m = Modifier.getByName(value);
     String image = IMAGES_BY_MODIFIER.get(m);
-    if (image != null) return image;
+    if (image != null) {
+      return image;
+    }
     String imageName = value + GIF_EXTENSION;
-    if (IMAGES_BY_TYPE.containsValue(imageName) || STANDALONE_IMAGES.contains(imageName)) return imageName;
+    if (IMAGES_BY_TYPE.containsValue(imageName) || STANDALONE_IMAGES.contains(imageName)) {
+      return imageName;
+    }
     return DEFAULT_IMAGE;
   }
 
   private String imageFor(Modifier modifier) {
     String image = IMAGES_BY_MODIFIER.get(modifier);
-    if (image != null) return image;
+    if (image != null) {
+      return image;
+    }
     return "field.gif";
   }
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
index 516633f..4e0aacf 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
@@ -76,7 +76,9 @@
     EList<Range> ranges = extensions.getRanges();
     int rangeCount = ranges.size();
     for (int i = 0; i < rangeCount; i++) {
-      if (i > 0) builder.append(", ");
+      if (i > 0) {
+        builder.append(", ");
+      }
       Range range = ranges.get(i);
       builder.append(range.getFrom());
       String to = range.getTo();
@@ -89,7 +91,9 @@
 
   private Object labelFor(Import anImport) {
     INode node = nodes.firstNodeForFeature(anImport, IMPORT__IMPORT_URI);
-    if (node == null) return anImport.getImportURI();
+    if (node == null) {
+      return anImport.getImportURI();
+    }
     return node.getText();
   }
 
@@ -106,14 +110,19 @@
 
   private String typeName(ExtensibleTypeLink link) {
     ExtensibleType type = link.getTarget();
-    if (type == null) return null;
+    if (type == null) {
+      return null;
+    }
     return nameResolver.nameOf(type);
   }
 
   private Object labelFor(MessageField field) {
     StyledString text = new StyledString(nameResolver.nameOf(field));
     String typeName = messageFields.typeNameOf(field);
-    if (typeName == null) typeName = "<unresolved reference>"; // TODO move to
+    if (typeName == null)
+     {
+      typeName = "<unresolved reference>"; // TODO move to
+    }
                                                                // properties
                                                                // file
     String indexAndType = String.format(" [%d] : %s", field.getIndex(), typeName);
@@ -126,9 +135,13 @@
     String name = options.nameForOption(e);
     StringBuilder b = new StringBuilder();
     boolean isCustomOption = option instanceof CustomOption || option instanceof CustomFieldOption;
-    if (isCustomOption) b.append("(");
+    if (isCustomOption) {
+      b.append("(");
+    }
     b.append(name);
-    if (isCustomOption) b.append(")");
+    if (isCustomOption) {
+      b.append(")");
+    }
     if (option instanceof CustomOption) {
       appendFields(b, ((CustomOption) option).getFields());
     }
@@ -162,7 +175,9 @@
 
   private String messageName(MessageLink link) {
     Message m = link.getTarget();
-    if (m == null) return null;
+    if (m == null) {
+      return null;
+    }
     return nameResolver.nameOf(m);
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/OutlineViewModel.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/OutlineViewModel.java
index 7e05c0e..9deb271 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/OutlineViewModel.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/OutlineViewModel.java
@@ -32,7 +32,9 @@
     initialize();
     for (ProtobufElement e : protobuf.getElements()) {
       for (Class<?> type : GROUP_TYPES) {
-        if (!type.isInstance(e)) continue;
+        if (!type.isInstance(e)) {
+          continue;
+        }
         elements.get(type).add(e);
         break;
       }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlinePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlinePage.java
index fe0d9b5..be7aec6 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlinePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlinePage.java
@@ -12,8 +12,7 @@
 import static com.google.common.collect.Lists.newArrayList;
 import static java.util.Collections.singletonList;
 
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
 
 import org.eclipse.xtext.ui.editor.outline.IOutlineNode;
 import org.eclipse.xtext.ui.editor.outline.impl.*;
@@ -35,7 +34,9 @@
   }
 
   private void addChildrenToExpand(Collection<IOutlineNode> parents, List<IOutlineNode> nodes, int depth) {
-    if (depth < 1) return;
+    if (depth < 1) {
+      return;
+    }
     for (IOutlineNode parent : parents) {
       Collection<IOutlineNode> children = childrenToExpand(parent);
       nodes.addAll(children);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlineTreeProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlineTreeProvider.java
index 87fc2ca..e9122d3 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlineTreeProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/ProtobufOutlineTreeProvider.java
@@ -49,10 +49,12 @@
   boolean _isLeaf(Package aPackage) {
     return true;
   }
-  
+
   protected void _createChildren(DocumentRootNode parent, Protobuf protobuf) {
     OutlineViewModel model = new OutlineViewModel(protobuf);
-    for (EObject aPackage : model.packages()) createNode(parent, aPackage);
+    for (EObject aPackage : model.packages()) {
+      createNode(parent, aPackage);
+    }
     addGroup(parent, protobuf, model.imports(), "imports", importDeclarations);
     for (EObject e : model.remainingElements()) {
       createNode(parent, e);
@@ -61,7 +63,9 @@
 
   private void addGroup(DocumentRootNode parent, Protobuf protobuf, List<? extends EObject> group, String imageKey,
       String text) {
-    if (group.isEmpty()) return;
+    if (group.isEmpty()) {
+      return;
+    }
     SimpleOutlineNode groupNode = new SimpleOutlineNode(parent, protobuf, labelProvider.getImage(imageKey), text, false);
     for (EObject o : group) {
       createNode(groupNode, o);
@@ -69,13 +73,18 @@
   }
 
   @Override protected void createNode(IOutlineNode parent, EObject modelElement) {
-    if (isIgnored(modelElement)) return;
+    if (isIgnored(modelElement)) {
+      return;
+    }
     super.createNode(parent, modelElement);
   }
 
   private boolean isIgnored(EObject modelElement) {
-    for (Class<? extends EObject> ignoredType : IGNORED_ELEMENT_TYPES)
-      if (ignoredType.isInstance(modelElement)) return true;
+    for (Class<? extends EObject> ignoredType : IGNORED_ELEMENT_TYPES) {
+      if (ignoredType.isInstance(modelElement)) {
+        return true;
+      }
+    }
     return false;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/SimpleOutlineNode.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/SimpleOutlineNode.java
index ae89fac..745ee8e 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/SimpleOutlineNode.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/outline/SimpleOutlineNode.java
@@ -21,7 +21,7 @@
 class SimpleOutlineNode extends AbstractOutlineNode {
 
   private final URI ownerUri;
-  
+
   SimpleOutlineNode(IOutlineNode parent, EObject owner, Image image, Object text, boolean isLeaf) {
     super(parent, image, text, isLeaf);
     ownerUri = EcoreUtil.getURI(owner);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Buttons.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Buttons.java
index 5e3a00f..dd80b83 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Buttons.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/Buttons.java
@@ -29,6 +29,8 @@
   }
 
   public void add(SelectionListener l) {
-    for (Button b : buttons) b.addSelectionListener(l);
+    for (Button b : buttons) {
+      b.addSelectionListener(l);
+    }
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/InputDialog.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/InputDialog.java
index 3d879e5..d7306cd 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/InputDialog.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/InputDialog.java
@@ -34,6 +34,8 @@
 
   @Override protected void configureShell(Shell shell) {
     super.configureShell(shell);
-    if (title != null) shell.setText(title);
+    if (title != null) {
+      shell.setText(title);
+    }
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/PreferenceStoreAccess.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/PreferenceStoreAccess.java
index 6fce05e..1b7d06a 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/PreferenceStoreAccess.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/PreferenceStoreAccess.java
@@ -24,9 +24,9 @@
 
 /**
  * Workaround for bug in Xtext where a project's preference store is never used.
- * 
+ *
  * TODO verify if this bug is fixed in Xtext 2.0.1.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/BindingToListItems.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/BindingToListItems.java
index 2bf06d4..9deab97 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/BindingToListItems.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/BindingToListItems.java
@@ -54,7 +54,9 @@
 
   private void apply(Collection<String> value) {
     list.removeAll();
-    for (String s : value) list.add(s);
+    for (String s : value) {
+      list.add(s);
+    }
   }
 
   /** {@inheritDoc} */
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/PreferenceBinder.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/PreferenceBinder.java
index b76e6af..523eb85 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/PreferenceBinder.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/binding/PreferenceBinder.java
@@ -24,7 +24,9 @@
    * @param bindings the bindings to add.
    */
   public void addAll(Binding...bindings) {
-    for (Binding binding : bindings) add(binding);
+    for (Binding binding : bindings) {
+      add(binding);
+    }
   }
 
   /**
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/Messages.java
index 59ae611..86d2e38 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/Messages.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/Messages.java
@@ -22,6 +22,6 @@
     Class<Messages> targetType = Messages.class;
     NLS.initializeMessages(targetType.getName(), targetType);
   }
-  
+
   private Messages() {}
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/PreferenceAndPropertyPage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/PreferenceAndPropertyPage.java
index 830506a..c8cbf10 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/PreferenceAndPropertyPage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/PreferenceAndPropertyPage.java
@@ -49,7 +49,9 @@
   @Override protected Control createContents(Composite parent) {
     Composite contents = contentParent(parent);
     doCreateContents(contents);
-    if (isPropertyPage()) setupBindingOfBtnEnabledProjectSettings();
+    if (isPropertyPage()) {
+      setupBindingOfBtnEnabledProjectSettings();
+    }
     setupBinding(preferenceBinder);
     preferenceBinder.applyValues();
     updateContents();
@@ -122,7 +124,9 @@
 
   private void setupBindingOfBtnEnabledProjectSettings() {
     BooleanPreference preference = enableProjectSettingsPreference(getPreferenceStore());
-    if (preference == null) return;
+    if (preference == null) {
+      return;
+    }
     preferenceBinder.add(bindSelectionOf(btnEnableProjectSettings).to(preference));
   }
 
@@ -168,7 +172,9 @@
    * @return the preference store.
    */
   @Override protected final IPreferenceStore doGetPreferenceStore() {
-    if (isPropertyPage()) return preferenceStoreAccess.getWritablePreferenceStore(currentProject());
+    if (isPropertyPage()) {
+      return preferenceStoreAccess.getWritablePreferenceStore(currentProject());
+    }
     return preferenceStoreAccess.getWritablePreferenceStore();
   }
 
@@ -182,15 +188,18 @@
   }
 
   private IProject currentProject() {
-    if (project == null)
+    if (project == null) {
       throw new IllegalStateException("Not a property page case, but current project was requested.");
+    }
     return project;
   }
 
   /** {@inheritDoc} */
   @SuppressWarnings("unchecked")
   @Override public final void applyData(Object data) {
-    if (data instanceof Map) this.dataMap = (Map<String, Object>) data;
+    if (data instanceof Map) {
+      this.dataMap = (Map<String, Object>) data;
+    }
   }
 
   /**
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CodeGenerationEditor.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CodeGenerationEditor.java
index 5ac4f8d..086924f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CodeGenerationEditor.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CodeGenerationEditor.java
@@ -57,12 +57,12 @@
     tblclmnEnabled.setWidth(27);
     tblclmnVwrEnabled.setLabelProvider(new ColumnLabelProvider() {
       @Override public String getText(Object element) {
-        return ""; //$NON-NLS-1$
+        return "";
       }
 
       @Override public Image getImage(Object element) {
         boolean optionEnabled = ((CodeGenerationSetting)element).isEnabled();
-        return imageHelper.getImage(optionEnabled ? "checked.gif" : "unchecked.gif"); //$NON-NLS-1$ //$NON-NLS-2$
+        return imageHelper.getImage(optionEnabled ? "checked.gif" : "unchecked.gif");
       }
     });
 
@@ -111,7 +111,9 @@
         EditCodeGenerationDialog dialog = new EditCodeGenerationDialog(getShell(), option);
         if (dialog.open() == OK) {
           tblVwrCodeGenerationOptions.refresh();
-          if (dataChangedListener != null) dataChangedListener.dataChanged();
+          if (dataChangedListener != null) {
+            dataChangedListener.dataChanged();
+          }
         }
       }
     });
@@ -125,7 +127,9 @@
 
   private void updateTable() {
     tblVwrCodeGenerationOptions.setInput(settings);
-    if (!settings.isEmpty()) tblCodeGenerationOptions.setSelection(0);
+    if (!settings.isEmpty()) {
+      tblCodeGenerationOptions.setSelection(0);
+    }
   }
 
   /** {@inheritDoc} */
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencePage.java
index 930134f..88ea122 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencePage.java
@@ -166,7 +166,9 @@
       @Override public void widgetSelected(SelectionEvent e) {
         FileDialog dialog = new FileDialog(getShell(), SWT.OPEN | SWT.SHEET);
         String file = dialog.open();
-        if (file != null) txtProtocFilePath.setText(file);
+        if (file != null) {
+          txtProtocFilePath.setText(file);
+        }
         checkState();
       }
     });
@@ -175,7 +177,9 @@
         FileDialog dialog = new FileDialog(getShell(), SWT.OPEN | SWT.SHEET);
         dialog.setFilterExtensions(new String[] { "*.proto" });
         String file = dialog.open();
-        if (file != null) txtDescriptorFilePath.setText(file);
+        if (file != null) {
+          txtDescriptorFilePath.setText(file);
+        }
         checkState();
       }
     });
@@ -225,7 +229,9 @@
 
   private boolean isFileWithName(String filePath, String expectedFileName) {
     File file = new File(filePath);
-    if (!file.isFile()) return false;
+    if (!file.isFile()) {
+      return false;
+    }
     String fileName = file.getName();
     return expectedFileName.equals(fileName);
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferences.java
index 4f86403..ed01b7a 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferences.java
@@ -50,7 +50,7 @@
   public String protocPath() {
     return protocPath;
   }
-  
+
   public String descriptorPath() {
     return descriptorPath;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencesFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencesFactory.java
index 343560d..dbb8d67 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencesFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/CompilerPreferencesFactory.java
@@ -28,7 +28,9 @@
   public CompilerPreferences preferences(IProject project) {
     IPreferenceStore store = storeAccess.getWritablePreferenceStore(project);
     boolean useProjectPreferences = enableProjectSettings(store).value();
-    if (!useProjectPreferences) store = storeAccess.getWritablePreferenceStore();
+    if (!useProjectPreferences) {
+      store = storeAccess.getWritablePreferenceStore();
+    }
     return new CompilerPreferences(new RawPreferences(store));
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/EditCodeGenerationDialog.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/EditCodeGenerationDialog.java
index 960ad2e..4dee583 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/EditCodeGenerationDialog.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/EditCodeGenerationDialog.java
@@ -113,7 +113,9 @@
     IWorkspace workspace = ResourcesPlugin.getWorkspace();
     for (String segment : segmentsOf(directoryName)) {
       IStatus isValid = workspace.validateName(segment, FOLDER);
-      if (isValid.getCode() == OK) continue;
+      if (isValid.getCode() == OK) {
+        continue;
+      }
       return isValid.getMessage();
     }
     return null;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/RawPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/RawPreferences.java
index 356accb..81945d0 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/RawPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/compiler/RawPreferences.java
@@ -64,7 +64,7 @@
   StringPreference protocPath() {
     return protocPath;
   }
-  
+
   StringPreference descriptorPath() {
     return descriptorPath;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/EditorPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/EditorPreferencePage.java
index f262274..3a40db5 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/EditorPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/EditorPreferencePage.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.ui.preferences.pages.editor;
@@ -20,7 +20,7 @@
 
 /**
  * General editor preferences.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class EditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/Messages.java
index 20342ec..128473a 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/Messages.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/Messages.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.ui.preferences.pages.editor;
@@ -15,7 +15,7 @@
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Messages extends NLS {
-  
+
   public static String header;
 
   static {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/AddOrEditPatternDialog.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/AddOrEditPatternDialog.java
index 6f5c77c..643ba56 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/AddOrEditPatternDialog.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/AddOrEditPatternDialog.java
@@ -154,7 +154,7 @@
   }
 
   private void clearTestErrorText() {
-    txtTestError.setText(""); //$NON-NLS-1$
+    txtTestError.setText("");
   }
 
   /** {@inheritDoc} */
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencePage.java
index 9e5319d..2a7e150 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencePage.java
@@ -13,10 +13,6 @@
 import static com.google.eclipse.protobuf.ui.preferences.pages.editor.numerictag.Messages.*;
 import static org.eclipse.jface.window.Window.OK;
 
-import com.google.eclipse.protobuf.ui.preferences.*;
-import com.google.eclipse.protobuf.ui.preferences.binding.PreferenceBinder;
-import com.google.eclipse.protobuf.ui.preferences.pages.PreferenceAndPropertyPage;
-
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.swt.SWT;
@@ -24,6 +20,10 @@
 import org.eclipse.swt.layout.*;
 import org.eclipse.swt.widgets.*;
 
+import com.google.eclipse.protobuf.ui.preferences.*;
+import com.google.eclipse.protobuf.ui.preferences.binding.PreferenceBinder;
+import com.google.eclipse.protobuf.ui.preferences.pages.PreferenceAndPropertyPage;
+
 /**
  * Preference page where users can specify the patterns to use to match comments where "the next id" is being tracked.
  *
@@ -99,7 +99,9 @@
     btnRemove.addSelectionListener(new SelectionAdapter() {
       @Override public void widgetSelected(SelectionEvent e) {
         int index = lstPaths.getSelectionIndex();
-        if (index < 0) return;
+        if (index < 0) {
+          return;
+        }
         lstPaths.remove(index);
         enableButtonsDependingOnListSelection();
       }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferences.java
index cd13a7b..2113421 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferences.java
@@ -8,23 +8,23 @@
  */
 package com.google.eclipse.protobuf.ui.preferences.pages.editor.numerictag;
 
-import org.eclipse.jface.preference.IPreferenceStore;
-
 import java.util.List;
 
+import org.eclipse.jface.preference.IPreferenceStore;
+
 /**
  * "Numeric tag" preferences, retrieved from an <code>{@link IPreferenceStore}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class NumericTagPreferences {
 
   private final List<String> patterns;
-  
+
   NumericTagPreferences(RawPreferences preferences) {
     patterns = preferences.patterns().value();
   }
-  
+
   public List<String> patterns() {
     return patterns;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencesFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencesFactory.java
index 5c22c08..f7163a9 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencesFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/numerictag/NumericTagPreferencesFactory.java
@@ -8,11 +8,11 @@
  */
 package com.google.eclipse.protobuf.ui.preferences.pages.editor.numerictag;
 
-import com.google.inject.Inject;
-
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
 
+import com.google.inject.Inject;
+
 /**
  * Factory of <code>{@link NumericTagPreferences}</code>.
  *
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/RawPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/RawPreferences.java
index 0aad9be..ad731dc 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/RawPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/RawPreferences.java
@@ -1,18 +1,18 @@
 /*
  * Copyright (c) 2011 Google Inc.
- * 
+ *
  * All rights reserved. This program and the accompanying materials are made
  * available under the terms of the Eclipse License v1.0 which accompanies this
  * distribution, and is available at
- * 
+ *
  * http://www.eclipse.org/legal/epl-v10.html
  */
 package com.google.eclipse.protobuf.ui.preferences.pages.editor.save;
 
-import com.google.eclipse.protobuf.ui.preferences.BooleanPreference;
-
 import org.eclipse.jface.preference.IPreferenceStore;
 
+import com.google.eclipse.protobuf.ui.preferences.BooleanPreference;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
@@ -31,7 +31,7 @@
   BooleanPreference removeTrailingWhitespace() {
     return removeTrailingWhitespace;
   }
-  
+
   BooleanPreference inAllLines() {
     return inAllLines;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
index 73fd622..ef3bc24 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencePage.java
@@ -14,8 +14,7 @@
 
 import org.eclipse.jface.preference.*;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.*;
 import org.eclipse.swt.layout.*;
 import org.eclipse.swt.widgets.*;
 import org.eclipse.ui.*;
@@ -50,17 +49,17 @@
     btnRemoveTrailingwhitespace = new Button(contents, SWT.CHECK);
     btnRemoveTrailingwhitespace.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false, 1, 1));
     btnRemoveTrailingwhitespace.setText(removeTrailingWhitespace);
-    
+
     Composite composite = new Composite(contents, SWT.NONE);
     composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
     composite.setLayout(new GridLayout(1, false));
-    
+
     btnInEditedLines = new Button(composite, SWT.RADIO);
     btnInEditedLines.setText("In edited lines");
-    
+
     btnInAllLines = new Button(composite, SWT.RADIO);
     btnInAllLines.setText("In all lines");
-    
+
     setUpBinding();
     preferenceBinder.applyValues();
     updateContents();
@@ -76,7 +75,7 @@
         bindSelectionOf(btnInEditedLines).to(preferences.inEditedLines())
     );
   }
-  
+
   private void addEventListeners() {
     btnRemoveTrailingwhitespace.addSelectionListener(new SelectionAdapter() {
       @Override public void widgetSelected(SelectionEvent e) {
@@ -84,7 +83,7 @@
       }
     });
   }
-  
+
   private void updateContents() {
     boolean enabled = btnRemoveTrailingwhitespace.getSelection();
     btnInEditedLines.setEnabled(enabled);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferences.java
index 4964ad9..e82434b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferences.java
@@ -12,26 +12,28 @@
 
 /**
  * "Save actions" preferences, retrieved from an <code>{@link IPreferenceStore}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class SaveActionsPreferences {
 
   private final RemoveTrailingSpace removeTrailingSpace;
-  
+
   SaveActionsPreferences(RawPreferences preferences) {
     removeTrailingSpace = RemoveTrailingSpace.valueFrom(preferences);
   }
-  
+
   public RemoveTrailingSpace removeTrailingSpace() {
     return removeTrailingSpace;
   }
-  
+
   public static enum RemoveTrailingSpace {
     NONE, IN_EDITED_LINES, IN_ALL_LINES;
-    
+
     static RemoveTrailingSpace valueFrom(RawPreferences preferences) {
-      if (!preferences.removeTrailingWhitespace().value()) return NONE;
+      if (!preferences.removeTrailingWhitespace().value()) {
+        return NONE;
+      }
       return preferences.inEditedLines().value() ? IN_EDITED_LINES : IN_ALL_LINES;
     }
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencesFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencesFactory.java
index e8edc4b..768c7c9 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencesFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/editor/save/SaveActionsPreferencesFactory.java
@@ -8,11 +8,11 @@
  */
 package com.google.eclipse.protobuf.ui.preferences.pages.editor.save;
 
-import com.google.inject.Inject;
-
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
 
+import com.google.inject.Inject;
+
 /**
  * Factory of <code>{@link SaveActionsPreferences}</code>.
  *
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/general/GeneralPreferencesFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/general/GeneralPreferencesFactory.java
index fb58e94..51a1f73 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/general/GeneralPreferencesFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/general/GeneralPreferencesFactory.java
@@ -28,7 +28,9 @@
   public GeneralPreferences preferences(IProject project) {
     IPreferenceStore store = storeAccess.getWritablePreferenceStore(project);
     boolean useProjectPreferences = enableProjectSettings(store).value();
-    if (!useProjectPreferences) store = storeAccess.getWritablePreferenceStore();
+    if (!useProjectPreferences) {
+      store = storeAccess.getWritablePreferenceStore();
+    }
     return new GeneralPreferences(new RawPreferences(store));
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath.java
index 81c9400..9da8ec1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPath.java
@@ -37,7 +37,9 @@
     Matcher matcher = WORKSPACE_PATH_PATTERN.matcher(path);
     if (matcher.matches()) {
       String actualPath = matcher.group(1);
-      if (project != null) actualPath = useProjectName(actualPath, project);
+      if (project != null) {
+        actualPath = useProjectName(actualPath, project);
+      }
       return new DirectoryPath(actualPath, true);
     }
     return new DirectoryPath(path, false);
@@ -50,7 +52,9 @@
 
   /** {@inheritDoc} */
   @Override public String toString() {
-    if (!isWorkspacePath) return value;
+    if (!isWorkspacePath) {
+      return value;
+    }
     return "${workspace_loc:" + value + "}";
   }
 
@@ -76,7 +80,9 @@
    * @return the absolute path in the local file system, or {@code null} if no path can be determined.
    */
   public String location(IProject project) {
-    if (isWorkspacePath()) return locationOfWorkspaceDirectory(project);
+    if (isWorkspacePath()) {
+      return locationOfWorkspaceDirectory(project);
+    }
     return locationOfFileSystemDirectory();
   }
 
@@ -89,7 +95,9 @@
   private String locationOfFileSystemDirectory() {
     IFileSystem fileSystem = EFS.getLocalFileSystem();
     IFileInfo fileInfo = fileSystem.getStore(new Path(value())).fetchInfo();
-    if (!fileInfo.isDirectory()) return null;
+    if (!fileInfo.isDirectory()) {
+      return null;
+    }
     return value();
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPathsEditor.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPathsEditor.java
index d2f3674..33becc9 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPathsEditor.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectoryPathsEditor.java
@@ -60,7 +60,7 @@
     tblDirectoryPaths = tblVwrDirectoryPaths.getTable();
     tblDirectoryPaths.setLinesVisible(true);
     tblDirectoryPaths.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-    
+
     TableViewerColumn tblclmnVwrPath = new TableViewerColumn(tblVwrDirectoryPaths, SWT.NONE);
     TableColumn tblclmnPath = tblclmnVwrPath.getColumn();
     tblclmnPath.setWidth(200);
@@ -119,7 +119,9 @@
     btnRemove.addSelectionListener(new SelectionAdapter() {
       @Override public void widgetSelected(SelectionEvent e) {
         int index = tblDirectoryPaths.getSelectionIndex();
-        if (index < 0) return;
+        if (index < 0) {
+          return;
+        }
         importPaths.remove(index);
         updateTable();
         enableButtonsDependingOnTableSelection();
@@ -140,7 +142,9 @@
 
   private void swap(boolean goUp) {
     int index = tblDirectoryPaths.getSelectionIndex();
-    if (index < 0) return;
+    if (index < 0) {
+      return;
+    }
     int target = goUp ? index - 1 : index + 1;
     int[] selection = tblDirectoryPaths.getSelectionIndices();
     DirectoryPath path = importPaths.get(selection[0]);
@@ -187,8 +191,9 @@
 
   private void updateTable() {
     tblVwrDirectoryPaths.setInput(importPaths.toArray());
-    if (tblDirectoryPaths.getItemCount() > 0 && tblDirectoryPaths.getSelectionCount() == 0)
+    if (tblDirectoryPaths.getItemCount() > 0 && tblDirectoryPaths.getSelectionCount() == 0) {
       tblDirectoryPaths.setSelection(0);
+    }
   }
 
   public void setDataChangedListener(DataChangedListener listener) {
@@ -196,7 +201,9 @@
   }
 
   private void notifyDataHasChanged() {
-    if (dataChangedListener != null) dataChangedListener.dataChanged();
+    if (dataChangedListener != null) {
+      dataChangedListener.dataChanged();
+    }
   }
 
   private static class RichLabelProvider extends LabelProvider implements ITableLabelProvider {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectorySelectionDialogs.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectorySelectionDialogs.java
index c48e0cd..c54435b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectorySelectionDialogs.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/DirectorySelectionDialogs.java
@@ -15,6 +15,8 @@
 import static org.eclipse.jface.window.Window.OK;
 import static org.eclipse.ui.views.navigator.ResourceComparator.NAME;
 
+import java.net.URI;
+
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.swt.SWT;
@@ -23,8 +25,6 @@
 import org.eclipse.ui.model.*;
 import org.eclipse.ui.views.navigator.ResourceComparator;
 
-import java.net.URI;
-
 /**
  * Launchers for dialogs where users can select a directory (either in a workspace or the file system.)
  *
@@ -47,26 +47,33 @@
     IResource container = null;
     if (uri.isAbsolute()) {
       IContainer containers[] = workspaceRoot.findContainersForLocationURI(uri);
-      if (containers != null && containers.length > 0) container = containers[0];
+      if (containers != null && containers.length > 0) {
+        container = containers[0];
+      }
     }
     dialog.setInitialSelection(container);
     dialog.setValidator(new ISelectionStatusValidator() {
       @Override public IStatus validate(Object[] selection) {
-        if (selection != null && selection.length > 0 && selection[0] instanceof IFile)
+        if (selection != null && selection.length > 0 && selection[0] instanceof IFile) {
           return new Status(ERROR, PLUGIN_ID, errorElementIsNotDirectory);
+        }
         return OK_STATUS;
       }
     });
     dialog.setTitle(directorySelection);
     dialog.setMessage(selectWorkspaceDirectory);
-    if (dialog.open() != OK) return null;
+    if (dialog.open() != OK) {
+      return null;
+    }
     IResource resource = (IResource) dialog.getFirstResult();
     return (resource == null) ? null : resource.getFullPath();
   }
 
   static String showFileSystemDirectorySelectionDialog(Shell shell, String filterPath) {
     DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN | SWT.APPLICATION_MODAL);
-    if (filterPath != null && filterPath.trim().length() != 0) dialog.setFilterPath(filterPath);
+    if (filterPath != null && filterPath.trim().length() != 0) {
+      dialog.setFilterPath(filterPath);
+    }
     dialog.setMessage(selectFileSystemDirectory);
     return dialog.open();
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferencePage.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferencePage.java
index b72008a..4d95894 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferencePage.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferencePage.java
@@ -46,7 +46,7 @@
 
   private static Logger logger = Logger.getLogger(PathsPreferencePage.class);
 
-  private static final String COMMA_DELIMITER = ","; //$NON-NLS-1$
+  private static final String COMMA_DELIMITER = ",";
   private static final String PREFERENCE_PAGE_ID = PathsPreferencePage.class.getName();
 
   private Group grpResolutionOfImported;
@@ -136,7 +136,10 @@
 
   private String directoryNames() {
     List<DirectoryPath> paths = directoryPathsEditor.directoryPaths();
-    if (paths.isEmpty()) return ""; //$NON-NLS-1$
+    if (paths.isEmpty())
+     {
+      return "";
+    }
     List<String> pathsAsText = new ArrayList<String>();
     for (DirectoryPath path : paths) {
       pathsAsText.add(path.toString());
@@ -147,7 +150,9 @@
   private void setDirectoryPaths(String directoryPaths) {
     List<DirectoryPath> paths = new ArrayList<DirectoryPath>();
     for (String path : split(directoryPaths, COMMA_DELIMITER)) {
-      if (isEmpty(path)) continue;
+      if (isEmpty(path)) {
+        continue;
+      }
       paths.add(DirectoryPath.parse(path));
     }
     directoryPathsEditor.directoryPaths(unmodifiableList(paths));
@@ -175,7 +180,9 @@
 
   @Override protected void okPerformed() {
     // TODO check threading
-    if (!stateChanged) return;
+    if (!stateChanged) {
+      return;
+    }
     stateChanged = false;
     if (shouldRebuild()) {
       rebuildProject();
@@ -192,13 +199,13 @@
   }
 
   private void rebuildProject() {
-    Job job = new Job("Rebuilding project") { //$NON-NLS-1$
+    Job job = new Job("Rebuilding project") {
       @Override protected IStatus run(IProgressMonitor monitor) {
         try {
           project().build(FULL_BUILD, monitor);
         } catch (CoreException e) {
           logger.error(e.getMessage(), e);
-          return new Status(ERROR, PLUGIN_ID, ERROR, e.getMessage(), e); //$NON-NLS-1$
+          return new Status(ERROR, PLUGIN_ID, ERROR, e.getMessage(), e);
         }
         return OK_STATUS;
       }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferences.java
index bb87b1f..f50530b 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferences.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/PathsPreferences.java
@@ -27,7 +27,7 @@
   private final List<DirectoryPath> importRoots;
 
   private static final String CSV_PATTERN = "[\\s]*,[\\s]*";
-  
+
   PathsPreferences(RawPreferences preferences, IProject project) {
     boolean filesInOneDirectoryOnly = preferences.filesInOneDirectoryOnly().value();
     pathResolutionType = filesInOneDirectoryOnly ? SINGLE_DIRECTORY : MULTIPLE_DIRECTORIES;
@@ -35,7 +35,9 @@
   }
 
   private List<DirectoryPath> importRoots(RawPreferences preferences, IProject project) {
-    if (pathResolutionType.equals(SINGLE_DIRECTORY)) return emptyList();
+    if (pathResolutionType.equals(SINGLE_DIRECTORY)) {
+      return emptyList();
+    }
     List<DirectoryPath> roots = new ArrayList<DirectoryPath>();
     for (String root : preferences.directoryPaths().value().split(CSV_PATTERN)) {
       roots.add(DirectoryPath.parse(root, project));
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable.java
index 840e4c4..10b4895 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/pages/paths/ProjectVariable.java
@@ -13,7 +13,7 @@
 
 /**
  * ${project} variable.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 class ProjectVariable {
@@ -23,17 +23,21 @@
   static IPath useProjectVariable(IPath path, IProject project) {
     return switchProjectSegments(path, project.getName(), VARIABLE_VALUE);
   }
-  
+
   static String useProjectName(String path, IProject project) {
     IPath newPath = switchProjectSegments(new Path(path), VARIABLE_VALUE, project.getName());
     return newPath.toString();
   }
-  
+
   private static IPath switchProjectSegments(IPath path, String currentSegment, String newSegment) {
-    if (!currentSegment.equals(path.segment(0))) return path;
+    if (!currentSegment.equals(path.segment(0))) {
+      return path;
+    }
     IPath newPath = new Path(newSegment);
     newPath = newPath.append(path.removeFirstSegments(1));
-    if (path.isAbsolute()) newPath = newPath.makeAbsolute();
+    if (path.isAbsolute()) {
+      newPath = newPath.makeAbsolute();
+    }
     return newPath;
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickAssistProcessor.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickAssistProcessor.java
index a5dc287..8c1d168 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickAssistProcessor.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickAssistProcessor.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.ui.quickfix;
@@ -12,14 +12,14 @@
 import static java.util.Arrays.asList;
 import static java.util.Collections.emptyList;
 
-import com.google.inject.Inject;
+import java.util.*;
 
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
 import org.eclipse.jface.text.quickassist.IQuickAssistInvocationContext;
 import org.eclipse.ui.texteditor.spelling.SpellingCorrectionProcessor;
 import org.eclipse.xtext.ui.editor.quickfix.XtextQuickAssistProcessor;
 
-import java.util.*;
+import com.google.inject.Inject;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -34,14 +34,18 @@
     proposals.addAll(asList(super.computeQuickAssistProposals(context)));
     return proposals.toArray(new ICompletionProposal[proposals.size()]);
   }
-  
+
   private List<ICompletionProposal> spellingFixes(IQuickAssistInvocationContext context) {
     ICompletionProposal[] spellingFixes = spellingCorrectionProcessor.computeQuickAssistProposals(context);
-    if (spellingFixes.length == 0) return emptyList();
-    if (spellingFixes.length == 1 && isNoCompletionsProposal(spellingFixes[0])) return emptyList();
+    if (spellingFixes.length == 0) {
+      return emptyList();
+    }
+    if (spellingFixes.length == 1 && isNoCompletionsProposal(spellingFixes[0])) {
+      return emptyList();
+    }
     return asList(spellingFixes);
   }
-  
+
   private boolean isNoCompletionsProposal(ICompletionProposal p) {
     return p.getClass().getSimpleName().equals("NoCompletionsProposal");
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickfixProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickfixProvider.java
index bd694c6..c9f9d93 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickfixProvider.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/quickfix/ProtobufQuickfixProvider.java
@@ -72,10 +72,14 @@
   @Fix(MORE_THAN_ONE_PACKAGE_ERROR)
   public void removeDuplicatePackage(Issue issue, IssueResolutionAcceptor acceptor) {
     final Package aPackage = element(issue, Package.class);
-    if (aPackage == null) return;
+    if (aPackage == null) {
+      return;
+    }
     ISemanticModification modification = new ISemanticModification() {
       @Override public void apply(EObject element, IModificationContext context) throws Exception {
-        if (!(element instanceof Package)) return;
+        if (!(element instanceof Package)) {
+          return;
+        }
         remove(aPackage);
       }
     };
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/XtextResourceFactory.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/XtextResourceFactory.java
index 584e464..702b2d0 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/XtextResourceFactory.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/XtextResourceFactory.java
@@ -25,8 +25,7 @@
 import org.eclipse.xtext.util.StringInputStream;
 
 import com.google.eclipse.protobuf.ui.util.Resources;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
+import com.google.inject.*;
 
 /**
  * Factory of <code>{@link XtextResource}</code>s.
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileResolverStrategies.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileResolverStrategies.java
index 6d606fd..458899d 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileResolverStrategies.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileResolverStrategies.java
@@ -10,13 +10,11 @@
 
 import static com.google.eclipse.protobuf.ui.preferences.pages.paths.PathResolutionType.*;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import com.google.eclipse.protobuf.ui.preferences.pages.paths.PathResolutionType;
 import com.google.eclipse.protobuf.ui.util.Resources;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
+import com.google.inject.*;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -24,7 +22,7 @@
 @Singleton
 class FileResolverStrategies {
 
-  private final Map<PathResolutionType, FileResolverStrategy> strategies = 
+  private final Map<PathResolutionType, FileResolverStrategy> strategies =
       new HashMap<PathResolutionType, FileResolverStrategy>();
 
   @Inject FileResolverStrategies(PathMapping mapping, Resources resources) {
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileUriResolver.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileUriResolver.java
index 95e2bf8..a8de8d1 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileUriResolver.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/FileUriResolver.java
@@ -14,10 +14,8 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 
-import com.google.eclipse.protobuf.scoping.IFileUriResolver;
-import com.google.eclipse.protobuf.scoping.ProtoDescriptorProvider;
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.PathsPreferences;
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.PathsPreferencesFactory;
+import com.google.eclipse.protobuf.scoping.*;
+import com.google.eclipse.protobuf.ui.preferences.pages.paths.*;
 import com.google.eclipse.protobuf.ui.util.Resources;
 import com.google.inject.Inject;
 
@@ -49,7 +47,9 @@
    * We need to have the import URI as "platform:/resource/protobuf-test/folder/proto2.proto" for the editor to see it.
    */
   @Override public String resolveUri(String importUri, Resource declaringResource) {
-    if (hasScheme(importUri)) return importUri;
+    if (hasScheme(importUri)) {
+      return importUri;
+    }
     String resolved = resolveUri(importUri, declaringResource.getURI());
     return (resolved == null) ? importUri : resolved;
   }
@@ -61,10 +61,16 @@
 
   private String resolveUri(String importUri, URI resourceUri) {
     URI location = descriptorProvider.descriptorLocation(importUri);
-    if (location != null) return location.toString();
+    if (location != null) {
+      return location.toString();
+    }
     IProject project = resources.project(resourceUri);
-    if (project == null) project = resources.activeProject();
-    if (project == null) throw new IllegalStateException("Unable to find current project");
+    if (project == null) {
+      project = resources.activeProject();
+    }
+    if (project == null) {
+      throw new IllegalStateException("Unable to find current project");
+    }
     PathsPreferences preferences = preferencesFactory.preferences(project);
     return resolver(preferences).resolveUri(importUri, resourceUri, preferences);
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/MultipleDirectoriesFileResolver.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/MultipleDirectoriesFileResolver.java
index cfd354d..05bd6c8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/MultipleDirectoriesFileResolver.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/MultipleDirectoriesFileResolver.java
@@ -8,15 +8,15 @@
  */
 package com.google.eclipse.protobuf.ui.scoping;
 
-import com.google.eclipse.protobuf.ui.preferences.pages.paths.*;
-import com.google.eclipse.protobuf.ui.util.Resources;
+import java.util.List;
 
 import org.eclipse.core.filesystem.*;
 import org.eclipse.core.filesystem.URIUtil;
 import org.eclipse.core.runtime.*;
 import org.eclipse.emf.common.util.URI;
 
-import java.util.List;
+import com.google.eclipse.protobuf.ui.preferences.pages.paths.*;
+import com.google.eclipse.protobuf.ui.util.Resources;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -36,19 +36,27 @@
     List<DirectoryPath> importRoots = preferences.importRoots();
     for (DirectoryPath root : importRoots) {
       String resolved = resolveUri(importUri, root);
-      if (resolved != null) return resolved;
+      if (resolved != null) {
+        return resolved;
+      }
     }
     for (DirectoryPath root : importRoots) {
-      if (!root.isWorkspacePath()) continue;
+      if (!root.isWorkspacePath()) {
+        continue;
+      }
       String resolved = resolveUriInFileSystem(importUri, mapping.folderLocation(root.value()));
-      if (resolved != null) return resolved;
+      if (resolved != null) {
+        return resolved;
+      }
     }
     return null;
   }
 
   private String resolveUri(String importUri, DirectoryPath importRoot) {
     String root = importRoot.value();
-    if (importRoot.isWorkspacePath()) return resolveUriInWorkspace(importUri, root);
+    if (importRoot.isWorkspacePath()) {
+      return resolveUriInWorkspace(importUri, root);
+    }
     return resolveUriInFileSystem(importUri, root);
   }
 
@@ -62,7 +70,9 @@
     IFileSystem fileSystem = EFS.getLocalFileSystem();
     IPath path = new Path(importRoot + SEPARATOR + importUri);
     IFileInfo fileInfo = fileSystem.getStore(path).fetchInfo();
-    if (!fileInfo.exists()) return null;
+    if (!fileInfo.exists()) {
+      return null;
+    }
     return URIUtil.toURI(path).toString();
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/PathMapping.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/PathMapping.java
index 0ea1e38..faa741a 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/PathMapping.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/PathMapping.java
@@ -20,7 +20,7 @@
 class PathMapping {
 
   private final SimpleCache<String, String> folderPathMapping = new SimpleCache<String, String>(new FolderPathMapper());
-  
+
   String folderLocation(String workspacePath) {
     return folderPathMapping.get(workspacePath);
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver.java
index 3cbec0a..d99f27c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/scoping/SingleDirectoryFileResolver.java
@@ -35,10 +35,14 @@
   private String resolveUri(URI importUri, URI declaringResourceUri) {
     StringBuilder pathBuilder = new StringBuilder();
     String[] segments = importUri.segments();
-    if (segments.length == 0) return null;
+    if (segments.length == 0) {
+      return null;
+    }
     String firstSegment = segments[0];
     for (String segment : removeFirstAndLast(declaringResourceUri)) {
-      if (segment.equals(firstSegment)) break;
+      if (segment.equals(firstSegment)) {
+        break;
+      }
       pathBuilder.append(segment).append(SEPARATOR);
     }
     String resolved = createResolvedUri(pathBuilder.toString(), importUri);
@@ -53,15 +57,17 @@
                      .append(importUri.toString())
                      .toString();
   }
-  
+
   private boolean fileExists(String uri) {
     return resources.fileExists(createURI(uri));
   }
-  
+
   // first is always "platform" and last is the file name (both unnecessary)
   private static List<String> removeFirstAndLast(URI declaringResourceUri) {
     List<String> segments = new ArrayList<String>(declaringResourceUri.segmentsList());
-    if (segments.isEmpty()) return segments;
+    if (segments.isEmpty()) {
+      return segments;
+    }
     segments.remove(0);
     segments.remove(segments.size() - 1);
     return segments;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Literals.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Literals.java
index eea1cac..68da120 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Literals.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Literals.java
@@ -29,14 +29,14 @@
    * of the given literal's siblings, plus one. The minimum index value is zero.
    * <p>
    * For example, in the following message:
-   * 
+   *
    * <pre>
    * enum PhoneType {
    *   MOBILE = 0;
    *   HOME = 1;
    *   WORK =
    * </pre>
-   * 
+   *
    * The calculated index value for the literal {@code WORK} will be 2.
    * </p>
    * @param l the given literal.
@@ -46,7 +46,9 @@
     long index = -1;
     List<Literal> allLiterals = getAllContentsOfType(l.eContainer(), Literal.class);
     for (Literal c : allLiterals) {
-      if (c == l) continue;
+      if (c == l) {
+        continue;
+      }
       index = max(index, c.getIndex());
     }
     return ++index;
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Paths.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Paths.java
index 30ade64..4ea2ae9 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Paths.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Paths.java
@@ -24,7 +24,9 @@
    * @throws NullPointerException if the given path is {@code null}.
    */
   public static String[] segmentsOf(String path) {
-    if (path == null) throw new NullPointerException("The given path should not be null");
+    if (path == null) {
+      throw new NullPointerException("The given path should not be null");
+    }
     return path.split("\\Q" + separator + "\\E");
   }
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Resources.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Resources.java
index 3abe890..cb8ccc2 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Resources.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Resources.java
@@ -9,8 +9,7 @@
 package com.google.eclipse.protobuf.ui.util;
 
 import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.*;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.ui.*;
@@ -23,12 +22,12 @@
  *
  * @author alruiz@google.com (Alex Ruiz)
  */
-@SuppressWarnings("deprecation") 
+@SuppressWarnings("deprecation")
 @Singleton
 public class Resources {
 
   private static final IViewReference[] NO_VIEW_REFERENCES = new IViewReference[0];
-  
+
   public static final String URI_SCHEME_FOR_FILES = "file";
 
   /**
@@ -45,7 +44,9 @@
   public IProject activeProject() {
     for (IViewReference reference : viewReferencesInActivePage()) {
       IViewPart part = reference.getView(false);
-      if (!(part instanceof ResourceNavigator)) continue;
+      if (!(part instanceof ResourceNavigator)) {
+        continue;
+      }
       ResourceNavigator navigator = (ResourceNavigator) part;
       StructuredSelection selection = (StructuredSelection) navigator.getTreeViewer().getSelection();
       IResource resource = (IResource) selection.getFirstElement();
@@ -56,18 +57,22 @@
 
   private IViewReference[] viewReferencesInActivePage() {
     IWorkbenchPage page = activeWorkbenchPage();
-    if (page == null) return NO_VIEW_REFERENCES;
+    if (page == null) {
+      return NO_VIEW_REFERENCES;
+    }
     IViewReference[] references = page.getViewReferences();
     return (references == null) ? NO_VIEW_REFERENCES : references;
   }
-  
+
   private IWorkbenchPage activeWorkbenchPage() {
     IWorkbench workbench = PlatformUI.getWorkbench();
-    if (workbench == null) return null;
+    if (workbench == null) {
+      return null;
+    }
     IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
     return (window == null) ? null : window.getActivePage();
   }
-  
+
   /**
    * Indicates whether the given URI belongs to an existing file.
    * @param fileUri the URI to check, as a {@code String}.
@@ -101,7 +106,9 @@
   }
 
   private IResource resourceFrom(IEditorPart editor) {
-    if (editor == null) return null;
+    if (editor == null) {
+      return null;
+    }
     Object adapter = editor.getEditorInput().getAdapter(IResource.class);
     return (adapter == null) ? null : (IResource) adapter;
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Editors.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Editors.java
index 7fb06f8..47903dc 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Editors.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Editors.java
@@ -108,13 +108,17 @@
       });
     } finally {
       IStatus status = errorStatus.get();
-      if (!status.isOK()) throw new CoreException(status);
+      if (!status.isOK()) {
+        throw new CoreException(status);
+      }
     }
     return result.get();
   }
 
   private static IProgressMonitor getSubProgressMonitor(IProgressMonitor monitor, int ticks) {
-    if (monitor != null) return new SubProgressMonitor(monitor, ticks, PREPEND_MAIN_LABEL_TO_SUBTASK);
+    if (monitor != null) {
+      return new SubProgressMonitor(monitor, ticks, PREPEND_MAIN_LABEL_TO_SUBTASK);
+    }
     return new NullProgressMonitor();
   }
 }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/LineComparator.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/LineComparator.java
index 0e9310e..aad9211 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/LineComparator.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/LineComparator.java
@@ -1,26 +1,24 @@
 /*
  * 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.ui.util.editor;
 
 import org.apache.log4j.Logger;
 import org.eclipse.compare.rangedifferencer.IRangeComparator;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.*;
 
 /**
  * Adapted from CDT's {@code org.eclipse.cdt.internal.ui.text.LineSeparator}.
- * 
- * This implementation of <code>IRangeComparator</code> compares lines of a document. The lines are compared using a DJB 
+ *
+ * This implementation of <code>IRangeComparator</code> compares lines of a document. The lines are compared using a DJB
  * hash function.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 class LineComparator implements IRangeComparator {
@@ -28,7 +26,7 @@
   private static final long UNKNOWN_HASH = Long.MIN_VALUE;
 
   private static Logger logger = Logger.getLogger(LineComparator.class);
-  
+
   private final IDocument document;
   private final long[] hashes;
 
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Messages.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Messages.java
index 0d62f2c..f17dac0 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Messages.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/editor/Messages.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.ui.util.editor;
@@ -15,10 +15,10 @@
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Messages extends NLS {
-  
+
   public static String calculatingChangedRegions;
   public static String errorCalculatingChangedRegions;
-  
+
   static {
     Class<Messages> targetType = Messages.class;
     NLS.initializeMessages(targetType.getName(), targetType);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidateOnActivation.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidateOnActivation.java
index 322b8a7..6b5a4b8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidateOnActivation.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidateOnActivation.java
@@ -32,7 +32,9 @@
   @Override public void partActivated(IWorkbenchPartReference partRef) {
     IEditorPart activeEditor = activeEditor(partRef);
     IProject project = projectFrom(activeEditor);
-    if (project == null || !shouldValidateEditor(project)) return;
+    if (project == null || !shouldValidateEditor(project)) {
+      return;
+    }
     validate(activeEditor);
   }
 
@@ -48,7 +50,9 @@
 
   private boolean shouldValidateEditor(IProject project) {
     GeneralPreferencesFactory factory = injector().getInstance(GeneralPreferencesFactory.class);
-    if (factory == null) return false;
+    if (factory == null) {
+      return false;
+    }
     GeneralPreferences preferences = factory.preferences(project);
     return preferences.validateFilesOnActivation();
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/Validation.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/Validation.java
index 0ed6920..0e21e76 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/Validation.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/Validation.java
@@ -35,19 +35,27 @@
 
   static void validate(IEditorPart editor) {
     XtextEditor protoEditor = asProtoEditor(editor);
-    if (protoEditor == null) return;
+    if (protoEditor == null) {
+      return;
+    }
     validate(protoEditor);
   }
 
   private static XtextEditor asProtoEditor(IEditorPart editor) {
     XtextEditor xtextEditor = asXtextEditor(editor);
-    if (xtextEditor == null) return null;
-    if (!languageName().equals(xtextEditor.getLanguageName())) return null;
+    if (xtextEditor == null) {
+      return null;
+    }
+    if (!languageName().equals(xtextEditor.getLanguageName())) {
+      return null;
+    }
     return xtextEditor;
   }
 
   private static XtextEditor asXtextEditor(IEditorPart editor) {
-    if (!isXtextEditorContainingWorkspaceFile(editor)) return null;
+    if (!isXtextEditorContainingWorkspaceFile(editor)) {
+      return null;
+    }
     return (XtextEditor) editor;
   }
 
@@ -57,11 +65,15 @@
 
   private static void validate(XtextEditor editor) {
     final IXtextDocument document = editor.getDocument();
-    if (!(document instanceof XtextDocument)) return;
+    if (!(document instanceof XtextDocument)) {
+      return;
+    }
     document.readOnly(new IUnitOfWork.Void<XtextResource>() {
       @Override public void process(XtextResource resource) {
         EObject root = rootOf(resource);
-        if (root == null) return;
+        if (root == null) {
+          return;
+        }
         resetImports(root);
         resource.getLinker().linkModel(root, new ListBasedDiagnosticConsumer());
         ((XtextDocument) document).checkAndUpdateAnnotations();
@@ -70,26 +82,36 @@
   }
 
   private static EObject rootOf(XtextResource resource) {
-    if (resource == null) return null;
+    if (resource == null) {
+      return null;
+    }
     return resource.getParseResult().getRootASTElement();
   }
 
   private static void resetImports(EObject root) {
     List<Import> imports = getAllContentsOfType(root, Import.class);
-    for (Import anImport : imports) resetUri(anImport);
+    for (Import anImport : imports) {
+      resetUri(anImport);
+    }
   }
 
   private static void resetUri(Import anImport) {
     String uri = uriAsEnteredInEditor(anImport);
-    if (uri == null) return;
+    if (uri == null) {
+      return;
+    }
     anImport.setImportURI(uri);
   }
 
   private static String uriAsEnteredInEditor(Import anImport) {
     INode node = nodes().firstNodeForFeature(anImport, IMPORT__IMPORT_URI);
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     String text = node.getText();
-    if (text == null) return null;
+    if (text == null) {
+      return null;
+    }
     STRINGValueConverter converter = injector().getInstance(STRINGValueConverter.class);
     return converter.toValue(text, node);
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidationTrigger.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidationTrigger.java
index 9fc9f98..34d2d80 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidationTrigger.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ValidationTrigger.java
@@ -45,22 +45,30 @@
   }
 
   private void validateFileInEditor(IEditorReference editorRef, IProject project) {
-    if (!PROTO_EDITOR_ID.equals(editorRef.getId())) return;
+    if (!PROTO_EDITOR_ID.equals(editorRef.getId())) {
+      return;
+    }
     IEditorPart editor = editorRef.getEditor(true);
     IProject fileProject = resources.project(editor);
-    if (fileProject == null || !haveEqualUris(project, fileProject)) return;
+    if (fileProject == null || !haveEqualUris(project, fileProject)) {
+      return;
+    }
     validate(editor);
   }
 
   private boolean haveEqualUris(IProject p1, IProject p2) {
-    if (p1 == null || p2 == null) return false;
+    if (p1 == null || p2 == null) {
+      return false;
+    }
     URI uri1 = p1.getLocationURI();
     URI uri2 = p2.getLocationURI();
     return areEqual(uri1, uri2);
   }
 
   private boolean areEqual(URI uri1, URI uri2) {
-    if (uri1 == null) return false;
+    if (uri1 == null) {
+      return false;
+    }
     return uri1.equals(uri2);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/DOUBLEValueConverter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/DOUBLEValueConverter.java
index 364cd70..b4a0508 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/DOUBLEValueConverter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/DOUBLEValueConverter.java
@@ -11,6 +11,8 @@
 import static java.lang.Double.*;
 import static org.eclipse.xtext.util.Strings.isEmpty;
 
+import java.util.*;
+
 import org.eclipse.xtext.conversion.ValueConverterException;
 import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter;
 import org.eclipse.xtext.nodemodel.INode;
@@ -22,6 +24,14 @@
  */
 public class DOUBLEValueConverter extends AbstractLexerBasedConverter<Double> {
 
+  private static final Map<String, Double> PREDEFINED_VALUES = new HashMap<String, Double>();
+
+  static {
+    PREDEFINED_VALUES.put("nan", NaN);
+    PREDEFINED_VALUES.put("inf", POSITIVE_INFINITY);
+    PREDEFINED_VALUES.put("-inf", NEGATIVE_INFINITY);
+  }
+
   /**
    * Creates an {@code float} from the given input, if the given input represents a floating-point number.
    * @param string the given input.
@@ -31,10 +41,13 @@
    * number.
    */
   @Override public Double toValue(String string, INode node) throws ValueConverterException {
-    if (isEmpty(string)) throw new ValueConverterException("Couldn't convert empty string to double.", node, null);
-    if ("nan".equals(string)) return NaN;
-    if ("inf".equals(string)) return POSITIVE_INFINITY;
-    if ("-inf".equals(string)) return NEGATIVE_INFINITY;
+    if (isEmpty(string)) {
+      throw new ValueConverterException("Couldn't convert empty string to double.", node, null);
+    }
+    Double predefinedValue = PREDEFINED_VALUES.get(string);
+    if (predefinedValue != null) {
+      return predefinedValue;
+    }
     try {
       return Double.parseDouble(string);
     } catch (NumberFormatException e) {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
index 08d5813..91ae3db 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
@@ -34,8 +34,12 @@
    * number.
    */
   @Override public Long toValue(String string, INode node) throws ValueConverterException {
-    if (isEmpty(string)) throw new ValueConverterException("Couldn't convert empty string to long.", node, null);
-    if (!startsWithValidPrefix(string)) throw parsingError(string, node);
+    if (isEmpty(string)) {
+      throw new ValueConverterException("Couldn't convert empty string to long.", node, null);
+    }
+    if (!startsWithValidPrefix(string)) {
+      throw parsingError(string, node);
+    }
     String withoutZeroX = removeZeroX(string);
     try {
       BigInteger value = new BigInteger(withoutZeroX, 16);
@@ -48,7 +52,9 @@
 
   private boolean startsWithValidPrefix(String string) {
     for (String prefix : VALID_PREFIXES) {
-      if (string.startsWith(prefix)) return true;
+      if (string.startsWith(prefix)) {
+        return true;
+      }
     }
     return false;
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/LONGValueConverter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/LONGValueConverter.java
index 67f05f5..ae399e5 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/LONGValueConverter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/LONGValueConverter.java
@@ -1,24 +1,24 @@
 /*
  * 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.conversion;
 
 import static org.eclipse.xtext.util.Strings.isEmpty;
 
+import java.math.BigInteger;
+
 import org.eclipse.xtext.conversion.ValueConverterException;
 import org.eclipse.xtext.conversion.impl.AbstractLexerBasedConverter;
 import org.eclipse.xtext.nodemodel.INode;
 
-import java.math.BigInteger;
-
 /**
  * Converts numbers to {@code long}s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class LONGValueConverter extends AbstractLexerBasedConverter<Long> {
@@ -31,15 +31,17 @@
    * @throws ValueConverterException if the given input is {@code null}, empty or does not represent an integer number.
    */
   @Override public Long toValue(String string, INode node) throws ValueConverterException {
-    if (isEmpty(string)) throw new ValueConverterException("Couldn't convert empty string to long.", node, null);
+    if (isEmpty(string)) {
+      throw new ValueConverterException("Couldn't convert empty string to long.", node, null);
+    }
     try {
       return Long.parseLong(string, 10);
     } catch (NumberFormatException e) {
-      return parseAgain(string, node);
+      return parseUsingBigInteger(string, node);
     }
   }
 
-  private Long parseAgain(String string, INode node) {
+  private Long parseUsingBigInteger(String string, INode node) {
     // error could be overflow, parse again with BigInteger.
     try {
       BigInteger value = new BigInteger(string, 10);
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/ProtobufTerminalConverters.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/ProtobufTerminalConverters.java
index d613bdf..6fd3776 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/ProtobufTerminalConverters.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/ProtobufTerminalConverters.java
@@ -1,9 +1,9 @@
 /*
  * 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.conversion;
@@ -23,19 +23,23 @@
   @Inject private LONGValueConverter longValueConverter;
   @Inject private STRINGValueConverter stringValueConverter;
 
-  @ValueConverter(rule = "DOUBLE") public IValueConverter<Double> DOUBLE() {
+  @ValueConverter(rule = "DOUBLE")
+  public IValueConverter<Double> DOUBLE() {
     return doubleValueConverter;
   }
 
-  @ValueConverter(rule = "HEX") public IValueConverter<Long> HEX() {
+  @ValueConverter(rule = "HEX")
+  public IValueConverter<Long> HEX() {
     return hexValueConverter;
   }
 
-  @ValueConverter(rule = "LONG") public IValueConverter<Long> LONG() {
+  @ValueConverter(rule = "LONG")
+  public IValueConverter<Long> LONG() {
     return longValueConverter;
   }
 
-  @ValueConverter(rule = "STRING") @Override public IValueConverter<String> STRING() {
+  @ValueConverter(rule = "STRING")
+  @Override public IValueConverter<String> STRING() {
     return stringValueConverter;
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/STRINGValueConverter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/STRINGValueConverter.java
index 591efb7..ba1ae52 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/STRINGValueConverter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/STRINGValueConverter.java
@@ -1,9 +1,9 @@
 /*
  * 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.conversion;
@@ -19,7 +19,7 @@
 
 /**
  * Converts multi-line strings to {@code String}s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class STRINGValueConverter extends AbstractLexerBasedConverter<String> {
@@ -27,7 +27,9 @@
   private static final Pattern LINE_BREAK = compile("\"[\t\r\n]+\"|'[\t\r\n]+'");
 
   @Override protected String toEscapedString(String value) {
-    if (value == null) return null;
+    if (value == null) {
+      return null;
+    }
     return '"' + convertToJavaString(removeLineBreaksFrom(value), false) + '"';
   }
 
@@ -39,7 +41,9 @@
    * @throws ValueConverterException if the given input has illegal characters.
    */
   @Override public String toValue(String string, INode node) throws ValueConverterException {
-    if (string == null) return null;
+    if (string == null) {
+      return null;
+    }
     try {
       String clean = removeLineBreaksFrom(string).trim();
       return convertToJavaString(clean.substring(1, clean.length() - 1), true);
@@ -49,7 +53,9 @@
   }
 
   private static String removeLineBreaksFrom(String s) {
-    if (isEmpty(s)) return s;
+    if (isEmpty(s)) {
+      return s;
+    }
     return LINE_BREAK.matcher(s).replaceAll("");
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/Keywords.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/Keywords.java
index 5220657..adf5763 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/Keywords.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/Keywords.java
@@ -1,24 +1,24 @@
 /*
  * 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.grammar;
 
 import static org.eclipse.xtext.GrammarUtil.getAllKeywords;
 
-import com.google.inject.*;
+import java.util.Set;
 
 import org.eclipse.xtext.IGrammarAccess;
 
-import java.util.Set;
+import com.google.inject.*;
 
 /**
  * Utility methods related to grammar keywords.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class Keywords {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/ValidSyntax.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/ValidSyntax.java
index f82e527..0b95ed9 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/ValidSyntax.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/grammar/ValidSyntax.java
@@ -1,9 +1,9 @@
 /*
  * 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.grammar;
@@ -13,10 +13,19 @@
  */
 public final class ValidSyntax {
 
+  /**
+   * Returns the value to use to specify 'proto2' syntax.
+   * @return the {@code String} "proto2".
+   */
   public static String proto2() {
     return "proto2";
   }
 
+  /**
+   * Indicates whether the given {@code String} is equal to the one returned by <code>{@link #proto2()}</code>.
+   * @param s the {@code String} to check.
+   * @return {@code true} if the given {@code String} is equal to "proto2," {@code false} otherwise.
+   */
   public static boolean isProto2Syntax(String s) {
     return proto2().equals(s);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic.java
index 0c9cd7f..e0af64b 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufDiagnostic.java
@@ -8,6 +8,7 @@
  */
 package com.google.eclipse.protobuf.linking;
 
+import static com.google.eclipse.protobuf.util.Objects.*;
 import static java.util.Arrays.copyOf;
 import static org.eclipse.xtext.util.Arrays.contains;
 
@@ -72,24 +73,24 @@
   }
 
   @Override public int hashCode() {
-    final int prime = 31;
+    final int prime = HASH_CODE_PRIME;
     int result = 1;
-    result = prime * result + ((message == null) ? 0 : message.hashCode());
-    result = prime * result + ((node == null) ? 0 : node.hashCode());
+    result = prime * result + hashCodeOf(message);
+    result = prime * result + hashCodeOf(node);
     return result;
   }
 
   @Override public boolean equals(Object obj) {
-    if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (this == obj) {
+      return true;
+    }
+    if (obj == null || getClass() != obj.getClass()) {
+      return false;
+    }
     ProtobufDiagnostic other = (ProtobufDiagnostic) obj;
-    if (message == null) {
-      if (other.message != null) return false;
-    } else if (!message.equals(other.message)) return false;
-    if (node == null) {
-      if (other.node != null) return false;
-    } else if (!node.equals(other.node)) return false;
-    return true;
+    if (!areEqual(message, other.message)) {
+      return false;
+    }
+    return areEqual(node, other.node);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
index 047baf8..f84f975 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
@@ -1,9 +1,9 @@
 /*
  * 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.linking;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/FieldOptions.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/FieldOptions.java
index 2567562..0676f91 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/FieldOptions.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/FieldOptions.java
@@ -72,7 +72,9 @@
    */
   public IndexedElement sourceOf(CustomFieldOption option) {
     IndexedElement e = sourceOfLastFieldIn(option);
-    if (e == null) e = rootSourceOf(option);
+    if (e == null) {
+      e = rootSourceOf(option);
+    }
     return e;
   }
 
@@ -115,8 +117,11 @@
    */
   public IndexedElement sourceOfLastFieldIn(CustomFieldOption option) {
     List<OptionField> fields = option.getFields();
-    if (fields.isEmpty()) return null;
-    OptionField last = fields.get(fields.size() - 1);
+    int fieldCount = fields.size();
+    if (fieldCount == 0) {
+      return null;
+    }
+    OptionField last = fields.get(fieldCount - 1);
     return optionFields.sourceOf(last);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/INodes.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/INodes.java
index 525bead..66c8fde 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/INodes.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/INodes.java
@@ -34,7 +34,9 @@
    */
   public INode firstNodeForFeature(EObject o, EStructuralFeature feature) {
     List<INode> nodes = findNodesForFeature(o, feature);
-    if (nodes.isEmpty()) return null;
+    if (nodes.isEmpty()) {
+      return null;
+    }
     return nodes.get(0);
   }
 
@@ -76,9 +78,13 @@
   }
 
   private static boolean belongsToComment(INode node, String commentRuleName) {
-    if (!(node instanceof ILeafNode)) return false;
+    if (!(node instanceof ILeafNode)) {
+      return false;
+    }
     EObject o = node.getGrammarElement();
-    if (!(o instanceof TerminalRule)) return false;
+    if (!(o instanceof TerminalRule)) {
+      return false;
+    }
     TerminalRule rule = (TerminalRule) o;
     return commentRuleName.equals(rule.getName());
   }
@@ -90,9 +96,13 @@
    */
   public boolean belongsToString(INode node) {
     EObject grammarElement = node.getGrammarElement();
-    if (!(grammarElement instanceof RuleCall)) return false;
+    if (!(grammarElement instanceof RuleCall)) {
+      return false;
+    }
     AbstractRule rule = ((RuleCall) grammarElement).getRule();
-    if (!(rule instanceof TerminalRule)) return false;
+    if (!(rule instanceof TerminalRule)) {
+      return false;
+    }
     TerminalRule terminalRule = (TerminalRule) rule;
     return "STRING".equals(terminalRule.getName());
   }
@@ -103,8 +113,10 @@
    * @return {@code true} if the given node is a hidden leaf node; {@code false} otherwise.
    */
   public boolean isHiddenLeafNode(INode node) {
-    if (!(node instanceof ILeafNode)) return false;
-    return ((ILeafNode) node).isHidden();
+    if (node instanceof ILeafNode) {
+      return ((ILeafNode) node).isHidden();
+    }
+    return false;
   }
 
   /**
@@ -113,7 +125,9 @@
    * @return the text of the given node, with leading and trailing whitespace omitted.
    */
   public String textOf(INode node) {
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     String text = node.getText();
     return (text == null) ? null : text.trim();
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Imports.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Imports.java
index 1341247..22b556f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Imports.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Imports.java
@@ -31,7 +31,9 @@
    * otherwise.
    */
   public boolean hasUnresolvedDescriptorUri(Import anImport) {
-    if (anImport == null) return false;
+    if (anImport == null) {
+      return false;
+    }
     return descriptorProvider.descriptorLocation(anImport.getImportURI()) != null;
   }
 
@@ -41,12 +43,18 @@
    * @return {@code true} if the given import is pointing to descriptor.proto, {@code false} otherwise.
    */
   public boolean isImportingDescriptor(Import anImport) {
-    if (hasUnresolvedDescriptorUri(anImport)) return true;
-    if (anImport == null) return false;
+    if (hasUnresolvedDescriptorUri(anImport)) {
+      return true;
+    }
+    if (anImport == null) {
+      return false;
+    }
     String importUri = anImport.getImportURI();
     for (URI locationUri : descriptorProvider.allDescriptorLocations()) {
       String location = locationUri.toString();
-      if (location.equals(importUri)) return true;
+      if (location.equals(importUri)) {
+        return true;
+      }
     }
     return false;
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/IndexedElements.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/IndexedElements.java
index d01d4cd..0f38084 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/IndexedElements.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/IndexedElements.java
@@ -51,8 +51,13 @@
    * is {@code null}.
    */
   public long indexOf(IndexedElement e) {
-    if (e == null) return Long.MIN_VALUE;
-    return (e instanceof Group) ? ((Group) e).getIndex() : ((MessageField) e).getIndex();
+    if (e instanceof Group) {
+      return ((Group) e).getIndex();
+    }
+    if (e instanceof MessageField) {
+      return ((MessageField) e).getIndex();
+    }
+    return Long.MIN_VALUE;
   }
 
   /**
@@ -62,8 +67,13 @@
    * {@code IndexedElement} is {@code null}.
    */
   public EStructuralFeature indexFeatureOf(IndexedElement e) {
-    if (e == null) return null;
-    return (e instanceof Group) ? GROUP__INDEX : MESSAGE_FIELD__INDEX;
+    if (e instanceof Group) {
+      return GROUP__INDEX;
+    }
+    if (e instanceof MessageField) {
+      return MESSAGE_FIELD__INDEX;
+    }
+    return null;
   }
 
   /**
@@ -73,8 +83,13 @@
    * {@code null}.
    */
   public List<FieldOption> fieldOptionsOf(IndexedElement e) {
-    if (e == null) return emptyList();
-    return (e instanceof Group) ? ((Group) e).getFieldOptions() : ((MessageField) e).getFieldOptions();
+    if (e instanceof Group) {
+      return ((Group) e).getFieldOptions();
+    }
+    if (e instanceof MessageField) {
+      return ((MessageField) e).getFieldOptions();
+    }
+    return emptyList();
   }
 
   /**
@@ -83,12 +98,12 @@
    * @param newIndex the new index to set.
    */
   public void setIndexTo(IndexedElement e, long newIndex) {
-    if (e == null) return;
     if (e instanceof Group) {
       ((Group) e).setIndex(newIndex);
-      return;
     }
-    ((MessageField) e).setIndex(newIndex);
+    if (e instanceof MessageField) {
+      ((MessageField) e).setIndex(newIndex);
+    }
   }
 
   /**
@@ -112,7 +127,9 @@
   public long calculateTagNumberOf(IndexedElement e) {
     long index = 0;
     for (EObject o : e.eContainer().eContents()) {
-      if (o == e || !(o instanceof IndexedElement)) continue;
+      if (o == e || !(o instanceof IndexedElement)) {
+        continue;
+      }
       index = max(index, indexOf((IndexedElement) o));
     }
     return ++index;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/MessageFields.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/MessageFields.java
index cd85958..a9964e0 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/MessageFields.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/MessageFields.java
@@ -1,9 +1,9 @@
 /*
  * 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.model.util;
@@ -17,7 +17,7 @@
 
 /**
  * Utility methods related to <code>{@link MessageField}</code>s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class MessageFields {
@@ -40,7 +40,9 @@
    */
   public boolean isPrimitive(MessageField field) {
     TypeLink link = field.getType();
-    if (!(link instanceof ScalarTypeLink)) return false;
+    if (!(link instanceof ScalarTypeLink)) {
+      return false;
+    }
     String typeName = ((ScalarTypeLink) link).getTarget().getName();
     return !STRING.hasValue(typeName) && !BYTES.hasValue(typeName);
   }
@@ -105,7 +107,9 @@
     if (link instanceof ScalarTypeLink) {
       String typeName = ((ScalarTypeLink) link).getTarget().getName();
       for (CommonKeyword scalarName : scalarNames) {
-        if (scalarName.hasValue(typeName)) return true;
+        if (scalarName.hasValue(typeName)) {
+          return true;
+        }
       }
     }
     return false;
@@ -118,7 +122,9 @@
    */
   public String typeNameOf(MessageField field) {
     TypeLink link = field.getType();
-    if (link instanceof ScalarTypeLink) return ((ScalarTypeLink) link).getTarget().getName();
+    if (link instanceof ScalarTypeLink) {
+      return ((ScalarTypeLink) link).getTarget().getName();
+    }
     if (link instanceof ComplexTypeLink) {
       ComplexType type = ((ComplexTypeLink) link).getTarget();
       return (type == null) ? null : type.getName();
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/ModelFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/ModelFinder.java
index bdc18cc..d9877d1 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/ModelFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/ModelFinder.java
@@ -45,7 +45,9 @@
     Set<TypeExtension> extensions = new HashSet<TypeExtension>();
     for (TypeExtension extension : getAllContentsOfType(root, TypeExtension.class)) {
       Message referred = messageFrom(extension);
-      if (message.equals(referred)) extensions.add(extension);
+      if (message.equals(referred)) {
+        extensions.add(extension);
+      }
     }
     return extensions;
   }
@@ -57,7 +59,9 @@
    */
   public Message messageFrom(TypeExtension extension) {
     ExtensibleTypeLink link = extension.getType();
-    if (link == null) return null;
+    if (link == null) {
+      return null;
+    }
     ExtensibleType type = link.getTarget();
     return (type instanceof Message) ? (Message) type : null;
   }
@@ -82,7 +86,9 @@
 
   private <T extends ComplexType> T fieldType(MessageField field, Class<T> typeClazz) {
     ComplexType type = typeOf(field);
-    if (typeClazz.isInstance(type)) return typeClazz.cast(type);
+    if (typeClazz.isInstance(type)) {
+      return typeClazz.cast(type);
+    }
     return null;
   }
 
@@ -106,7 +112,9 @@
    */
   public ScalarType scalarTypeOf(MessageField p) {
     TypeLink link = (p).getType();
-    if (link instanceof ScalarTypeLink) return ((ScalarTypeLink) link).getTarget();
+    if (link instanceof ScalarTypeLink) {
+      return ((ScalarTypeLink) link).getTarget();
+    }
     return null;
   }
 
@@ -185,7 +193,9 @@
     TreeIterator<Object> contents = getAllContents(resource, true);
     if (contents.hasNext()) {
       Object next = contents.next();
-      if (next instanceof Protobuf) return (Protobuf) next;
+      if (next instanceof Protobuf) {
+        return (Protobuf) next;
+      }
     }
     return null;
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/OptionFields.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/OptionFields.java
index 1f8ea5f..07fc6b8 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/OptionFields.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/OptionFields.java
@@ -1,9 +1,9 @@
 /*
  * 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.model.util;
@@ -13,7 +13,7 @@
 
 /**
  * Utility methods related to fields in <code>{@link Option}</code>s
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class OptionFields {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Options.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Options.java
index 725623c..c838c2b 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Options.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Options.java
@@ -52,7 +52,9 @@
    */
   public IndexedElement sourceOf(CustomOption option) {
     IndexedElement e = lastFieldSourceFrom(option);
-    if (e == null) e = rootSourceOf(option);
+    if (e == null) {
+      e = rootSourceOf(option);
+    }
     return e;
   }
 
@@ -86,7 +88,9 @@
    */
   public IndexedElement lastFieldSourceFrom(CustomOption option) {
     List<OptionField> fields = option.getFields();
-    if (fields.isEmpty()) return null;
+    if (fields.isEmpty()) {
+      return null;
+    }
     OptionField last = fields.get(fields.size() - 1);
     return optionFields.sourceOf(last);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Packages.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Packages.java
index 9dcfdc9..b05e9e9 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Packages.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/Packages.java
@@ -1,9 +1,9 @@
 /*
  * 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.model.util;
@@ -20,7 +20,7 @@
 
 /**
  * Utility methods related to <code>{@link Package}</code>s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Packages {
@@ -35,11 +35,17 @@
    * @return {@code true} if the given packages are related; {@code false} otherwise.
    */
   public boolean areRelated(Package p1, Package p2) {
-    if (p1 == null || p2 == null) return false;
+    if (p1 == null || p2 == null) {
+      return false;
+    }
     QualifiedName name1 = nameOf(p1);
     QualifiedName name2 = nameOf(p2);
-    if (name1 == null || name2 == null) return false;
-    if (name1.equals(name2)) return true;
+    if (name1 == null || name2 == null) {
+      return false;
+    }
+    if (name1.equals(name2)) {
+      return true;
+    }
     return (isSubPackage(name1, name2));
   }
 
@@ -48,8 +54,12 @@
     int segment2Count = segments.size();
     int counter = 0;
     for (String segment1 : name1.getSegments()) {
-      if (!segment1.equals(segments.get(counter++))) return false;
-      if (counter == segment2Count) break;
+      if (!segment1.equals(segments.get(counter++))) {
+        return false;
+      }
+      if (counter == segment2Count) {
+        break;
+      }
     }
     return true;
   }
@@ -58,7 +68,9 @@
     QualifiedName current = name;
     List<String> segments = segmentsOf(p);
     int segmentCount = segments.size();
-    if (segmentCount <= 1) return emptyList();
+    if (segmentCount <= 1) {
+      return emptyList();
+    }
     List<QualifiedName> allNames = new ArrayList<QualifiedName>();
     for (int i = segmentCount - 1; i > 0; i--) {
       current = QualifiedName.create(segments.get(i)).append(current);
@@ -69,13 +81,17 @@
 
   public List<String> segmentsOf(Package p) {
     QualifiedName name = (p == null) ? null : nameOf(p);
-    if (name == null) return emptyList();
+    if (name == null) {
+      return emptyList();
+    }
     return name.getSegments();
   }
 
   private QualifiedName nameOf(Package p) {
     String name = p.getName();
-    if (isEmpty(name)) return null;
+    if (isEmpty(name)) {
+      return null;
+    }
     return converter.toQualifiedName(name);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/QualifiedNames.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/QualifiedNames.java
index 5e8fc1f..ee7fe40 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/QualifiedNames.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/model/util/QualifiedNames.java
@@ -1,22 +1,22 @@
 /*
  * 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.model.util;
 
-import com.google.inject.Singleton;
+import java.util.*;
 
 import org.eclipse.xtext.naming.QualifiedName;
 
-import java.util.*;
+import com.google.inject.Singleton;
 
 /**
  * Utility methods related to <code>{@link QualifiedName}</code>s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class QualifiedNames {
@@ -30,7 +30,9 @@
   }
 
   public QualifiedName addLeadingDot(QualifiedName name) {
-    if (name.getFirstSegment().equals("")) return name;
+    if (name.getFirstSegment().equals("")) {
+      return name;
+    }
     List<String> segments = new ArrayList<String>();
     segments.addAll(name.getSegments());
     segments.add(0, "");
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/IProtobufQualifiedNameProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/IProtobufQualifiedNameProvider.java
index 274b8b0..65f3c8f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/IProtobufQualifiedNameProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/IProtobufQualifiedNameProvider.java
@@ -1,19 +1,19 @@
 /*
  * 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.naming;
 
-import com.google.eclipse.protobuf.protobuf.Group;
-import com.google.inject.ImplementedBy;
-
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.*;
 
+import com.google.eclipse.protobuf.protobuf.Group;
+import com.google.inject.ImplementedBy;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/LocalNamesProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/LocalNamesProvider.java
index 2e4bc9f..d1616e2 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/LocalNamesProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/LocalNamesProvider.java
@@ -1,9 +1,9 @@
 /*
  * 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.naming;
@@ -13,34 +13,34 @@
 import static org.eclipse.xtext.util.Strings.isEmpty;
 import static org.eclipse.xtext.util.Tuples.pair;
 
-import com.google.eclipse.protobuf.model.util.*;
-import com.google.eclipse.protobuf.naming.Naming.NamingUsage;
-import com.google.inject.*;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.*;
 import org.eclipse.xtext.util.*;
 
-import java.util.*;
+import com.google.eclipse.protobuf.model.util.*;
+import com.google.eclipse.protobuf.naming.Naming.NamingUsage;
+import com.google.inject.*;
 
 /**
  * Provides alternative qualified names for protobuf elements.
  * <p>
  * For example, given the following proto element:
- * 
+ *
  * <pre>
  * package test.alternative.names;
- * 
+ *
  * message Person {
  *   optional string name = 1;
- * 
+ *
  *   enum PhoneType {
  *     HOME = 0;
  *     WORK = 1;
  *   }
  * }
  * </pre>
- * 
+ *
  * The default qualified name for {@code PhoneType} is {@code alternative.names.Person.PhoneType}. The problem is that
  * protoc also recognizes the following as qualified names:
  * <ul>
@@ -53,7 +53,7 @@
  * <p>
  * This class provides the non-default qualified names recognized by protoc.
  * </p>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class LocalNamesProvider {
@@ -81,13 +81,17 @@
         List<QualifiedName> allNames = new ArrayList<QualifiedName>();
         EObject current = e;
         String name = naming.nameOf(e, usage);
-        if (isEmpty(name)) return emptyList();
+        if (isEmpty(name)) {
+          return emptyList();
+        }
         QualifiedName qualifiedName = converter.toQualifiedName(name);
         allNames.add(qualifiedName);
         while (current.eContainer() != null) {
           current = current.eContainer();
           String containerName = nameResolver.nameOf(current);
-          if (isEmpty(containerName)) continue;
+          if (isEmpty(containerName)) {
+            continue;
+          }
           qualifiedName = converter.toQualifiedName(containerName).append(qualifiedName);
           allNames.add(qualifiedName);
         }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/NameResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/NameResolver.java
index 1ec1323..bfbf4e7 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/NameResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/NameResolver.java
@@ -27,7 +27,9 @@
       return CommonKeyword.DEFAULT.toString();
     }
     Object value = nameFeatureOf(o);
-    if (value instanceof String) return (String) value;
+    if (value instanceof String) {
+      return (String) value;
+    }
     return null;
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/Naming.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/Naming.java
index 826c2ad..69e7771 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/Naming.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/Naming.java
@@ -1,22 +1,22 @@
 /*
  * 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.naming;
 
+import org.eclipse.emf.ecore.EObject;
+
 import com.google.eclipse.protobuf.model.util.Options;
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.inject.*;
 
-import org.eclipse.emf.ecore.EObject;
-
 /**
  * Utility methods related to naming.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class Naming {
@@ -32,14 +32,18 @@
    * @return the name of the given object.
    */
   String nameOf(EObject e, NamingUsage usage) {
-    if (NamingUsage.DEFAULT.equals(usage)) return nameResolver.nameOf(e);
-    if (e instanceof IndexedElement) return options.nameForOption((IndexedElement) e);
+    if (NamingUsage.DEFAULT.equals(usage)) {
+      return nameResolver.nameOf(e);
+    }
+    if (e instanceof IndexedElement) {
+      return options.nameForOption((IndexedElement) e);
+    }
     return nameResolver.nameOf(e);
   }
 
   /**
    * Indicates if the name to obtain will be used by a type (default) or an option.
-   * 
+   *
    * @author alruiz@google.com (Alex Ruiz)
    */
   static enum NamingUsage {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider.java
index 7bacc62..82501ac 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/naming/ProtobufQualifiedNameProvider.java
@@ -1,9 +1,9 @@
 /*
  * 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.naming;
@@ -12,12 +12,12 @@
 import static org.eclipse.xtext.util.Strings.isEmpty;
 import static org.eclipse.xtext.util.Tuples.pair;
 
+import java.util.List;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.*;
 import org.eclipse.xtext.util.*;
 
-import java.util.List;
-
 import com.google.eclipse.protobuf.model.util.*;
 import com.google.eclipse.protobuf.naming.Naming.NamingUsage;
 import com.google.eclipse.protobuf.protobuf.Package;
@@ -25,7 +25,7 @@
 
 /**
  * Provides fully-qualified names for protobuf elements.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufQualifiedNameProvider extends IQualifiedNameProvider.AbstractImpl implements
@@ -53,7 +53,9 @@
       @Override public QualifiedName get() {
         EObject current = e;
         String name = naming.nameOf(e, usage);
-        if (isEmpty(name)) return null;
+        if (isEmpty(name)) {
+          return null;
+        }
         QualifiedName qualifiedName = converter.toQualifiedName(name);
         while (current.eContainer() != null) {
           current = current.eContainer();
@@ -66,13 +68,21 @@
   }
 
   private QualifiedName addPackage(EObject obj, QualifiedName qualifiedName) {
-    if (qualifiedName == null || obj instanceof Package) return qualifiedName;
+    if (qualifiedName == null || obj instanceof Package) {
+      return qualifiedName;
+    }
     Package p = finder.packageOf(obj);
-    if (p == null) return qualifiedName;
+    if (p == null) {
+      return qualifiedName;
+    }
     List<String> segments = packages.segmentsOf(p);
-    if (segments.isEmpty()) return qualifiedName;
+    if (segments.isEmpty()) {
+      return qualifiedName;
+    }
     QualifiedName packageQualifiedName = qualifiedNames.createFqn(segments);
-    if (qualifiedName.startsWith(packageQualifiedName)) return qualifiedName;
+    if (qualifiedName.startsWith(packageQualifiedName)) {
+      return qualifiedName;
+    }
     return packageQualifiedName.append(qualifiedName);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/NonProto2Protobuf.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/NonProto2Protobuf.java
index 484d306..cba4895 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/NonProto2Protobuf.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/NonProto2Protobuf.java
@@ -1,9 +1,9 @@
 /*
  * 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.parser;
@@ -12,7 +12,7 @@
 
 /**
  * Represents a non-proto2 protocol buffer, which is ignored by the editor.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class NonProto2Protobuf extends ProtobufImpl {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser.java
index 400893e..a4b2d53 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/parser/Proto2OnlyParser.java
@@ -1,9 +1,9 @@
 /*
  * 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.parser;
@@ -18,7 +18,7 @@
 
 /**
  * Parser that only parses protocol buffers with "proto2" syntax, older syntax is ignored completely.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Proto2OnlyParser extends ProtobufParser {
@@ -30,27 +30,37 @@
       int initialLookAhead) {
     IParseResult result = super.doParse(ruleName, in, builder, initialLookAhead);
     // TODO ignore this check via preferences in open source version.
-    if (isNonProto2(result)) { return new ParseResult(new NonProto2Protobuf(), result.getRootNode(), false); }
+    if (isNonProto2(result)) {
+      return new ParseResult(new NonProto2Protobuf(), result.getRootNode(), false);
+    }
     return result;
   }
 
   private boolean isNonProto2(IParseResult result) {
-    if (!result.hasSyntaxErrors()) return false;
+    if (!result.hasSyntaxErrors()) {
+      return false;
+    }
     for (INode node : result.getSyntaxErrors()) {
-      if (isNonProto2(node.getSyntaxErrorMessage())) return true;
+      if (isNonProto2(node.getSyntaxErrorMessage())) {
+        return true;
+      }
     }
     Protobuf root = (Protobuf) result.getRootASTElement();
-    if (root != null) {
-      if (root.getSyntax() == null) return true;
+    if (root != null && root.getSyntax() == null) {
+      return true;
     }
     return false;
   }
 
   private boolean isNonProto2(SyntaxErrorMessage syntaxErrorMessage) {
-    if (syntaxErrorMessage == null) return false;
+    if (syntaxErrorMessage == null) {
+      return false;
+    }
     String message = syntaxErrorMessage.getMessage();
     for (String nonProto2Keyword : ERRORS_TO_LOOK_FOR) {
-      if (message.contains(nonProto2Keyword)) return true;
+      if (message.contains(nonProto2Keyword)) {
+        return true;
+      }
     }
     return false;
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java
index 7d2c5a8..c87cb60 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java
@@ -31,7 +31,9 @@
       return findService(((InternalEObject) e).eProxyURI(), serviceType);
     }
     Resource resource = e.eResource();
-    if (resource == null) return null;
+    if (resource == null) {
+      return null;
+    }
     return findService(resource.getURI(), serviceType);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
index 698c656..b385be4 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/AstWalker.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -70,7 +70,9 @@
 
   private Collection<IEObjectDescription> imported(Protobuf start, ScopeFinder scopeFinder, Object criteria) {
     List<Import> allImports = modelFinder.importsIn(start);
-    if (allImports.isEmpty()) return emptyList();
+    if (allImports.isEmpty()) {
+      return emptyList();
+    }
     ResourceSet resourceSet = start.eResource().getResourceSet();
     return imported(allImports, modelFinder.packageOf(start), resourceSet, scopeFinder, criteria);
   }
@@ -84,9 +86,13 @@
         continue;
       }
       Resource imported = resources.importedResource(anImport, resourceSet);
-      if (imported == null) continue;
+      if (imported == null) {
+        continue;
+      }
       Protobuf rootOfImported = modelFinder.rootOf(imported);
-      if (!protobufs.isProto2(rootOfImported)) continue;
+      if (!protobufs.isProto2(rootOfImported)) {
+        continue;
+      }
       if (rootOfImported != null) {
         descriptions.addAll(publicImported(rootOfImported, scopeFinder, criteria));
         if (arePackagesRelated(fromImporter, rootOfImported)) {
@@ -101,9 +107,13 @@
   }
 
   private Collection<IEObjectDescription> publicImported(Protobuf start, ScopeFinder scopeFinder, Object criteria) {
-    if (!protobufs.isProto2(start)) return emptySet();
+    if (!protobufs.isProto2(start)) {
+      return emptySet();
+    }
     List<Import> allImports = modelFinder.publicImportsIn(start);
-    if (allImports.isEmpty()) return emptyList();
+    if (allImports.isEmpty()) {
+      return emptyList();
+    }
     ResourceSet resourceSet = start.eResource().getResourceSet();
     return imported(allImports, modelFinder.packageOf(start), resourceSet, scopeFinder, criteria);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFieldScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFieldScopeFinder.java
index dbfc52a..ae9c04f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFieldScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionFieldScopeFinder.java
@@ -46,7 +46,9 @@
         return options.rootSourceOf(option);
       }
     });
-    if (e != null) return provider.fieldsInTypeOf(e);
+    if (e != null) {
+      return provider.fieldsInTypeOf(e);
+    }
     return emptySet();
   }
 
@@ -65,7 +67,9 @@
         return fieldOptions.rootSourceOf(option);
       }
     });
-    if (e != null) return provider.fieldsInTypeOf(e);
+    if (e != null) {
+      return provider.fieldsInTypeOf(e);
+    }
     return emptySet();
   }
 
@@ -81,7 +85,9 @@
       isFirstField = false;
     }
     if (field == null) {
-      if (previous == null) return provider.get();
+      if (previous == null) {
+        return provider.get();
+      }
       return optionFields.sourceOf(previous);
     }
     return null;
@@ -94,20 +100,26 @@
         Message fieldType = modelFinder.messageTypeOf((MessageField) e);
         for (MessageElement element : fieldType.getElements()) {
           IEObjectDescription d = describe(element);
-          if (d != null) descriptions.add(d);
+          if (d != null) {
+            descriptions.add(d);
+          }
         }
       }
       if (e instanceof Group) {
         for (GroupElement element : ((Group) e).getElements()) {
           IEObjectDescription d = describe(element);
-          if (d != null) descriptions.add(d);
+          if (d != null) {
+            descriptions.add(d);
+          }
         }
       }
       return descriptions;
     }
 
     private IEObjectDescription describe(EObject e) {
-      if (!(e instanceof IndexedElement)) return null;
+      if (!(e instanceof IndexedElement)) {
+        return null;
+      }
       String name = options.nameForOption((IndexedElement) e);
       return create(name, e);
     }
@@ -115,13 +127,19 @@
 
   private class ExtensionFieldDescriptorProvider implements IEObjectDescriptionsProvider {
     @Override public Collection<IEObjectDescription> fieldsInTypeOf(IndexedElement e) {
-      if (!(e instanceof MessageField)) return emptyList();
+      if (!(e instanceof MessageField)) {
+        return emptyList();
+      }
       Message fieldType = modelFinder.messageTypeOf((MessageField) e);
-      if (fieldType == null) return emptyList();
+      if (fieldType == null) {
+        return emptyList();
+      }
       Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
       for (TypeExtension extension : modelFinder.localExtensionsOf(fieldType)) {
         for (MessageElement element : extension.getElements()) {
-          if (!(element instanceof IndexedElement)) continue;
+          if (!(element instanceof IndexedElement)) {
+            continue;
+          }
           IndexedElement current = (IndexedElement) element;
           descriptions.addAll(qualifiedNameDescriptions.qualifiedNamesForOption(current));
           String name = options.nameForOption(current);
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
index f27edd7..eabf76f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/CustomOptionScopeFinder.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -11,17 +11,17 @@
 import static java.util.Collections.emptySet;
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
+import java.util.*;
+
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.IEObjectDescription;
+
 import com.google.eclipse.protobuf.model.util.ModelFinder;
 import com.google.eclipse.protobuf.naming.LocalNamesProvider;
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.protobuf.Package;
 import com.google.inject.Inject;
 
-import org.eclipse.xtext.naming.QualifiedName;
-import org.eclipse.xtext.resource.IEObjectDescription;
-
-import java.util.*;
-
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
@@ -34,7 +34,9 @@
   @Override public Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target,
       Object criteria) {
     OptionType optionType = optionTypeFrom(criteria);
-    if (!isExtendingOptionMessage(target, optionType)) return emptySet();
+    if (!isExtendingOptionMessage(target, optionType)) {
+      return emptySet();
+    }
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     TypeExtension extension = (TypeExtension) target;
     for (MessageElement e : extension.getElements()) {
@@ -49,7 +51,9 @@
 
   @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
     OptionType optionType = optionTypeFrom(criteria);
-    if (!isExtendingOptionMessage(target, optionType)) return emptySet();
+    if (!isExtendingOptionMessage(target, optionType)) {
+      return emptySet();
+    }
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     TypeExtension extension = (TypeExtension) target;
     for (MessageElement e : extension.getElements()) {
@@ -64,14 +68,20 @@
   }
 
   private OptionType optionTypeFrom(Object criteria) {
-    if (!(criteria instanceof OptionType)) throw new IllegalArgumentException("Search criteria should be OptionType");
+    if (!(criteria instanceof OptionType)) {
+      throw new IllegalArgumentException("Search criteria should be OptionType");
+    }
     return (OptionType) criteria;
   }
 
   private boolean isExtendingOptionMessage(Object o, OptionType optionType) {
-    if (!(o instanceof TypeExtension)) return false;
+    if (!(o instanceof TypeExtension)) {
+      return false;
+    }
     Message message = modelFinder.messageFrom((TypeExtension) o);
-    if (message == null) return false;
+    if (message == null) {
+      return false;
+    }
     String name = message.getName();
     return optionType.messageName().equals(name);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ExtensionRegistryProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ExtensionRegistryProvider.java
index f4bfdea..5357c24 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ExtensionRegistryProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ExtensionRegistryProvider.java
@@ -1,20 +1,20 @@
 /*
  * 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.scoping;
 
-import com.google.inject.*;
-
 import org.eclipse.core.runtime.*;
 
+import com.google.inject.*;
+
 /**
  * Provider of instances of <code>{@link IExtensionRegistry}</code>.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @Singleton public class ExtensionRegistryProvider implements Provider<IExtensionRegistry> {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/FieldNotationScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/FieldNotationScopeFinder.java
index 19a9c3a..ad59afc 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/FieldNotationScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/FieldNotationScopeFinder.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -32,13 +32,17 @@
 
   Collection<IEObjectDescription> sourceOfNormalFieldNamesOf(ComplexValue value) {
     MessageField source = sourceOf(value);
-    if (source == null) return emptySet();
+    if (source == null) {
+      return emptySet();
+    }
     return propertiesInTypeOf(source);
   }
 
   Collection<IEObjectDescription> sourceOfExtensionFieldNamesOf(ComplexValue value) {
     MessageField source = sourceOf(value);
-    if (source == null) return emptySet();
+    if (source == null) {
+      return emptySet();
+    }
     return propertiesInExtendMessageOf(source);
   }
 
@@ -56,7 +60,9 @@
     if (container instanceof ComplexValueField) {
       source = sourceOf((ComplexValueField) container);
     }
-    if (source instanceof MessageField) return (MessageField) source;
+    if (source instanceof MessageField) {
+      return (MessageField) source;
+    }
     return null;
   }
 
@@ -83,7 +89,9 @@
     // check first in descriptor.proto
     for (TypeExtension extension : modelFinder.extensionsOf(fieldType, modelFinder.rootOf(field))) {
       for (MessageElement element : extension.getElements()) {
-        if (!(element instanceof MessageField)) continue;
+        if (!(element instanceof MessageField)) {
+          continue;
+        }
         descriptions.addAll(qualifiedNameDescriptions.qualifiedNames(element));
       }
     }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/IFileUriResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/IFileUriResolver.java
index afb2052..e2337cf 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/IFileUriResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/IFileUriResolver.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -15,7 +15,7 @@
 
 /**
  * Resolves "import" URIs.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 @ImplementedBy(NullFileUriResolver.class) public interface IFileUriResolver {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/LiteralDescriptions.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/LiteralDescriptions.java
index ddeac6d..46f9693 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/LiteralDescriptions.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/LiteralDescriptions.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -12,12 +12,12 @@
 import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
-import com.google.eclipse.protobuf.protobuf.*;
-import com.google.eclipse.protobuf.protobuf.Enum;
+import java.util.*;
 
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.protobuf.Enum;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -25,7 +25,9 @@
 class LiteralDescriptions {
 
   Collection<IEObjectDescription> literalsOf(Enum anEnum) {
-    if (anEnum == null) return emptyList();
+    if (anEnum == null) {
+      return emptyList();
+    }
     List<IEObjectDescription> descriptions = new ArrayList<IEObjectDescription>();
     for (Literal literal : getAllContentsOfType(anEnum, Literal.class)) {
       String name = literal.getName();
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/NativeOptionDescriptions.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/NativeOptionDescriptions.java
index 0a499ea..7e00ff6 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/NativeOptionDescriptions.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/NativeOptionDescriptions.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -11,13 +11,13 @@
 import static java.util.Collections.emptyList;
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
-import com.google.eclipse.protobuf.protobuf.*;
-import com.google.inject.Inject;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.inject.Inject;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -37,7 +37,9 @@
   private Collection<IEObjectDescription> allSources(EObject option) {
     ProtoDescriptor descriptor = descriptorProvider.primaryDescriptor();
     Collection<MessageField> optionSources = descriptor.availableOptionsFor(option.eContainer());
-    if (optionSources.isEmpty()) return emptyList();
+    if (optionSources.isEmpty()) {
+      return emptyList();
+    }
     return describe(optionSources);
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/PackageIntersectionDescriptions.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/PackageIntersectionDescriptions.java
index 318d115..60b2ca3 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/PackageIntersectionDescriptions.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/PackageIntersectionDescriptions.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -11,15 +11,15 @@
 import static java.util.Collections.emptySet;
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
-import com.google.eclipse.protobuf.model.util.*;
-import com.google.eclipse.protobuf.protobuf.Package;
-import com.google.inject.Inject;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.*;
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
+import com.google.eclipse.protobuf.model.util.*;
+import com.google.eclipse.protobuf.protobuf.Package;
+import com.google.inject.Inject;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -32,7 +32,9 @@
 
   // See issue 161
   Collection<IEObjectDescription> intersection(Package fromImporter, Package fromImported, EObject e) {
-    if (fromImporter == null || fromImported == null) return emptySet();
+    if (fromImporter == null || fromImported == null) {
+      return emptySet();
+    }
     return intersection2(segmentNames(fromImporter), segmentNames(fromImported), e);
   }
 
@@ -51,7 +53,10 @@
         break;
       }
     }
-    if (start == 0) return emptySet(); // no intersection found.
+    if (start == 0)
+     {
+      return emptySet(); // no intersection found.
+    }
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     QualifiedName fqn = nameProvider.getFullyQualifiedName(e);
     List<String> segments = new ArrayList<String>(fqn.getSegments());
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptor.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptor.java
index 19c7b43..f18dbc6 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptor.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptor.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -34,7 +34,7 @@
 
 /**
  * Contains the elements from descriptor.proto (provided with protobuf's library.)
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtoDescriptor {
@@ -93,17 +93,22 @@
   }
 
   private void addOptionTypes() {
-    for (OptionType type : OptionType.values())
+    for (OptionType type : OptionType.values()) {
       optionsByType.put(type, new LinkedHashMap<String, MessageField>());
+    }
   }
 
   private void initContents() {
     allTypes.addAll(getAllContentsOfType(root, Message.class));
     for (ComplexType t : allTypes) {
-      if (!(t instanceof Message)) continue;
+      if (!(t instanceof Message)) {
+        continue;
+      }
       Message m = (Message) t;
       OptionType type = OPTION_DEFINITION_BY_NAME.get(m.getName());
-      if (type == null) continue;
+      if (type == null) {
+        continue;
+      }
       initOptions(m, type);
     }
   }
@@ -123,7 +128,9 @@
   }
 
   private void addOption(MessageField optionSource, OptionType type) {
-    if (shouldIgnore(optionSource)) return;
+    if (shouldIgnore(optionSource)) {
+      return;
+    }
     String name = optionSource.getName();
     optionsByType.get(type).put(name, optionSource);
   }
@@ -142,9 +149,13 @@
    */
   public Collection<MessageField> availableOptionsFor(EObject o) {
     EObject target = o;
-    if (target instanceof NativeOption) target = target.eContainer();
+    if (target instanceof NativeOption) {
+      target = target.eContainer();
+    }
     OptionType type = findOptionTypeForLevelOf(target);
-    if (type == null) return emptyList();
+    if (type == null) {
+      return emptyList();
+    }
     return optionsOfType(type);
   }
 
@@ -160,9 +171,13 @@
    * @return the enum type of the given field or {@code null} if the type of the given field is not enum.
    */
   public Enum enumTypeOf(MessageField field) {
-    if (field == null) return null;
+    if (field == null) {
+      return null;
+    }
     INode node = nodes.firstNodeForFeature(field, MESSAGE_FIELD__TYPE);
-    if (node == null) return null;
+    if (node == null) {
+      return null;
+    }
     String typeName = node.getText();
     return (isEmpty(typeName)) ? null : enumByName(typeName.trim());
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java
index 897bb10..b3274a5 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtoDescriptorProvider.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -23,7 +23,7 @@
 
 /**
  * Provider of <code>{@link ProtoDescriptor}</code>s.
- * 
+ *
  * @author Alex Ruiz
  */
 @Singleton public class ProtoDescriptorProvider {
@@ -48,11 +48,15 @@
   public ProtoDescriptor descriptor(String importUri) {
     ensureProtoDescriptorsAreCreated();
     ProtoDescriptor protoDescriptor = descriptors.get(importUri);
-    if (protoDescriptor != null) return protoDescriptor;
+    if (protoDescriptor != null) {
+      return protoDescriptor;
+    }
     // URI could have been resolved
     URI uri = URI.createURI(importUri);
     for (Entry<String, URI> info : descriptorInfos.entrySet()) {
-      if (info.getValue().equals(uri)) return descriptor(info.getKey());
+      if (info.getValue().equals(uri)) {
+        return descriptor(info.getKey());
+      }
     }
     return null;
   }
@@ -102,32 +106,44 @@
 
   private ProtoDescriptorInfo additionalDescriptorInfo() {
     IConfigurationElement[] config = registry.getConfigurationElementsFor(EXTENSION_ID);
-    if (config == null) return defaultDescriptorInfo();
+    if (config == null) {
+      return defaultDescriptorInfo();
+    }
     for (IConfigurationElement e : config) {
       ProtoDescriptorInfo info = descriptorInfo(e);
-      if (info != null) return info;
+      if (info != null) {
+        return info;
+      }
     }
     return null;
   }
 
   private static ProtoDescriptorInfo descriptorInfo(IConfigurationElement e) {
     String importUri = e.getAttribute("importUri");
-    if (isEmpty(importUri)) return null;
+    if (isEmpty(importUri)) {
+      return null;
+    }
     URI location = descriptorLocation(e);
-    if (location == null) return null;
+    if (location == null) {
+      return null;
+    }
     return new ProtoDescriptorInfo(importUri, location);
   }
 
   private static URI descriptorLocation(IConfigurationElement e) {
     String path = e.getAttribute("path");
-    if (isEmpty(path)) return null;
+    if (isEmpty(path)) {
+      return null;
+    }
     StringBuilder uri = new StringBuilder();
     uri.append("platform:/plugin/").append(e.getContributor().getName()).append("/").append(path);
     return URI.createURI(uri.toString());
   }
 
   private void add(ProtoDescriptorInfo descriptorInfo) {
-    if (descriptorInfo == null) return;
+    if (descriptorInfo == null) {
+      return;
+    }
     primaryImportUri = descriptorInfo.importUri;
     descriptorInfos.put(primaryImportUri, descriptorInfo.location);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
index 320a2ed..0a4f851 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufImportUriResolver.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -22,7 +22,7 @@
  * This {@link ImportUriResolver} adds "platform:/resource" to any URI if is not specified, so EMF can find the imported
  * resource.
  * </p>
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufImportUriResolver extends ImportUriResolver {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider.java
index 1883da8..58558d2 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ProtobufScopeProvider.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -25,9 +25,9 @@
 
 /**
  * Custom scoping description.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
- * 
+ *
  * @see <a href="http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping">Xtext Scoping</a>
  */
 public class ProtobufScopeProvider extends AbstractDeclarativeScopeProvider implements Scoping {
@@ -162,7 +162,9 @@
   }
 
   private Collection<IEObjectDescription> allPossibleSourcesOf(OptionField field) {
-    if (field == null) return emptySet();
+    if (field == null) {
+      return emptySet();
+    }
     EObject container = field.eContainer();
     if (container instanceof CustomOption) {
       CustomOption option = (CustomOption) container;
@@ -215,7 +217,9 @@
 
   private Collection<IEObjectDescription> findSources(FieldName name) {
     ComplexValue value = container(name);
-    if (value == null) return emptySet();
+    if (value == null) {
+      return emptySet();
+    }
     if (name instanceof NormalFieldName) { return allPossibleNamesOfNormalFieldsOf(value); }
     return allPossibleNamesOfExtensionFieldsOf(value);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/QualifiedNameDescriptions.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/QualifiedNameDescriptions.java
index 51f60b4..e9a14d7 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/QualifiedNameDescriptions.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/QualifiedNameDescriptions.java
@@ -1,24 +1,24 @@
 /*
  * 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.scoping;
 
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
-import com.google.eclipse.protobuf.model.util.QualifiedNames;
-import com.google.eclipse.protobuf.naming.*;
-import com.google.inject.Inject;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.QualifiedName;
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
+import com.google.eclipse.protobuf.model.util.QualifiedNames;
+import com.google.eclipse.protobuf.naming.IProtobufQualifiedNameProvider;
+import com.google.inject.Inject;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
index 488c53c..cc62372 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ScopeFinder.java
@@ -1,19 +1,19 @@
 /*
  * 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.scoping;
 
-import com.google.eclipse.protobuf.protobuf.Import;
-import com.google.eclipse.protobuf.protobuf.Package;
+import java.util.Collection;
 
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.Collection;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.protobuf.Package;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Scoping.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Scoping.java
index 212fad2..9f526bf 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Scoping.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/Scoping.java
@@ -1,18 +1,18 @@
 /*
  * 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.scoping;
 
-import com.google.eclipse.protobuf.protobuf.*;
+import java.util.Collection;
 
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.Collection;
+import com.google.eclipse.protobuf.protobuf.*;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
index 7a8719b..a36eae3 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/TypeScopeFinder.java
@@ -1,9 +1,9 @@
 /*
  * 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.scoping;
@@ -11,16 +11,16 @@
 import static java.util.Collections.emptySet;
 import static org.eclipse.xtext.resource.EObjectDescription.create;
 
-import com.google.eclipse.protobuf.naming.LocalNamesProvider;
-import com.google.eclipse.protobuf.protobuf.*;
-import com.google.eclipse.protobuf.protobuf.Package;
-import com.google.inject.Inject;
+import java.util.*;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.naming.QualifiedName;
 import org.eclipse.xtext.resource.IEObjectDescription;
 
-import java.util.*;
+import com.google.eclipse.protobuf.naming.LocalNamesProvider;
+import com.google.eclipse.protobuf.protobuf.*;
+import com.google.eclipse.protobuf.protobuf.Package;
+import com.google.inject.Inject;
 
 /**
  * @author alruiz@google.com (Alex Ruiz)
@@ -34,7 +34,9 @@
 
   @Override public Collection<IEObjectDescription> imported(Package fromImporter, Package fromImported, Object target,
       Object criteria) {
-    if (!isInstance(target, criteria)) return emptySet();
+    if (!isInstance(target, criteria)) {
+      return emptySet();
+    }
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     EObject e = (EObject) target;
     descriptions.addAll(qualifiedNamesDescriptions.qualifiedNames(e));
@@ -46,14 +48,18 @@
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     ProtoDescriptor descriptor = descriptorProvider.descriptor(anImport.getImportURI());
     for (ComplexType type : descriptor.allTypes()) {
-      if (!isInstance(type, criteria)) continue;
+      if (!isInstance(type, criteria)) {
+        continue;
+      }
       descriptions.addAll(qualifiedNamesDescriptions.qualifiedNames(type));
     }
     return descriptions;
   }
 
   @Override public Collection<IEObjectDescription> local(Object target, Object criteria, int level) {
-    if (!isInstance(target, criteria)) return emptySet();
+    if (!isInstance(target, criteria)) {
+      return emptySet();
+    }
     EObject e = (EObject) target;
     Set<IEObjectDescription> descriptions = new HashSet<IEObjectDescription>();
     List<QualifiedName> names = localNamesProvider.names(e);
@@ -71,7 +77,9 @@
   }
 
   private Class<?> targetTypeFrom(Object criteria) {
-    if (criteria instanceof Class<?>) return (Class<?>) criteria;
+    if (criteria instanceof Class<?>) {
+      return (Class<?>) criteria;
+    }
     throw new IllegalArgumentException("Search criteria should be Class<?>");
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Closeables.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Closeables.java
index a141bce..88a32ba 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Closeables.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Closeables.java
@@ -1,9 +1,9 @@
 /*
  * 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.util;
@@ -12,7 +12,7 @@
 
 /**
  * Utility methods related to <code>{@link Closeable}</code>s.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class Closeables {
@@ -23,7 +23,9 @@
    * @return {@code false} if the given {@code Closeable} was {@code null}; {@code true} otherwise.
    */
   public static boolean closeQuietly(Closeable c) {
-    if (c == null) return false;
+    if (c == null) {
+      return false;
+    }
     try {
       c.close();
     } catch (Throwable ignored) {}
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/CommonWords.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/CommonWords.java
index 3405700..b74a539 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/CommonWords.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/CommonWords.java
@@ -1,9 +1,9 @@
 /*
  * 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.util;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Encodings.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Encodings.java
index 6c2d8ac..f3cc3f8 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Encodings.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Encodings.java
@@ -1,16 +1,16 @@
 /*
  * 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.util;
 
 /**
  * Encodings used in this project.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public final class Encodings {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Objects.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Objects.java
new file mode 100644
index 0000000..6b8b0b6
--- /dev/null
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Objects.java
@@ -0,0 +1,45 @@
+/*
+ * 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.util;
+
+/**
+ * Utility methods related to objects.
+ *
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public final class Objects {
+
+  /** Prime number used to calculate the hash code of objects. */
+  public static final int HASH_CODE_PRIME = 31;
+
+  /**
+   * Returns {@code true} if the given objects are equal or if both objects are {@code null}.
+   * @param o1 one of the objects to compare.
+   * @param o2 one of the objects to compare.
+   * @return {@code true} if the given objects are equal or if both objects are {@code null}.
+   */
+  public static boolean areEqual(Object o1, Object o2) {
+    if (o1 == null) {
+      return o2 == null;
+    }
+    return o1.equals(o2);
+  }
+
+  /**
+   * Returns the hash code for the given object. If the object is {@code null}, this method returns zero. Otherwise
+   * calls the method {@code hashCode} of the given object.
+   * @param o the given object.
+   * @return the hash code for the given object
+   */
+  public static int hashCodeOf(Object o) {
+    return o != null ? o.hashCode() : 0;
+  }
+
+  private Objects() {}
+}
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Strings.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Strings.java
index 0c2c520..0dc138f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Strings.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/Strings.java
@@ -1,16 +1,16 @@
 /*
  * 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.util;
 
 /**
  * Utility methods related to {@code String}.s
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public final class Strings {
@@ -21,7 +21,9 @@
    * @return the given {@code String} in double quotes, or {@code null} if the given {@code String} is {@code null}.
    */
   public static String quote(String s) {
-    if (s == null) return s;
+    if (s == null) {
+      return s;
+    }
     return "\"" + s + "\"";
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/SystemProperties.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/SystemProperties.java
index 91f7260..fa18ab6 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/SystemProperties.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/util/SystemProperties.java
@@ -1,16 +1,16 @@
 /*
  * 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.util;
 
 /**
  * System properties.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public final class SystemProperties {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/DataTypeValidator.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/DataTypeValidator.java
index e0b764c..b40e264 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/DataTypeValidator.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/DataTypeValidator.java
@@ -1,9 +1,9 @@
 /*
  * 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.validation;
@@ -44,15 +44,25 @@
   }
 
   private void checkValueTypeMatchesFieldType(FieldOption option, MessageField field) {
-    if (validateBool(option, field)) return;
-    if (validateFloatingPointNumber(option, field)) return;
-    if (validateInteger(option, field)) return;
-    if (validateString(option, field)) return;
+    if (validateBool(option, field)) {
+      return;
+    }
+    if (validateFloatingPointNumber(option, field)) {
+      return;
+    }
+    if (validateInteger(option, field)) {
+      return;
+    }
+    if (validateString(option, field)) {
+      return;
+    }
     validateEnumLiteral(option, field);
   }
 
   private boolean validateBool(FieldOption option, MessageField field) {
-    if (!messageFields.isBool(field)) return false;
+    if (!messageFields.isBool(field)) {
+      return false;
+    }
     Value value = option.getValue();
     if (!(value instanceof BooleanLink)) {
       error(expectedTrueOrFalse, option, FIELD_OPTION__VALUE, EXPECTED_BOOL_ERROR);
@@ -61,7 +71,9 @@
   }
 
   private boolean validateFloatingPointNumber(FieldOption option, MessageField field) {
-    if (!messageFields.isFloatingPointNumber(field)) return false;
+    if (!messageFields.isFloatingPointNumber(field)) {
+      return false;
+    }
     Value value = option.getValue();
     if (!(value instanceof DoubleLink) && !isInteger(value)) {
       error(expectedNumber, FIELD_OPTION__VALUE);
@@ -70,7 +82,9 @@
   }
 
   private boolean validateInteger(FieldOption option, MessageField field) {
-    if (!messageFields.isInteger(field)) return false;
+    if (!messageFields.isInteger(field)) {
+      return false;
+    }
     Value value = option.getValue();
     if (!isInteger(value)) {
       error(expectedInteger, FIELD_OPTION__VALUE);
@@ -102,7 +116,9 @@
   }
 
   private boolean validateString(FieldOption option, MessageField field) {
-    if (!messageFields.isBytes(field) && !messageFields.isString(field)) return false;
+    if (!messageFields.isBytes(field) && !messageFields.isString(field)) {
+      return false;
+    }
     Value value = option.getValue();
     if (!(value instanceof StringLink)) {
       error(expectedString, option, FIELD_OPTION__VALUE, EXPECTED_STRING_ERROR);
@@ -113,7 +129,9 @@
   private boolean validateEnumLiteral(FieldOption option, MessageField field) {
     Value value = option.getValue();
     Enum anEnum = modelFinder.enumTypeOf(field);
-    if (anEnum == null) return false;
+    if (anEnum == null) {
+      return false;
+    }
     if (!(value instanceof LiteralLink)) {
       error(expectedIdentifier, FIELD_OPTION__VALUE);
       return true;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ImportValidator.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ImportValidator.java
index 99c8006..3f03fb9 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ImportValidator.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ImportValidator.java
@@ -1,9 +1,9 @@
 /*
  * 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.validation;
@@ -25,7 +25,7 @@
 
 /**
  * Verifies that imports only refer to "proto2" files.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ImportValidator extends AbstractDeclarativeValidator {
@@ -47,7 +47,9 @@
 
   private void warnIfNonProto2ImportsFound(Resource resource) {
     Protobuf root = finder.rootOf(resource);
-    if (!protobufs.isProto2(root)) return;
+    if (!protobufs.isProto2(root)) {
+      return;
+    }
     ResourceSet resourceSet = resource.getResourceSet();
     boolean hasNonProto2 = false;
     List<Pair<Import, Resource>> resourcesToCheck = new ArrayList<Pair<Import, Resource>>();
@@ -63,7 +65,9 @@
       }
       resourcesToCheck.add(pair(anImport, imported));
     }
-    if (hasNonProto2) return;
+    if (hasNonProto2) {
+      return;
+    }
     for (Pair<Import, Resource> p : resourcesToCheck) {
       if (hasNonProto2(p, checked, resourceSet)) {
         warnNonProto2ImportFoundIn(p.getFirst());
@@ -74,16 +78,24 @@
 
   private boolean hasNonProto2(Pair<Import, Resource> toCheck, Set<URI> checked, ResourceSet resourceSet) {
     Protobuf root = finder.rootOf(toCheck.getSecond());
-    if (!protobufs.isProto2(root)) return false;
+    if (!protobufs.isProto2(root)) {
+      return false;
+    }
     List<Pair<Import, Resource>> resourcesToCheck = new ArrayList<Pair<Import, Resource>>();
     for (Import anImport : finder.importsIn(root)) {
       Resource imported = resources.importedResource(anImport, resourceSet);
-      if (checked.contains(imported.getURI())) continue;
-      if (!isProto2(imported)) return true;
+      if (checked.contains(imported.getURI())) {
+        continue;
+      }
+      if (!isProto2(imported)) {
+        return true;
+      }
       resourcesToCheck.add(pair(toCheck.getFirst(), imported));
     }
     for (Pair<Import, Resource> p : resourcesToCheck) {
-      if (hasNonProto2(p, checked, resourceSet)) return true;
+      if (hasNonProto2(p, checked, resourceSet)) {
+        return true;
+      }
     }
     return false;
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.java
index cbe6877..e9afea3 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.java
@@ -1,9 +1,9 @@
 /*
  * 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.validation;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator.java
index ae65427..eeb76d8 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufJavaValidator.java
@@ -1,9 +1,9 @@
 /*
  * 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.validation;
@@ -47,12 +47,16 @@
   }
 
   @Check public void checkImportIsResolved(Import anImport) {
-    if (retryUntilItIsResolved(anImport)) return;
+    if (retryUntilItIsResolved(anImport)) {
+      return;
+    }
     error(format(importNotFound, anImport.getImportURI()), IMPORT__IMPORT_URI);
   }
 
   private boolean retryUntilItIsResolved(Import anImport) {
-    if (isResolved(anImport)) return true;
+    if (isResolved(anImport)) {
+      return true;
+    }
     uriResolver.apply(anImport);
     return isResolved(anImport);
   }
@@ -61,29 +65,42 @@
     String importUri = anImport.getImportURI();
     if (!isEmpty(importUri)) {
       URI uri = URI.createURI(importUri);
-      if (!isEmpty(uri.scheme())) return true;
+      if (!isEmpty(uri.scheme())) {
+        return true;
+      }
     }
     return false;
   }
 
   @Check public void checkSyntaxIsProto2(Syntax syntax) {
     String name = syntax.getName();
-    if (isProto2Syntax(name)) return;
+    if (isProto2Syntax(name)) {
+      return;
+    }
     String msg = (name == null) ? expectedSyntaxIdentifier : format(unrecognizedSyntaxIdentifier, name);
     error(msg, syntax, SYNTAX__NAME, SYNTAX_IS_NOT_PROTO2_ERROR);
   }
 
   @Check public void checkTagNumberIsUnique(IndexedElement e) {
-    if (isNameNull(e)) return; // we already show an error if name is null, no need to go further.
+    if (isNameNull(e))
+     {
+      return; // we already show an error if name is null, no need to go further.
+    }
     long index = indexedElements.indexOf(e);
     EObject container = e.eContainer();
     if (container instanceof Message) {
       Message message = (Message) container;
       for (MessageElement element : message.getElements()) {
-        if (!(element instanceof IndexedElement)) continue;
+        if (!(element instanceof IndexedElement)) {
+          continue;
+        }
         IndexedElement other = (IndexedElement) element;
-        if (other == e) break;
-        if (indexedElements.indexOf(other) != index) continue;
+        if (other == e) {
+          break;
+        }
+        if (indexedElements.indexOf(other) != index) {
+          continue;
+        }
         QualifiedName messageName = qualifiedNameProvider.getFullyQualifiedName(message);
         String msg = format(fieldNumberAlreadyUsed, index, messageName.toString(), indexedElements.nameOf(other));
         invalidTagNumberError(msg, e);
@@ -93,9 +110,14 @@
   }
 
   @Check public void checkTagNumberIsGreaterThanZero(IndexedElement e) {
-    if (isNameNull(e)) return; // we already show an error if name is null, no need to go further.
+    if (isNameNull(e))
+     {
+      return; // we already show an error if name is null, no need to go further.
+    }
     long index = indexedElements.indexOf(e);
-    if (index > 0) return;
+    if (index > 0) {
+      return;
+    }
     String msg = (index == 0) ? fieldNumbersMustBePositive : expectedFieldNumber;
     invalidTagNumberError(msg, e);
   }
@@ -109,10 +131,14 @@
     Protobuf root = (Protobuf) aPackage.eContainer();
     for (ProtobufElement e : root.getElements()) {
       if (e == aPackage) {
-        if (firstFound) error(multiplePackages, aPackage, PACKAGE__NAME, MORE_THAN_ONE_PACKAGE_ERROR);
+        if (firstFound) {
+          error(multiplePackages, aPackage, PACKAGE__NAME, MORE_THAN_ONE_PACKAGE_ERROR);
+        }
         return;
       }
-      if (e instanceof Package && !firstFound) firstFound = true;
+      if (e instanceof Package && !firstFound) {
+        firstFound = true;
+      }
     }
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufResourceValidator.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufResourceValidator.java
index 2328725..7583cb0 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufResourceValidator.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufResourceValidator.java
@@ -1,9 +1,9 @@
 /*
  * 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.validation;
@@ -33,7 +33,7 @@
 
 /**
  * Adds support for converting scoping errors into warnings if non-proto2 files are imported.
- * 
+ *
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufResourceValidator extends ResourceValidatorImpl {
@@ -43,18 +43,24 @@
   @Override public List<Issue> validate(Resource resource, CheckMode mode, CancelIndicator indicator) {
     CancelIndicator monitor = indicator == null ? CancelIndicator.NullImpl : indicator;
     resolveProxies(resource, monitor);
-    if (monitor.isCanceled()) return null;
+    if (monitor.isCanceled()) {
+      return null;
+    }
     List<Issue> result = newArrayListWithExpectedSize(resource.getErrors().size() + resource.getWarnings().size());
     try {
       IAcceptor<Issue> acceptor = createAcceptor(result);
       boolean hasNonProto2Import = false;
       for (EObject element : resource.getContents()) {
         try {
-          if (monitor.isCanceled()) return null;
+          if (monitor.isCanceled()) {
+            return null;
+          }
           Diagnostic diagnostic = getDiagnostician().validate(element, validationOptions(resource, mode, monitor));
           if (!diagnostic.getChildren().isEmpty()) {
             for (Diagnostic child : diagnostic.getChildren()) {
-              if (importingNonProto2.equals(child.getMessage())) hasNonProto2Import = true;
+              if (importingNonProto2.equals(child.getMessage())) {
+                hasNonProto2Import = true;
+              }
               issueFromEValidatorDiagnostic(child, acceptor);
             }
           } else {
@@ -66,13 +72,17 @@
       }
       if (mode.shouldCheck(FAST)) {
         for (Resource.Diagnostic error : resource.getErrors()) {
-          if (monitor.isCanceled()) return null;
+          if (monitor.isCanceled()) {
+            return null;
+          }
           Severity severity = ERROR;
           if (hasNonProto2Import && isUnresolveReferenceError(error)) {
             severity = WARNING;
             ProtobufDiagnostic d = (ProtobufDiagnostic) error;
             if (!d.getMessage().endsWith(scopingError)) {
-              if (!d.getMessage().endsWith(".")) d.appendToMessage(".");
+              if (!d.getMessage().endsWith(".")) {
+                d.appendToMessage(".");
+              }
               d.appendToMessage(" ");
               d.appendToMessage(scopingError);
             }
@@ -80,7 +90,9 @@
           issueFromXtextResourceDiagnostic(error, severity, acceptor);
         }
         for (Resource.Diagnostic warning : resource.getWarnings()) {
-          if (monitor.isCanceled()) return null;
+          if (monitor.isCanceled()) {
+            return null;
+          }
           issueFromXtextResourceDiagnostic(warning, WARNING, acceptor);
         }
       }
@@ -103,9 +115,13 @@
   }
 
   private boolean isUnresolveReferenceError(Resource.Diagnostic error) {
-    if (!(error instanceof ProtobufDiagnostic)) return false;
+    if (!(error instanceof ProtobufDiagnostic)) {
+      return false;
+    }
     ProtobufDiagnostic d = (ProtobufDiagnostic) error;
-    if (!"org.eclipse.xtext.diagnostics.Diagnostic.Linking".equals(d.getCode())) return false;
+    if (!"org.eclipse.xtext.diagnostics.Diagnostic.Linking".equals(d.getCode())) {
+      return false;
+    }
     return error.getMessage().startsWith("Couldn't resolve");
   }
 }
\ No newline at end of file
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufSyntaxErrorMessageProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufSyntaxErrorMessageProvider.java
index 236aca8..34d2f36 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufSyntaxErrorMessageProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/ProtobufSyntaxErrorMessageProvider.java
@@ -27,13 +27,19 @@
   @Override public SyntaxErrorMessage getSyntaxErrorMessage(IParserErrorContext context) {
     String message = context.getDefaultMessage();
     EObject currentContext = context.getCurrentContext();
-    if (currentContext instanceof MessageField) message = mapToProtocMessage(message, (MessageField) currentContext);
-    if (currentContext == null && message.contains("RULE_STRING")) return null;
+    if (currentContext instanceof MessageField) {
+      message = mapToProtocMessage(message, (MessageField) currentContext);
+    }
+    if (currentContext == null && message.contains("RULE_STRING")) {
+      return null;
+    }
     return new SyntaxErrorMessage(message, SYNTAX_DIAGNOSTIC);
   }
 
   private String mapToProtocMessage(String message, MessageField field) {
-    if (message.contains("RULE_ID") && field.getName() == null) return expectedFieldName;
+    if (message.contains("RULE_ID") && field.getName() == null) {
+      return expectedFieldName;
+    }
     if (message.equals("mismatched input ';' expecting '='") && field.getIndex() == 0) {
       return missingFieldNumber;
     }