[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-dev] Re: [cdt-patch] FW: c/c++ refactoring contribution
|
***********************
Warning: Your file, initial-refactoring-contrib.zip, contains more than 32 files after decompression and cannot be scanned.
***********************
Great work, Markus! This is definitely going in the direction I was hoping
to see, i.e., maximize reuse of the LTK and the CDT DOM.
I have committed this with one minor change (i.e. the removal of the
assert since we haven't moved to Java 1.5 yet). It can be found in the
org.eclipse.cdt-core folder in /home/tools. If anyone feels that this is
the wrong place for it, please step forward and we can have that debate
and a proper vote on it.
I have not added this to the cdt feature since the LTK still has the
dependency on JDT. Once that is removed we can have a debate and vote on
whether to add it in so all CDT users get it. From what I've seen so far,
it is going to be a lot better than the current rename refactoring.
One thing to watch out for, Markus and everyone working on this feature,
is scalability. An interesting exercise would be to try this out on our
standard large project, i.e., Mozilla, and see what happens to memory
consumption. I noticed that you are caching the ASTs during the
refactoring. This could get large if you find a lot of files that match.
Cheers,
Doug Schaefer
Ottawa Lab, IBM Rational Software Division
"Schorn, Markus" <Markus.Schorn@xxxxxxxxxxxxx>
Sent by: cdt-patch-admin@xxxxxxxxxxx
03/09/2005 09:16 AM
Please respond to
cdt-patch
To
<cdt-patch@xxxxxxxxxxx>
cc
Subject
[cdt-patch] FW: c/c++ refactoring contribution
***********************
Warning: Your file, initial-refactoring-contrib.zip, contains more than 32
files after decompression and cannot be scanned.
***********************
here is my initial contribution for c/c++ refactoring. You may want to
pass on some of the info to the community when putting the code into
the CVS repository.
This does not come as CVS patch, as this is not a change to an
existing plugin.
Plugins:
========
+ org.eclipse.cdt.refactoring
+ src
+ org.eclipse.cdt.internal.refactoring
+ org.eclipse.cdt.internal.refactoring.scanner
+ org.eclipse.cdt.internal.refactoring.ui
+ org.eclipse.cdt.refactoring
+ org.eclipse.cdt.refactoring.tests
+ src
+ org.eclipse.cdt.core.tests
+ org.eclipse.cdt.refactoring.tests
As the cdt.refactoring plugin depends on ltk.ui.refactoring there is
an implicit dependency on jdt.core. See
https://bugs.eclipse.org/bugs/show_bug.cgi?id=61312
Licensing:
==========
The code is licensed under the EPL, if that is not apropriate I could
change that.
I use a header slightly different to the one used inside CDT. It is the
one suggested at
http://www.eclipse.org/legal/copyrightandlicensenotice.html
(and the one approved by my legal department).
Test cases:
===========
I have ported the existing test cases for renaming to the new
implementation and started to extend them with further tests.
There will be more to do for me.
Status:
=======
The core of the rename-refactoring is implemented. Regression tests that
passed with the old version also pass with the new version. There is one
exception to that for which I'll file a bug today.
The new version additionally fixes the bugs: 72612, 72717, 72605, 79231,
79282, 79295, 72620, 72617.
It is possible to register renaming participants with the same extension
point jdt is using. One of the regression tests shows how to do this.
This could be of interest to the debugger (renaming a function with a
breakpoint sitting on it?)
Undo/Redo is working by means of the refactoring framework. To check it
out you have to enable the 'Java Coding' Action Set in your perspective.
Effects on the GUI:
===================
The plugin adds a menu item to the context menu of the CDT-Editor.
(Refactoring - Rename (work in progress)).
What's next:
============
Starting after Easter I plan to
* finish the checks for shadowing/redeclaring vars/funcs/types.
* extend test cases.
* handle macros.
* extend test cases.
* integrate new rename, undo and redo into the GUI.
* remove old renaming facility.
Markus.
Attachment:
initial-refactoring-contrib.zip
Description: Zip archive