Editor-Bugs im Quelltexteditor des BDS2006? (war: TabStop-Bug im Quelltexteditor des BDS2006?)
-
Hallo Gemeinschaft,
ich habe gerade etwas Interessantes herausgefunden: ich war beim Umstieg auf BDS2006 etwas verwundert, dass ich bestimmte Quelltext-Ausrichtungen mittels Tabulator nicht mehr vornehmen kann, obwohl die Tabulator-Einstellungen für den Quelltexteditor korrekt sind ("Einzug mit Tab" aktiviert, "Tabstops" auf 4). Hier ein Beispiel:
int MsgTtlNr; AnsiString MsgTtl; //... switch(MsgTtlNr) { case 0: break; case 1: MsgTtl= " Hinweis"; break; case 2: MsgTtl= " Fehler"; break; case 3: MsgTtl= " Bestätigung"; break; case 4: MsgTtl= " Sicherheitsabfrage"; break; case 5: MsgTtl= " TimeOut"; break; case 6: MsgTtl= " Für ä speichern?"; break; case 7: MsgTtl= " Ungültige ABCkonfiguration"; break; case 8: MsgTtl= " Ungültige XYZkonfiguration"; break; default: MsgTtl= " Unbekannt"; break; }
Die breaks lassen sich nicht mehr mittels Tabulator untereinander ausrichten.
Jetzt habe ich einen unmittelbaren Zusammenhang zu den verwendeten Strings in MsgTtl= ""; gefunden: In allen Zeilen in denen ein ä, ü oder ö steht, lassen sich die breaks nicht mittels Tabulator ausrichten, die Anderen passen!?!
Kann das jemand nachvollziehen? Hat jemand eine Erklärung? Merkwürdig finde ich das schon, auch wenn es sich nicht auf die Funktionalität des Editors auszuwirken scheint.MfG
Edit: Thread-Überschrift
-
In welchem Format ist die Quellcode-Datei denn gespeichert (UTF-8)?
Dann werden wohl die Tab-Positionen nur anhand der Byte-Anzahl berechnet...
-
Für C++Builder 2006 kann ich das bestätigen; für C++Builder 2009 nicht.
Es dürfte tatsächlich damit zu tun haben, daß der Editor intern UTF-8 benutzt.
-
Th69 schrieb:
In welchem Format ist die Quellcode-Datei denn gespeichert (UTF-8)?
Unicode Transformation Format.. hmm... noch nie direkt was damit zu tun gehabt... Wie finde ich das heraus?
-
Rechtsklick, Dateiformat.
Allerdings verwendet der Editor seit Delphi 2005 oder 2006 intern immer UTF-8, so daß das Format, in dem die Datei gespeichert wird, in dieser Frage irrelevant ist.
-
Gut, also der Editor benutzt intern UTF-8 (variable Bytelänge der Zeichen) und richtet die Tabs anhand der Byte-Positionen aus. Daher kommt es bei bestimmten Zeichen zu TabStop-Verschiebungen... Ok, verstanden.
Wo wir grad' mal bei Editor-Bugs des BDS2006 sind (habe Thread-Überschrift geändert):
Es gibt diese (in meinen Augen sinnvolle) Funktion im Editor, dass Methoden am linken Rand des Editor so ein "+" bekommen und man sie damit einklappen/ausblenden kann (weiß grad das Fachwort nicht...). Leider funktioniert das bei mir in den Quelltexten nicht bis zum Quelltext-Ende, sondern hört meistens vorher auf... Gibts diese Zusatz-Funktion nur für Quelltexte mit bis zu X(?) Zeilen?MfG
-
Kolumbus schrieb:
Die breaks lassen sich nicht mehr mittels Tabulator untereinander ausrichten.
"schönheitseinrückungen" ausschließlich mit leerzeichen machen und logische einrückungen (also nur am anfang einer zeile) mit tabulator. dann ist es egal, wie weit tab einrückt.
-
Es ging bezüglich der Tab-Stops bisher nur um die Frage, WARUM der Editor dieses Verhalten zeigt.
-
Ich hab' noch einen Bug: Wenn ich mit der Suchfunktion in allen geöffneten Dateien suche und auf ein Ergebnis klicke, lande ich desöfteren in ganz anderen Zeilen als im Ergebnis steht!? Warum? Das nervt teilweise sehr, wenn man etwas sucht!
-
Kolumbus schrieb:
Es gibt diese (in meinen Augen sinnvolle) Funktion im Editor, dass Methoden am linken Rand des Editor so ein "+" bekommen und man sie damit einklappen/ausblenden kann (weiß grad das Fachwort nicht...). Leider funktioniert das bei mir in den Quelltexten nicht bis zum Quelltext-Ende, sondern hört meistens vorher auf... Gibts diese Zusatz-Funktion nur für Quelltexte mit bis zu X(?) Zeilen?
Soweit ich weiß, wird Code Folding tatsächlich ab einer gewissen Dateigröße deaktiviert - dann allerdings für die ganze Datei. Wenn es ab einer gewissen Stelle nicht mehr funktioniert, liegt das daran, daß der Parser mit irgendetwas an dieser Stelle nicht zurechtkommt.
Hast du ein reproduzierbares Beispiel für einen solchen Fall?Kolumbus schrieb:
Ich hab' noch einen Bug: Wenn ich mit der Suchfunktion in allen geöffneten Dateien suche und auf ein Ergebnis klicke, lande ich desöfteren in ganz anderen Zeilen als im Ergebnis steht!? Warum? Das nervt teilweise sehr, wenn man etwas sucht!
Auch hier: ist das reproduzierbar? Mir ist das bisher noch nicht aufgefallen (was aber daran liegen mag, daß ich weder den C++Builder 2006 regelmäßig benutze noch in geöffneten Dateien suche).
-
Es lässt sich bei beiden Problemen schlecht sagen, da ich das Projekt aus C++Builder 3 übernommen habe, also kein kontinuierliches "Programmwachstum" vorliegt, um einen Punkt ausmachen zu können ab wann die Probleme auftreten.
Ich habe jedoch eine Vermutung: Es hat den Anschein, als hätte es etwas mit
#define <MakroName> <Ausdruck>
und
#if <Makro> // bedingte Compilierung ... #else ... #endif
zu tun.
Beide Probleme sind mir bisher in 2 längeren *.cpp aufgefallen. Aus einer Quelltextdatei habe ich heut' alle Makrodefinitionen entfernt bzw. teilweise in den Header verschoben, dort scheinen jetzt Code Folding und Quelltextsuche ordnungsgemäß zu funktionieren.