Review Request 124300: Change signature

Maciej Poleski d82ks8djf82msd83hf8sc02lqb5gh5 at gmail.com
Sat Jul 25 17:01:36 UTC 2015



> On Lip 25, 2015, 3:28 po południu, Milian Wolff wrote:
> > hm have you ever tried out oldcpp's "change signature" feature? That one was _much_ better useability wise. You simply edited the signature, and an assistant asked you whether you want to copy the changes to the corresponding define/declaration. That would be much better to copy. Having an editor dialog like you propose here is going to be cumbersome and I don't see myself using that I'm afraid to admit.
> > 
> > What do you say? Can you reuse this code to implement the oldcpp behavior for changing a signature?

You mean "adapt signature" (after change of declaration in source code)?
It is something different. I don't know how to track changes in source code so gracefully, but the main issue here is that i wan't to track changes very precisely so that I preserve as much original information as possible. The most important is not changing signature (in modern code bases we have (one forward declaration +) one definition - at most 2 entities), but adapting uses (arbitrary number of function calls and references). If we only change order of parameters (or remove some) - we can automatically adapt all uses so that code remians semantically equal (change of function name doesn't matter - we always can handle that). Only introduction of new parameters breaks code. This a bit strange dialog (QTableView + 4 QToolButton to be precise) has one important task: collect information in form of binding from original signature to new one.
As I previously mentioned I'm not a good GUI designer. I can give features, usabilitity is always an issue. But I can hardly find necessary informations in "adapt signature" style (even if i forget that i don't know how to handle direct changes in source code (how to use Clang to handle them, to be precise)).


- Maciej


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124300/#review82934
-----------------------------------------------------------


On Lip 13, 2015, 11:34 po południu, Maciej Poleski wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124300/
> -----------------------------------------------------------
> 
> (Updated Lip 13, 2015, 11:34 po południu)
> 
> 
> Review request for KDevelop.
> 
> 
> Repository: kdev-clang
> 
> 
> Description
> -------
> 
> Change signature refactoring
> 
> I decided not to implement rename function refactoring. Change signature will provide this functionality.
> We can rename all functions except constructors, destructors, conversion operators, operators.
> Operators must preserve number of parameters (imagine 2+2 and operator+).
> 
> This functionality allows to:
> - change return type
> - change function name
> - change parameter types (preserving identity, tracking of this is not perfect - we lose this information)
> - change order of parameters
> - introduce new parameters
> - remove existing parameters
> 
> Somewhere here should be screenshoot of this dialog...
> 
> 
> Diffs
> -----
> 
>   refactoring/CMakeLists.txt PRE-CREATION 
>   refactoring/changesignaturedialog.h PRE-CREATION 
>   refactoring/changesignaturedialog.cpp PRE-CREATION 
>   refactoring/changesignaturedialog.ui PRE-CREATION 
>   refactoring/changesignaturerefactoring.h PRE-CREATION 
>   refactoring/changesignaturerefactoring.cpp PRE-CREATION 
>   refactoring/changesignaturerefactoringchangepack.h PRE-CREATION 
>   refactoring/changesignaturerefactoringchangepack.cpp PRE-CREATION 
>   refactoring/changesignaturerefactoringinfopack.h PRE-CREATION 
>   refactoring/changesignaturerefactoringinfopack.cpp PRE-CREATION 
>   refactoring/debug.h PRE-CREATION 
>   refactoring/refactoring.h PRE-CREATION 
>   refactoring/refactoring.cpp PRE-CREATION 
>   refactoring/refactoringmanager.cpp PRE-CREATION 
>   refactoring/utils.h PRE-CREATION 
>   refactoring/utils.cpp PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/124300/diff/
> 
> 
> Testing
> -------
> 
> Manual testing of GUI. No transformation tests yet...
> 
> 
> File Attachments
> ----------------
> 
> snapshot
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/07/08/e8a8db09-92f9-4fb6-ac4a-3ab2a5051033__snapshot1.png
> 
> 
> Thanks,
> 
> Maciej Poleski
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20150725/239cf7c9/attachment.html>


More information about the KDevelop-devel mailing list