Umbenennen mit verschachtelten Records in Const überfordert.

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Umbenennen mit verschachtelten Records in Const überfordert.

Beitrag von Mathias »

Wen ich den Cursor bei type auf AVR setze und F2 drücke zum Umbenennen, geht der erwartete Dialog auf. Wen ich dann einen neuen Wert eingebe, wird genau der einte Wert auf dem Cursor geändert. Unten bei Const passiert gar nichts.
Setze ich den Cursor unten bei Const auf AVR, dann kommt nur eine Fehlermeldung beim drücken von F2. "embedded_gui_arm_common.pas(52,5) Error: Bezeichner nicht gefunden: AVR"
Auch der Codevervollständiger mit Ctrl+Space hat Mühe.

Ist das so gewollt, oder ein Bug ?

Code: Alles auswählen

unit Embedded_GUI_ARM_Common;

interface

type
  TTemplatesPara = record
    Name,
    Arch,
    SubArch,
    Controller,
    Programmer: string;
    AVR: record
      COM_Port,
      Baud: string;
      Disable_Auto_Erase,
      Chip_Erase: boolean;
      end;
    ARM: record
      FlashBase: string;
      end;
  end;


const
  TemplatesPara: array of TTemplatesPara = ((
    Name: 'STM32F103X8';
    Arch: 'ARM';
    SubArch: 'ARMV7M';
    Controller: 'STM32F103X8';
    Programmer: 'st-flash';
    AVR: (
      COM_Port: '';
      Baud: '';
      Disable_Auto_Erase: False;
      Chip_Erase: False);
    ARM: (
      FlashBase: '0x08000000')), (

    Name: 'Rasberry Pico';
    Arch: 'ARM';
    SubArch: 'ARMV6M';
    Controller: 'RASPI_PICO';
    Programmer: 'uf2';
    AVR: (
      COM_Port: '';
      Baud: '';
      Disable_Auto_Erase: False;
      Chip_Erase: False);
    ARM: (
      FlashBase: '0x00000000')), (

    Name: 'Arduino DUE';
    Arch: 'ARM';
    SubArch: 'ARMV7M';
    Controller: 'ATSAM3X8E';
    Programmer: 'bossac';
    AVR: (
      COM_Port: '';
      Baud: '';
      Disable_Auto_Erase: False;
      Chip_Erase: False);
    ARM: (
      FlashBase: '0x080000')));

implementation

end.
PS: Auch JEDI versagt. Es kommt zwar keine Fehlermeldung, aber die ganze Struktur in Constabschnitt geht verloren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Umbenennen mit verschachtelten Records in Const überfordert.

Beitrag von Socke »

Mathias hat geschrieben:
Mo 7. Mär 2022, 17:15
Ist das so gewollt, oder ein Bug ?
Solange etwas syntaktisch vom Compiler akzeptiert wird, sollten das auch die CodeTools tun. Offensichtlich wird hier nicht der Zusammenhang zwischen Konstanten- und Typ-Definition hergestellt. Setze ich den Cursor auf "AVR" in der Typdefinition, wird dieser dort umbenannt, aber die Konstante bleibt unverändert.
Mathias hat geschrieben:
Mo 7. Mär 2022, 17:15
PS: Auch JEDI versagt. Es kommt zwar keine Fehlermeldung, aber die ganze Struktur in Constabschnitt geht verloren.
In meinem Lazarus 2.3 (363-g34bef0cbf9) funktioniert die JEDI-Formatierung. Es geht zwar die Einrückung verloren, aber die Werte bleiben erhalten.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Umbenennen mit verschachtelten Records in Const überfordert.

Beitrag von Mathias »

Das meinte ich beim JEDI, das Einrücken geht verloren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

PascalDragon
Beiträge: 825
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: Umbenennen mit verschachtelten Records in Const überfordert.

Beitrag von PascalDragon »

Mathias hat geschrieben:
Mo 7. Mär 2022, 17:15
Ist das so gewollt, oder ein Bug ?
Möglicherweise eher ein "wurde für konstante Recorddeklarationen vergessen". So oder so solltest du es melden.
Mathias hat geschrieben:
Mo 7. Mär 2022, 17:15
PS: Auch JEDI versagt. Es kommt zwar keine Fehlermeldung, aber die ganze Struktur in Constabschnitt geht verloren.
Kann sein, dass der JCF konstante Recorddeklarationen einfach stur platt macht. Kannst ja auch mal melden, aber keine Ahnung, ob das Besserung findet.
FPC Compiler Entwickler

Antworten