Refactoring - Bezeichner umbenennen (F2)

Für Fragen rund um die Ide und zum Debugger
Antworten
Joh
Lazarusforum e. V.
Beiträge: 321
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Refactoring - Bezeichner umbenennen (F2)

Beitrag von Joh »

Moin,

bei umbenennen von Variablen via F2 werden diese sogar in auskommentierten Bereichen umbenannt. => Finde ich gut.
Aber wenn ich deaktivierte Bereiche mit {$IFDEF ...} habe, beiben diese alten Bezeichner stehen. gibt es dafür irgendeinen grund oder ist das ein Bug?

Gerade im aktuellen Fall blöd:
ich wollte eine neue Variable zeile (int) einfügen; spalte (int) gabs schon. Aber es gab eine Variable zeile als String... Diese umbenannt als zeilenText, wie es eigentlich auch sein sollte; aber in dem Bereich mit Kompilerdirektive {$ifdef wird nix umbenannt.
Das fällt einem latürnich später auf die Füße, wenn man die Kompilerdirektive (de)aktiviert.

lg
Jochen
Zuletzt geändert von Joh am Mo 4. Aug 2025, 09:26, insgesamt 2-mal geändert.
just my two Beer

anse
Beiträge: 9
Registriert: So 23. Feb 2025, 16:17
OS, Lazarus, FPC: Winux (L 4.2 FPC 3.2.2)
CPU-Target: 64Bit
Kontaktdaten:

Re: Refactoring - Zeile umbenennen (F2)

Beitrag von anse »

Kann ich bestätigen - deaktivierte Code-Bereiche zwischen IFDEF's werden beim Umbenennen mit F2 nicht abgearbeitet.

Vorkommen in {} Kommentaren werden dabei übrigens umbenannt, obwohl das für mich noch weniger Sinn ergibt.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6918
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Refactoring - Zeile umbenennen (F2)

Beitrag von af0815 »

anse hat geschrieben: So 3. Aug 2025, 10:26 Vorkommen in {} Kommentaren werden dabei übrigens umbenannt, obwohl das für mich noch weniger Sinn ergibt.
Ist sinnvoll, weil auch Objektnamen zwischen den Kommentarklammern vorkommen.

Das bei IFDEFs nicht geht - ist per Design - dazu gabs schon öfter Diskussionen. Vor allen dann ein Problem wenn da was umbenannt wird, wenn man größere Refactorings macht oder für verschiedene Plattformen IFDEFs hat.

Nur so nebenbei, es ist nicht Zeile umbenennen. Es heist genaugenommen "Find or rename Identifier". Daher finden oder umbennen von Bezeichnern.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

PascalDragon
Beiträge: 976
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Refactoring - Zeile umbenennen (F2)

Beitrag von PascalDragon »

Joh hat geschrieben: Sa 2. Aug 2025, 20:21 Aber wenn ich deaktivierte Bereiche mit {$IFDEF ...} habe, beiben diese alten Bezeichner stehen. gibt es dafür irgendeinen grund oder ist das ein Bug?
Das ist absichtlich so, da ein deaktiviertes $IFDEF Code enthalten könnte, den die CodeTools nicht verstehen (zum Beispiel nicht unterstützte Sprachfeatures aus Delphi) und dies dann letztlich zu einem Absturz führen könnte.
FPC Compiler Entwickler

Joh
Lazarusforum e. V.
Beiträge: 321
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Refactoring - Bezeichner umbenennen (F2)

Beitrag von Joh »

af0815 hat geschrieben: So 3. Aug 2025, 11:17 Nur so nebenbei, es ist nicht Zeile umbenennen. Es heist genaugenommen "Find or rename Identifier". Daher finden oder umbennen von Bezeichnern.
uups... Da lag mir im Kopf, das ich die Variable zeile umbenennen wollte...

Ich hab das Thema mal umbenannt!
just my two Beer

Joh
Lazarusforum e. V.
Beiträge: 321
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Refactoring - Bezeichner umbenennen (F2)

Beitrag von Joh »

PascalDragon hat geschrieben: So 3. Aug 2025, 13:59 Das ist absichtlich so, da ein deaktiviertes $IFDEF Code enthalten könnte, den die CodeTools nicht verstehen (zum Beispiel nicht unterstützte Sprachfeatures aus Delphi) und dies dann letztlich zu einem Absturz führen könnte.
ok... wenn da Sinn dahintersteckt. Ich nutze die $IFDEFs allerdings zur Entwicklungszeit auch, um aktuell irrelevanten Code nicht auszuführen: das fällt mir dann besser auf, als ein im Code versteckten if false.

Andererseits wäre eine 2. Option zu
- auch in Kommentaren suchen
, wie
- auch in {IFDEF}-Bereichen suchen
eventuell angebracht.
just my two Beer

Antworten