<div dir="ltr">Hi,<div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 31, 2015 at 12:53 AM, Sven Brauch <span dir="ltr"><<a href="mailto:mail@svenbrauch.de" target="_blank">mail@svenbrauch.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey!<br>
<br>
Here are some refactoring tools which come to my mind, apart from the<br>
obvious "rename stuff" tools:<br></blockquote><div><br></div><div>In case you're indeed looking for ideas of refactoring tools (please excuse me if some of those already exist):</div><div><br></div><div>- Move functions to other classes, including either updating all callers or leaving the original variant as a forwarding function</div><div>- move functions up/down in the current class hierarchy (as a kind of shortcut for the general move elsewhere)</div><div>- change function signatures, removing/adding arguments, changing their type etc.</div><div>- Move nested classes to toplevel (i.e. class Foo { class Bar {}; };, move Bar to a separate file)</div><div>- Extract a list of members of one class into a datastructure (i.e. bundling logically close data into a ne strcture)</div><div>- Extract an interface from an existing class (i.e. create a base-class with pure virtuals)</div><div>- Extract methods into a base-class</div><div>- Generate Getter/Setter's for members of a class</div><div>- When having written a class declaration that inherits from an interface class automatically generate implementations for the pure virtual functions</div><div>- sort member functions and variables</div><div><br></div><div>Somewhat related to the above:</div><div><br></div><div>- when using a variable name without declaring it first provide a means to setup either a local or a member variable of the 'right' type (if possible to extract)</div><div>- same thing for functions including setting up the arguments and their types</div><div><br></div><div>In case you're wondering: I just took a look at what Eclipse offers for its Java support and took those that I know I've used at least twice in the past (or those that I would've used multiple times if I would remember they exist).</div><div><br></div><div>Some of those should also probably get keyboard shortcuts, things like rename or move that are used very often.</div><div><br></div><div>Andreas</div></div></div></div>