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