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}"