Hallo,
ich hätte einen Vorschlag an die Lazarus-Entwickler. Habe lazarus 1.5
Wenn ich in den Bereich von ifdef deaktiviert komme, dann gibt es da leider keine Möglichkeit, Codetools u.ä. anzuwenden (zB Sprung zwischen Deklaration in interface-Teil und implementation), noch gelingt es mir, einen kopierten Bereich farblich hervorzuheben. man muß da auf gut Glück arbeiten. Der Block wird zwar intern markiert (man kann ihn kopieren, löschen, etc.), aber die Markierung bleibt unsichtbar. (Ich brauchte es, um den aktivierten und den deaktivierten Teil zu vergleichen und Teile des deaktivierten Bereichs in die Zwischenablage zu kopieren).
Könnte man diese Funktionen nicht auch im deaktivierten ifdef-Bereich aktivieren?
ifdef deaktiviert - alles deaktiviert?
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: ifdef deaktiviert - alles deaktiviert?
Wie etwas in Lazarus dargestellt wird, hängt doch von deiner Konfiguration ab. Ich kann jedenfalls immer sehen, was in ifdef-Blöcken steht. Ebenso geht copy/paste etc., und auch Codetools funktionieren (Lazarus 1.5 r47911M FPC 2.6.4 x86_64-linux-qt).
Prinzipiell sind solche Wünsche aber besser im Bugtracker als feature request aufgehoben.
Prinzipiell sind solche Wünsche aber besser im Bugtracker als feature request aufgehoben.
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: ifdef deaktiviert - alles deaktiviert?
Was Codetools anbelangt, das ist bekannt, aber nicht einfach zu loesen. (Und unklar ob es jemals geloest werden wird.)
Welches color-schema?
In den Einstellungen (Editor/Color) lässt sich das ggf korrigieren.
1) Man kann den Transparenz level (alpha) anpassen
2) wenn Hervorhebungen die Text Farbe (anstatt der Hintergrund Farbe) angezeigt werden, dann ggf unter Prioritaet, die Einstellung fuer Markierung erhoehen, so das diese ueber dem ifdef lowlight liegen.
Das sollte nicht der Fall sein, Alle Highlights, Markierungen und Ähnliches sollten auch im inaktiven ifdef sichtbar sein.aber die Markierung bleibt unsichtbar.
Welches color-schema?
In den Einstellungen (Editor/Color) lässt sich das ggf korrigieren.
1) Man kann den Transparenz level (alpha) anpassen
2) wenn Hervorhebungen die Text Farbe (anstatt der Hintergrund Farbe) angezeigt werden, dann ggf unter Prioritaet, die Einstellung fuer Markierung erhoehen, so das diese ueber dem ifdef lowlight liegen.
-
- Beiträge: 244
- Registriert: Do 21. Jan 2010, 22:33
- OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1)
- CPU-Target: 32Bit
- Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
Re: ifdef deaktiviert - alles deaktiviert?
Das mit den Einstellungen der Priorität hat geklappt. Herzlichen Dank für diesen Hinweis.martin_frb hat geschrieben:Das sollte nicht der Fall sein, Alle Highlights, Markierungen und Ähnliches sollten auch im inaktiven ifdef sichtbar sein.aber die Markierung bleibt unsichtbar.
Welches color-schema?
In den Einstellungen (Editor/Color) lässt sich das ggf korrigieren.
1) Man kann den Transparenz level (alpha) anpassen
2) wenn Hervorhebungen die Text Farbe (anstatt der Hintergrund Farbe) angezeigt werden, dann ggf unter Prioritaet, die Einstellung fuer Markierung erhoehen, so das diese ueber dem ifdef lowlight liegen.
Obwohl da ein Hinweis fehlt, was höhere Priorität bewirkt: Pfeil nach oben, oder nach unten? Bei nach unten wurde sie anscheinend erhöht).
Aber die Codetools bleiben weiterhin stumm. Da tut sich nichts. Kann das mit dem neuen FPC zusammenhängen (Lazarus 1.5 - FPC 3.1.1)?
Vielleicht läßt sich das lösen, indem der Compiler intern (sozusagen in einer Kopie des Quelltextes) die ifdef-Anweisungen entsprechend ändert, sodaß das, was vorher deaktiviert war, nun aktiviert ist, und er dann zB vom interface-Teil zum implementation-Teil springen kann und dann auch wieder zurück (und sofort die Original-ifdefs wiederherstellt).martin_frb hat geschrieben:Was Codetools anbelangt, das ist bekannt, aber nicht einfach zu loesen. (Und unklar ob es jemals geloest werden wird.)
Aber wie weit sich das programmtechnisch auch realiseren läßt, da bin ich natürlich überfragt.
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: ifdef deaktiviert - alles deaktiviert?
Der Compiler macht das nicht, das sind die Codetools. Und ja die konnte spekulativ versuchen alle ifdef Branchen zu interpretieren. Mit mehrere ifdefs geht das aber Exponentiell.br_klaus hat geschrieben:Vielleicht läßt sich das lösen, indem der Compiler intern (sozusagen in einer Kopie des Quelltextes) die ifdef-Anweisungen entsprechend ändert, sodaß das, was vorher deaktiviert war, nun aktiviert ist, und er dann zB vom interface-Teil zum implementation-Teil springen kann und dann auch wieder zurück (und sofort die Original-ifdefs wiederherstellt).
Aber wie weit sich das programmtechnisch auch realiseren läßt, da bin ich natürlich überfragt.
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: ifdef deaktiviert - alles deaktiviert?
Es ist nicht immer moeglich.
A B C sind alle NICHT defined
A B C sind alle NICHT defined
Code: Alles auswählen
interface
{$IFDEF A} procedure Foo; {$ENDIF}
{$IFDEF B} procedure Foo; inline; {$ENDIF}
{$IFDEF C} procedure Foo; cdecl; {$ENDIF}
implementation
{$IF defined(A) or defined(B) or defined(C) }
Foo; // and to which declaration should it jump?
{$ENDIF}
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: ifdef deaktiviert - alles deaktiviert?
ich würde sagen entweder zur letzen oder zur ersten...martin_frb hat geschrieben:and to which declaration should it jump?
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.