Fixed: [Issue 15] Add simple support for refactoring
https://code.google.com/p/protobuf-dt/issues/detail?id=15

Enabled refactoring support from Xtext.
diff --git a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
index 4098738..ad89cad 100644
--- a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
@@ -14,11 +14,6 @@
  org.eclipse.xtext.builder,

  org.antlr.runtime,

  org.eclipse.core.runtime,

- org.eclipse.core.databinding,

- org.eclipse.core.databinding.beans,

- org.eclipse.core.databinding.observable,

- org.eclipse.core.databinding.property,

- org.eclipse.jface.databinding,

  com.ibm.icu,

  org.eclipse.emf.databinding,

  org.eclipse.core.resources

diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index 6a3942f..fd013cb 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -3,241 +3,201 @@
 
 <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">
+  <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>
-    </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>   
+    </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 -->
+  <!-- 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>
 
-	<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>
 
-
-	<!-- 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>
+  <!-- Rename Refactoring -->
+  <extension point="org.eclipse.ui.handlers">
+    <handler
+      class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RenameElementHandler"
+      commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+      <activeWhen>
+        <reference definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+        </reference>
+      </activeWhen>
+    </handler>
+  </extension>
+  <extension point="org.eclipse.ui.menus">
+    <menuContribution locationURI="popup:#TextEditorContext?after=group.edit">
+      <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement" style="push">
+        <visibleWhen checkEnabled="false">
+          <reference definitionId="com.google.eclipse.protobuf.Protobuf.Editor.opened">
+          </reference>
+        </visibleWhen>
+      </command>
+    </menuContribution>
+  </extension>
 </plugin>
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 a954940..410fdeb 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
@@ -93,6 +93,9 @@
 			// quickfix API 
 			fragment = quickfix.QuickfixProviderFragment {}
 
+            // rename refactoring
+            fragment = refactoring.RefactorElementNameFragment {}
+
 			// content assist API  
 			fragment = contentAssist.JavaBasedContentAssistFragment {}