refactoring tool?



  • falls es kein stand-alone tool für llnux gibt - welche IDEs haben denn solche Funktionen?



  • u_ser-l schrieb:

    falls es kein stand-alone tool für llnux gibt - welche IDEs haben denn solche Funktionen?

    slick-edit kann das, gibt's auch für linux. das c-refactoring tool von slickedit gibts ausserdem separat (als plugin für eclipse). aber das alles ist leider keine freeware.
    🙂



  • eclipse hat einige refactoring funktionen, "projektweit Bezeichner" geht auf jedenfall.



  • eigentlich brauche ich nur Funktionen zur projektweiten Umbenennung von Bezeichnern und evtl. die Änderung von Parameterlisten.

    for i in $(find . -name \*.cpp -o -name \*.h); do sed 's/i/industLotSpec/g'; done
    

    ist gar nicht gut, wenn man nur mal die Variable i projektweit umbenennen will 😃



  • rapso schrieb:

    eclipse hat einige refactoring funktionen. "projektweit Bezeichner" geht auf jedenfall.

    aha, das werde ich mir mal ansehen.



  • u_ser-l schrieb:

    eigentlich brauche ich nur Funktionen zur projektweiten Umbenennung von Bezeichnern und evtl. die Änderung von Parameterlisten.

    for i in $(find . -name \*.cpp -o -name \*.h); do sed 's/i/industLotSpec/g'; done
    

    ist gar nicht gut, wenn man nur mal die Variable i projektweit umbenennen will 😃

    Jeder gute Editor kennt dafür die "Search & Replace" Funktion.

    Mußt halt alle Codedateien einzeln öffnen und diese Funktion darauf ausführen.
    Oder du benutzt grep und läßt dir ne Liste der Dateien mit den Bezeichnern, die du ändern willst, ausspucken und dann kannst du mit Seach & Replace diese Liste abarbeiten.

    Bei < 20 Codedateien ist das kein großer Aufwand.



  • Putnukel schrieb:

    Bei < 20 Codedateien ist das kein großer Aufwand.

    aha. bei > 500 aber schon.



  • Putnukel schrieb:

    Jeder gute Editor kennt dafür die "Search & Replace" Funktion.

    Was in der Regel nicht das gleiche wie bei den Refactoringlösungen ist. Letztere prüfen meist auch noch nach, ob es wirklich z.B. die Variable ist die man umbenennen will (Und ersetzen nicht alle mit diesen Namen, sondern wirklich nur die eine).



  • Wenn dir für "frei" auch kostenlos bzw. Testversion reicht, dann schau dir mal xrefactory an.

    Ansonsten gibt es da iirc ein paar Sachen von den Mozillaleuten, die teilweise auf dem GCC basieren.



  • Putnukel schrieb:

    Jeder gute Editor kennt dafür die "Search & Replace" Funktion.

    die nutzt aber nicht viel, wenn man Bezeichner wie "i" automatisch durch "locRefList" ersetzen lassen muß, denn dann entsteht Murks wie #locRefListnclude <iostream> 😃

    Alle Quelldateien von Hand zu öffnen und zu bearbeiten ist ja das,
    was ich vermeiden will.



  • rüdiger schrieb:

    Wenn dir für "frei" auch kostenlos bzw. Testversion reicht, dann schau dir mal xrefactory an. Ansonsten gibt es da iirc ein paar Sachen von den Mozillaleuten, die teilweise auf dem GCC basieren.

    Danke für die Tips.



  • Putnukel schrieb:

    Jeder gute Editor kennt dafür die "Search & Replace" Funktion.

    "Search & Replace" ist immer mit Vorsicht zu geniessen, und für manche Fälle total unbrauchbar.

    Refactoring-Lösungen berücksichtigen normalerweise auch Scopes (Klassen, Namespaces, Funktionen).
    Wenn ich Foo::d nach Foo::m_lala umbenennen möchte, dann will ich nicht gleich alle anderen "d" auch nach "m_lala" umbenennen.
    Und ich will ganz sicher nicht dass statt printf("%d", i) dann auf einmal printf("%m_lala", i) dasteht.


Anmelden zum Antworten