Added support for files with extension .protodevel.
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index 1d7833d..8552b8b 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -5,7 +5,7 @@
<extension point="org.eclipse.ui.editors">
<editor class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
- contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" default="true" extensions="proto"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor" default="true" extensions="proto,protodevel"
icon="icons/pb.gif" id="com.google.eclipse.protobuf.Protobuf" name="%editor.name">
</editor>
</extension>
@@ -120,6 +120,20 @@
</resourceServiceProvider>
</extension>
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="protodevel">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="protodevel">
+ </resourceServiceProvider>
+ </extension>
+
<!-- Quick Outline -->
<extension point="org.eclipse.ui.handlers">
<handler
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 4228a67..4370e07 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
@@ -8,6 +8,7 @@
*/
package com.google.eclipse.protobuf.ui.preferences.pages.paths;
+import static com.google.eclipse.protobuf.ui.ProtobufUiModule.PLUGIN_ID;
import static com.google.eclipse.protobuf.ui.preferences.EventListeners.addSelectionListener;
import static com.google.eclipse.protobuf.ui.preferences.binding.BindingToButtonSelection.bindSelectionOf;
import static com.google.eclipse.protobuf.ui.preferences.pages.paths.Messages.*;
@@ -18,8 +19,11 @@
import static org.eclipse.core.runtime.jobs.Job.BUILD;
import static org.eclipse.xtext.util.Strings.*;
-import java.util.*;
-import java.util.List;
+import com.google.eclipse.protobuf.ui.preferences.*;
+import com.google.eclipse.protobuf.ui.preferences.binding.*;
+import com.google.eclipse.protobuf.ui.preferences.pages.PreferenceAndPropertyPage;
+import com.google.eclipse.protobuf.ui.validation.ValidationTrigger;
+import com.google.inject.Inject;
import org.apache.log4j.Logger;
import org.eclipse.core.runtime.*;
@@ -31,11 +35,8 @@
import org.eclipse.swt.widgets.*;
import org.eclipse.xtext.ui.PluginImageHelper;
-import com.google.eclipse.protobuf.ui.preferences.*;
-import com.google.eclipse.protobuf.ui.preferences.binding.*;
-import com.google.eclipse.protobuf.ui.preferences.pages.PreferenceAndPropertyPage;
-import com.google.eclipse.protobuf.ui.validation.ValidationTrigger;
-import com.google.inject.Inject;
+import java.util.*;
+import java.util.List;
/**
* Preference page for import paths.
@@ -199,7 +200,7 @@
project().build(FULL_BUILD, monitor);
} catch (CoreException e) {
logger.error(e.getMessage(), e);
- return new Status(ERROR, "unknown", ERROR, e.getMessage(), e); //$NON-NLS-1$
+ return new Status(ERROR, PLUGIN_ID, ERROR, e.getMessage(), e); //$NON-NLS-1$
}
return OK_STATUS;
}
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 a5b1205..b536bb7 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
@@ -63,6 +63,7 @@
document.readOnly(new IUnitOfWork<Void, XtextResource>() {
public java.lang.Void exec(XtextResource resource) throws Exception {
EObject root = resource.getParseResult().getRootASTElement();
+ if (root == null) return null;
resetImports(root);
resource.getLinker().linkModel(root, new ListBasedDiagnosticConsumer());
((XtextDocument) document).checkAndUpdateAnnotations();
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/GenerateProtobuf.mwe2 b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/GenerateProtobuf.mwe2
index c2c5711..492f4f0 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/GenerateProtobuf.mwe2
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/GenerateProtobuf.mwe2
@@ -15,7 +15,7 @@
import org.eclipse.xtext.ui.generator.*
var grammarURI = "classpath:/com/google/eclipse/protobuf/Protobuf.xtext"
-var file.extensions = "proto"
+var file.extensions = "proto, protodevel"
var projectName = "com.google.eclipse.protobuf"
var runtimeProject = "../${projectName}"