Initial code import.
This plug-in is pretty functional already:
* Working editor with content-assist based on grammar, context and data type
* Imports of .proto files works
* Content-assist for common options
* Outline View
* Preferences for using protoc on save
* Error markers based on protoc's output
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
new file mode 100644
index 0000000..6a3942f
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <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"
+ icon="icons/pb.gif"
+ id="com.google.eclipse.protobuf.Protobuf"
+ name="%editor.name">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="com.google.eclipse.protobuf.Protobuf.validate">
+ <activeWhen>
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.commands.SmartSemicolonHandler"
+ commandId="com.google.eclipse.protobuf.ui.smartSemicolon">
+ <activeWhen>
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="com.google.eclipse.protobuf.Protobuf"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="com.google.eclipse.protobuf.Protobuf"
+ name="%page.name">
+ <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf"/>
+ </page>
+ <page
+ category="com.google.eclipse.protobuf.Protobuf"
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="com.google.eclipse.protobuf.Protobuf.coloring"
+ name="%page.name.0">
+ <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf"/>
+ </page>
+ <page
+ category="com.google.eclipse.protobuf.Protobuf"
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="com.google.eclipse.protobuf.Protobuf.templates"
+ name="%page.name.1">
+ <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf"/>
+ </page>
+ <page
+ category="com.google.eclipse.protobuf.Protobuf"
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage"
+ id="com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage"
+ name="%page.name.2">
+ <keywordReference id="com.google.eclipse.protobuf.ui.keyword_Protobuf"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="com.google.eclipse.protobuf.ui.keyword_Protobuf"
+ label="%keyword.label"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="%command.description"
+ id="com.google.eclipse.protobuf.Protobuf.validate"
+ name="%command.name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="com.google.eclipse.protobuf.Protobuf.validate"
+ style="push"
+ tooltip="%command.tooltip">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="proto">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="proto">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="%command.description.0"
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="%command.name.0">
+ </command>
+ <command
+ categoryId="org.eclipse.ui.category.textEditor"
+ description="%command.description.1"
+ id="com.google.eclipse.protobuf.ui.smartSemicolon"
+ name="%command.name.1">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="%command.tooltip.0">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator">
+ </markerResolutionGenerator>
+ </extension>
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="com.google.eclipse.protobuf.ui.smartSemicolon"
+ contextId="org.eclipse.xtext.ui.XtextEditorScope"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence=";">
+ </key>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.preferences.CompilerPreferencePage"
+ id="com.google.eclipse.protobuf.ui.properties.CompilerPropertyPage"
+ name="%page.name.3"
+ selectionFilter="single">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:com.google.eclipse.protobuf.ui.builder.ProtobufBuildParticipant">
+ </participant>
+ </extension>
+ <extension
+ id="pbmarker"
+ name="Protocol Buffer Marker"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.core.resources.problemmarker">
+ </super>
+ <super
+ type="org.eclipse.core.resources.textmarker">
+ </super>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+</plugin>