Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 318510

Summary: [refactoring] Implement Rename in Workspace quick fix
Product: [Tools] CDT Reporter: Sergey Prigogin <eclipse.sprigogin>
Component: cdt-refactoringAssignee: Sergey Prigogin <eclipse.sprigogin>
Status: RESOLVED FIXED QA Contact: Emanuel Graf <emanuel>
Severity: enhancement    
Priority: P3 CC: malaperle, yevshif
Version: 7.0   
Target Milestone: 8.0   
Hardware: PC   
OS: All   
Whiteboard:
Attachments:
Description Flags
Proposed implementation
eclipse.sprigogin: iplog-
Final implementation. eclipse.sprigogin: iplog-

Description Sergey Prigogin CLA 2010-06-30 14:18:59 EDT
Implement JDT-style Rename in Workspace quick fix.
Comment 1 Sergey Prigogin CLA 2010-08-29 23:51:46 EDT
Created attachment 177698 [details]
Proposed implementation

A review of the implementation will be appreciated. I'm particularly interested in  Markus' opinion on the changes in ASTManager.
Comment 2 Sergey Prigogin CLA 2010-09-01 02:27:54 EDT
Markus, could you please review changes in ASTManager. Thanks.
Comment 3 Sergey Prigogin CLA 2010-09-12 01:20:15 EDT
Created attachment 178696 [details]
Final implementation.
Comment 4 Sergey Prigogin CLA 2010-09-12 01:22:19 EDT
Fixed in HEAD > 20100911.
Comment 5 CDT Genie CLA 2010-09-12 02:23:03 EDT
*** cdt cvs genie on behalf of sprigogin ***
Bug 318510 - Lightweight rename refactoring.

[*] CRenameProcessor.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessor.java?root=Tools_Project&r1=1.5&r2=1.6
[*] RenameMessages.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/RenameMessages.java?root=Tools_Project&r1=1.2&r2=1.3
[*] CRenameProcessorDelegate.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameProcessorDelegate.java?root=Tools_Project&r1=1.9&r2=1.10
[+] CRenameRefactoringPreferences.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameRefactoringPreferences.java?root=Tools_Project&revision=1.1&view=markup
[*] CRenameRefactoringInputPage.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameRefactoringInputPage.java?root=Tools_Project&r1=1.7&r2=1.8
[*] CRenameLocalProcessor.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameLocalProcessor.java?root=Tools_Project&r1=1.5&r2=1.6
[+] RenameInformationPopup.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/RenameInformationPopup.java?root=Tools_Project&revision=1.1&view=markup
[*] CRenameIncludeProcessor.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameIncludeProcessor.java?root=Tools_Project&r1=1.3&r2=1.4
[*] CRenameGlobalProcessor.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameGlobalProcessor.java?root=Tools_Project&r1=1.2&r2=1.3
[*] ASTManager.java 1.21 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/ASTManager.java?root=Tools_Project&r1=1.20&r2=1.21
[*] CRefactory.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRefactory.java?root=Tools_Project&r1=1.8&r2=1.9
[*] CRenameRefactoring.java 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/CRenameRefactoring.java?root=Tools_Project&r1=1.1&r2=1.2
[+] RenameLinkedMode.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/RenameLinkedMode.java?root=Tools_Project&revision=1.1&view=markup
[+] RenameSupport.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/RenameSupport.java?root=Tools_Project&revision=1.1&view=markup
[*] RenameMessages.properties 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/rename/RenameMessages.properties?root=Tools_Project&r1=1.2&r2=1.3

[*] Messages.properties 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/Messages.properties?root=Tools_Project&r1=1.1&r2=1.2
[*] Messages.java 1.6 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/Messages.java?root=Tools_Project&r1=1.5&r2=1.6
[+] IScheduledRefactoring.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/IScheduledRefactoring.java?root=Tools_Project&revision=1.1&view=markup
[+] RefactoringSavePreferences.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/RefactoringSavePreferences.java?root=Tools_Project&revision=1.1&view=markup
[*] CRefactoringDescription.java 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoringDescription.java?root=Tools_Project&r1=1.1&r2=1.2
[+] RefactoringStarter.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/RefactoringStarter.java?root=Tools_Project&revision=1.1&view=markup
[+] ChangeExceptionHandler.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ChangeExceptionHandler.java?root=Tools_Project&revision=1.1&view=markup
[+] RefactoringSaveHelper.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/RefactoringSaveHelper.java?root=Tools_Project&revision=1.1&view=markup
[+] RefactoringExecutionHelper.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/RefactoringExecutionHelper.java?root=Tools_Project&revision=1.1&view=markup
[+] RefactoringAvailabilityTester.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/RefactoringAvailabilityTester.java?root=Tools_Project&revision=1.1&view=markup

[*] CCorrectionAssistant.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/CCorrectionAssistant.java?root=Tools_Project&r1=1.7&r2=1.8
[*] CorrectionCommandHandler.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/CorrectionCommandHandler.java?root=Tools_Project&r1=1.7&r2=1.8
[*] CorrectionMessages.properties 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/CorrectionMessages.properties?root=Tools_Project&r1=1.3&r2=1.4
[*] CorrectionMessages.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/CorrectionMessages.java?root=Tools_Project&r1=1.3&r2=1.4
[*] QuickAssistProcessor.java 1.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/QuickAssistProcessor.java?root=Tools_Project&r1=1.1&r2=1.2

[*] PreferencesMessages.java 1.46 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.java?root=Tools_Project&r1=1.45&r2=1.46
[*] PreferencesMessages.properties 1.96 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/PreferencesMessages.properties?root=Tools_Project&r1=1.95&r2=1.96
[*] CPluginPreferencePage.java 1.30 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/preferences/CPluginPreferencePage.java?root=Tools_Project&r1=1.29&r2=1.30

[*] ActionMessages.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.java?root=Tools_Project&r1=1.11&r2=1.12
[*] WorkbenchRunnableAdapter.java 1.9 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/WorkbenchRunnableAdapter.java?root=Tools_Project&r1=1.8&r2=1.9
[*] ActionMessages.properties 1.20 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionMessages.properties?root=Tools_Project&r1=1.19&r2=1.20
[*] ActionUtil.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/actions/ActionUtil.java?root=Tools_Project&r1=1.6&r2=1.7

[+] RenameRefactoringProposal.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/correction/proposals/RenameRefactoringProposal.java?root=Tools_Project&revision=1.1&view=markup

[*] CEditor.java 1.217 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java?root=Tools_Project&r1=1.216&r2=1.217

[*] OpenAction.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/actions/OpenAction.java?root=Tools_Project&r1=1.11&r2=1.12

[*] CRenameAction.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/refactoring/actions/CRenameAction.java?root=Tools_Project&r1=1.3&r2=1.4
[*] RefactoringAction.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/refactoring/actions/RefactoringAction.java?root=Tools_Project&r1=1.6&r2=1.7

[*] Strings.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/corext/util/Strings.java?root=Tools_Project&r1=1.3&r2=1.4

[*] CUIPlugin.java 1.95 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/CUIPlugin.java?root=Tools_Project&r1=1.94&r2=1.95
[*] PreferenceConstants.java 1.61 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/PreferenceConstants.java?root=Tools_Project&r1=1.60&r2=1.61

[+] BasicElementLabels.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/BasicElementLabels.java?root=Tools_Project&revision=1.1&view=markup

[*] CPluginImages.java 1.92 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CPluginImages.java?root=Tools_Project&r1=1.91&r2=1.92

[*] EditorUtility.java 1.71 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/util/EditorUtility.java?root=Tools_Project&r1=1.70&r2=1.71

[*] AssistQuickFixTest.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/quickfix/AssistQuickFixTest.java?root=Tools_Project&r1=1.3&r2=1.4
Comment 6 Marc-André Laperle CLA 2010-09-13 13:04:57 EDT
Hi Sergey. I just updated to HEAD and I can't rename (alt+shift+r) a simple variable. Maybe a file was not committed? Am I missing something?

int main()
{
  int foo; <-- rename
  foo;
}

Caused by: java.lang.NumberFormatException: There is no setting associated with the key "scope"
	at org.eclipse.jface.dialogs.DialogSettings.getInt(DialogSettings.java:185)
	at org.eclipse.cdt.internal.ui.refactoring.rename.CRenameRefactoringPreferences.getInt(CRenameRefactoringPreferences.java:53)
	at org.eclipse.cdt.internal.ui.refactoring.rename.RenameLinkedMode.undoAndCreateRenameSupport(RenameLinkedMode.java:429)
	at org.eclipse.cdt.internal.ui.refactoring.rename.RenameLinkedMode.doRename(RenameLinkedMode.java:325)
	at org.eclipse.cdt.internal.ui.refactoring.rename.RenameLinkedMode$EditorSynchronizer.left(RenameLinkedMode.java:106)
...
Comment 7 Sergey Prigogin CLA 2010-09-13 13:11:12 EDT
(In reply to comment #6)
The new code is not defensive enough. Will fix shortly.
Comment 8 Sergey Prigogin CLA 2010-09-13 14:34:32 EDT
(In reply to comment #7)
> (In reply to comment #6)
> The new code is not defensive enough. Will fix shortly.

Fixed.
Comment 10 Marc-André Laperle CLA 2010-09-14 12:08:33 EDT
(In reply to comment #8)
> Fixed.

Thanks for working on this, it's a nice feature. I will do some real world testing and report any problems.