Codekorrektur der Großschrift deaktivieren

Für Fragen rund um die Ide und zum Debugger
Antworten
MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Codekorrektur der Großschrift deaktivieren

Beitrag von MitjaStachowiak »

Hallo,
da ist sonst auch viel Javascript und so schreibe und dort Eigenschaften von Objekten immer mit einem Kleinbuchstaben beginnen (Also objekt.eigenschaft und nicht objekt.Eigenschaft) schreibe ich auch in Pascal properties, funtionen und co von Objekten klein. Aber der Editor korrigiert das dauernd. Selbst wenn ich in der Deklaration mit einem Kleinbuchstaben beginne, wird objekt.eigenschaft zu objekt.Eigenschaft korrigiert, wenn ich ein Leerzeichen eingebe.

Nervt. :roll:

Ich finde in den Einstellungen nicht, wo man das deaktivieren kann.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von theo »

Kann ich nicht nachvollziehen oder ich verstehe dich falsch.
Lazarus 2.3.0 (rev main-2_3-497-gf8bc3ff316) FPC 3.2.2 x86_64-linux-gtk2
Dateianhänge
doso.png
doso.png (29.11 KiB) 1808 mal betrachtet

Carsten1975
Beiträge: 23
Registriert: Mi 4. Apr 2018, 18:22

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von Carsten1975 »

Unter Werkzeuge -> Einstellungen -> Codetools -> Worte.

Da kannst du es einstellen.

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von MitjaStachowiak »

@theo: Habe nochmal versucht, das zu rekonstruieren. Offenbar versucht der Codeexplorer die Großschreibung immer an die Deklaration anzupassen. In meinem Fall war das Ganze wohl zu komplex und der Codeexplorer findet die Deklaration des Records (im konkreten Fall) nicht und schlägt mir random irgendwelche Schlüsselwörter aus der Unit als Eigenschaften vom Typ "text" vor.

Darunter sind auch die Eigenschaften des deklarierten Records, aber z.B. die Eigensachaft "name" kommt irgendwo anders in der Unit nochmal großgeschrieben vor und dann wir mir das immer falsch korrigiert :roll:

Da müsste man die Code-Korrektur wohl so anpassen, dass wenn als Fallback die Auflistung aller Schlüsselwörter angeboten wird, keine Korrektur der Großschreibung erfolgt...

@Carsten1975: Danke, aber das bezieht sich wohl nicht auf die Namen von Eigenschaften von Objekten...

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von fliegermichl »

Also ich kann das irgendwie auch nicht nachvollziehen.
Ich habe eine Testklasse TMyClass mit der Property "name" erstellt.

Wenn ich dann eine Instanzvariable erzeuge und schreibe MyClass., dann schlägt Lazarus "name" kleingeschrieben vor.
Nenne ich die Property "Name", dann wird es genauso vorgeschlagen.

Lazarus 2.3.0

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von MitjaStachowiak »

Ja, du braucht eine Unit mit sehr vielen Zeilen (>500) und vermutlich komplexer Verschachtelung. Dann schaltet das irgendwann um und schlägt alle Schlüsselwörter der Unit vor.

Wenn ich die gleiche Deklaration in einer eigenen Unit teste, funktioniert es auch.
Dateianhänge
CodeCompletion.png
CodeCompletion.png (13.38 KiB) 1710 mal betrachtet

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von six1 »

Mitja, ich kenne dieses Verhalten, wenn etwas unbekannt ist. Dann scheint er alle möglichen Eigenschaften vorzuschlagen.

Ist dein blocks[0] bekannt und lässt sich der Code soweit kompilieren?
Gruß, Michael

MitjaStachowiak
Lazarusforum e. V.
Beiträge: 394
Registriert: Sa 15. Mai 2010, 13:46
CPU-Target: 64 bit
Kontaktdaten:

Re: Codekorrektur der Großschrift deaktivieren

Beitrag von MitjaStachowiak »

Ja, es liegt nicht an den blocks. Das ist ein Array aus Records, die in der Prozedur definiert werden. Wenn ich das in einer leeren Unit einfüge, geht da die Vervollständigung. Compilieren tut auch alles.

Die Procedure enthält einen Zustandsautomaten mit Gotos. Vielleicht klemmt es dort.

Ich denke aber, es kommt immer irgendwann der Punkt, wo die Vervollständigung in Echtzeit aufgibt. Das richtige Verhalten an dieser Stelle wäre, einfach die Großschreibung nicht mehr an die Deklaration anzupassen. Müssten wir mal als Bugfix vorschlagen. Die Kunst ist erstmal, das Problem zu erklären^^

Antworten