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