Entwickler-Ecke
Wünsche, Anregungen & Kritik - Syntax-Highlighter verrutscht
FinnO - Mi 04.01.12 01:52
Titel: Syntax-Highlighter verrutscht
Moin,
mir ist beim Antworten gerade aufgefallen, dass wenn man unten in der sog. "Thema-Überblick"-Box die Quelltexte ausklappt, die Zeilen in der Spalte "Zeile" nicht mit den Zeilen des Quelltextes Übereinstimmen. Sieht recht nutzlos aus.
LG
Martok - Mi 04.01.12 02:05
SUUUPER, jetzt holt Firefox die alten Darstellungsbugs vom IE7 wieder aus der Schublade oder was?
Lass mich raten, das wird pro Zeile die etwas fettgedrucktes enthält "falscher"?
Boldar - Mi 04.01.12 04:59
Hi,
Also ich bin hier mit FF 9.0.1 online, gerade frisch installiert ohne jegliche Addons, und der Fehler tritt hier definitiv nicht auf, auch nicht bei längeren Quelltexten. BTW ist im Screen der Code
zu klein, die Markierte Zeile mit
procedure ist bei mir schön brav Nummer 53 (Ich denke doch es geht um
dieses Topic [
http://www.delphi-forum.de/viewtopic.php?p=656760#656760]). Deshalt
Ich kann den Fehler also nicht nachvollziehen.
mfg Boldar
jaenicke - Mi 04.01.12 09:27
Du hast aber auch in der Suche beim Ausklappen in der Beitragsansicht geschaut? Dort sieht es bei mir im FF zu Hause genauso aus. (Welche FF Version weiß ich nicht.)
Tja, soweit ist es gekommen:
Jetzt kopiert der FF nicht nur das Aussehen des Browsers nahezu 1:1, sondern auch das der Webseiten. Vielleicht wollte man da mal von nem anderen Browser kopieren. :mrgreen:
baka0815 - Mi 04.01.12 10:53
Kann es nicht vielleicht einfach daran liegen, dass bei dir eine andere Schriftart verwendet wird, die etwas anders skaliert?
FinnO - Mi 04.01.12 11:31
Martok hat folgendes geschrieben : |
Lass mich raten, das wird pro Zeile die etwas fettgedrucktes enthält "falscher"? |
Indeed.
jaenicke - Mi 04.01.12 11:38
FF 10 zeigt das Verhalten übrigens ebenfalls.
baka0815 - Mi 04.01.12 13:44
FF 9.0.1 zeigt das Verhalten bei mir nicht, daher meine Vermutung bzgl. der Schrift.
Evtl. auch ein installiertes Add-On?
FinnO - Mi 04.01.12 14:21
Moin,
habe keine AddOns, keine Schrift verändert.
LG
jaenicke - Mi 04.01.12 14:30
baka0815 hat folgendes geschrieben : |
FF 9.0.1 zeigt das Verhalten bei mir nicht, daher meine Vermutung bzgl. der Schrift. |
Dann zeig doch einfach mal einen Screenshot wie es bei dir aussieht. ;-)
Dann lässt sich das ja vergleichen.
Boldar - Mi 04.01.12 15:27
Also hier siehts so aus:
Moderiert von Kha: Überbreites Bild entfernt, s. Anhang
jaenicke - Mi 04.01.12 16:30
In dem Screenshot bist du ja an einer anderen Stelle. Bei mir ist es in der Suche so.
// EDIT:
Und in der von dir geposteten Topicansicht auch sehe ich hier. Aber das war zu Hause nicht so.
Martok - Mi 04.01.12 17:00
Hat jemand der Betroffenen ein Firebug da?
Dann deaktiviert mal in common.css, Regel .codekey (Zeile 197) die "font-size: 12px" Angabe.
Wird's dann besser? Wenn ja, haben sie zwar keinen IE-Bug kopiert, sind aber dafür die ersten die diesen Bug (bzw dessen IE-Fix) nicht verstehen, was dann im Endeffekt genauso falsch ist ;)
jaenicke - Mi 04.01.12 18:01
Martok hat folgendes geschrieben : |
Dann deaktiviert mal in common.css, Regel .codekey (Zeile 197) die "font-size: 12px" Angabe.
Wird's dann besser? |
Ja, dann sieht es korrekt aus. ;-)
Martok - Mi 04.01.12 21:00
Okay, dann muss zu der IE7-Browserweiche noch eine Fx9-Browserweiche.
Hintergrund: im IE7 werden span-Tags, die italic sind ein Pixel höher als die Zeile drumrum. So ziemlich alle Highlighter generieren für die daher eine Höhe die exakt ein Pixel kleiner ist als "normaler" Text. Richtige Browser haben das bisher ignoriert/weg-overflowed/wasauchimmer.
Firefox nimmt das jetzt wörtlich und macht die ein Pixel kleiner, interessanterweise auch bold. Das bricht uns hier das Genick.
Ich werd mir den mal beschaffen und einen Testcase bauen, aber ich garantier für nix.
Spaß am Rande: in Fx9 schwanken die Zeilenhöhen zwischen 14px und 15px, in allen anderen Browsern sind sie konstant 16px :wall:
EDIT: äh wie jetzt?
Also ne Extension? *grübel*
Der Affe ists nicht, sagt
FinnO
Regan - Mi 04.01.12 21:46
Gerade Firefox neu heruntergeladen und installiert. Erste Seite aufgerufen:
Edit: ich hatte ihn vorher noch nie auf dem System (Windows 7 Home Premium) installiert.
Martok - Mi 04.01.12 22:01
Welches OS haben die betroffenen? Bisher stammen alle Meldungen von Win7
x64.
Also: bitte mal testen, ob das bei euch geht und mit User-Agent-String und ggf Edgemonkey und dem Wert der Einstellung Design->"Codeblöcke als monospace anzeigen" zurückmelden!
For your convenience: some sourcecode
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| A:= NextR(i); if Tokens[A].Kind=tokEmpty then TE_FunctionCall(tmp.GetObject).Arguments:= nil else TE_FunctionCall(tmp.GetObject).Arguments:= Tokens[A].Expr; Tokens[A].Expr:= nil; Tokens[a].Kind:= tokVoid; Tokens[i].Expr:= tmp; end; end; for A:= 0 to high(Expressions) do begin for i:= L to R do if (Tokens[i].Kind=tokOperator) and (Expressions[Tokens[i].OpIdx].P=Expressions[A].P) then begin eid:= Tokens[i].OpIdx; rr:= NextR(i); ll:= NextL(i); if rr<0 then raise ESyntaxError.CreateFmt('Position %d: Operator has no RHS',[Tokens[i].Pos]);
if Tokens[rr].Kind<>tokExpression then raise ESyntaxError.CreateFmt('Position %d: expected expression, found %s',[Tokens[rr].Pos, Tokens[rr].Value]); if (Expressions[eid].Cls = TE_Subtraction) and ((ll<0) or (Tokens[ll].Kind<>tokExpression)) then begin tmp:= TE_Negation.Create; tmp.RHS:= Tokens[rr].Expr; end else begin tmp:= Expressions[eid].Cls.Create;
tmp.RHS:= Tokens[rr].Expr; if not Expressions[eid].Unary then begin if ll<0 then raise ESyntaxError.CreateFmt('Position %d: Operator has no LHS',[Tokens[i].Pos]); if Tokens[ll].Kind<>tokExpression then raise ESyntaxError.CreateFmt('Position %d: expected expression, found %s',[Tokens[ll].Pos, Tokens[ll].Value]); tmp.LHS:= Tokens[ll].Expr; 1 end; 2 end; 3 end; 4 end; 5 end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| KeinHighlighter; end end end end end end end end end endend end end end end end end end end endend end end end end end end end end endend end end end end end end end end endend end end end end end end end end end |
FinnO - Mi 04.01.12 22:03
Ich muss dich enttäuschen, aber dein Code passt.
Also ich habe mal verschiedene Zeichenfolgen am Start.
Ferner:
Sieht so aus:
Regan - Mi 04.01.12 22:10
Seconded.
Ich habe gerade mal den Button neben den "Code aufklappen"-Button gedrückt: Die Größe verändert sich nicht. Es kann also nicht an der Scrollbox liegen.
64-bit Windows.
Edit: habe keinen Edgemonkey installiert und will es eigentlich auch nicht installieren, da der FF nachher wieder runterfliegt.
Edi2: Es kann nicht an der Länge liegen. Bei kleineren "Längen" wird der Fehler bloß nicht so offensichtlich.
Edit3: User-Agent: Mozilla/5.0 Windows NT 6.1 WOW64 rv 9.0.1 Gecko/20100101 Firefox/9.0.1
Yogu - Mi 04.01.12 23:18
Ich hab Firefox 10 Beta 32 Bit auf 64-Bit-Win7, und sehe weder
in diesem Topic [
http://www.delphi-forum.de/viewtopic.php?p=656760#656760], noch in den hier geposteten Codes einen Versatz. Bei allen Textelementen (fett, kursiv oder normal) gibt Firebug eine Höhe von 16 Pixeln an. Ohne den 12px-Workaround für fetten und kursiven Text wären es auch 16 Pixel Höhe. Also eigentlich alles so, wie du es vom Firefox erwartet hast.
User Agent:
Quelltext
1:
| Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0 |
jaenicke - Mi 04.01.12 23:28
Mit Windows XP mit FF9 sieht bei mir alles korrekt aus. Dein letzter Codeblock hier sieht auch unter Windows 7 x64 korrekt aus.
Teekeks - Do 05.01.12 07:13
Um das ganze noch lustiger zu machen:
OS: OpenSUSE 11.4
Browser: FF 7.0.1
UND Chrome 12.0.742.124
und Konqueror 4.6.00
jaenicke - Do 05.01.12 07:32
Martok hat folgendes geschrieben : |
Was passiert? |
Alle 6 Links sehen auch unter Win 7 x64 korrekt aus.
// EDIT:
Abgesehen davon, dass die Kommentare um eine Zeile verschoben sind, wohl weil die erste Zeile "außer Konkurrenz" drin steht. :D
Teekeks hat folgendes geschrieben : |
Um das ganze noch lustiger zu machen:
OS: OpenSUSE 11.4
Browser: FF 7.0.1 |
Mit Firefox bis Version 8 tritt das Problem auch nicht auf, erst Version 9 und 10 zeigen das Verhalten.
Teekeks - Do 05.01.12 07:52
Ist aber Version 7 und es tritt das Problem auf :)
jaenicke - Do 05.01.12 08:19
Oh, stimmt, ich habe die Kommentare nicht gesehen. Am Ende ist es ja wieder bündig. ;-)
Regan - Do 05.01.12 09:32
Sorry für das Vollzitat. Brauchte eine Referenz.
Die sehen alle gut aus und zeigen keine Fehler an.
baka0815 - Do 05.01.12 12:55
Bei mir sieht das auch alles gut aus, nutze Fx9.0.1 unter WinXP.
Keiner der angegebenen Links zeigt ein Problem.
Ich sag ja: Fonts... :)
FinnO - Do 05.01.12 14:46
Passt bei mir auch alles, bis auf die Tatsache, dass unten Leerraum bleibt. Kann aber sein, dass das gewollt ist.
LG :)
Martok - Do 05.01.12 22:01
jaenicke hat folgendes geschrieben : |
// EDIT:
Abgesehen davon, dass die Kommentare um eine Zeile verschoben sind, wohl weil die erste Zeile "außer Konkurrenz" drin steht. :D |
Ja, ich failte. Ich weiß :P Habs mal behoben.
FinnO hat folgendes geschrieben : |
Passt bei mir auch alles, bis auf die Tatsache, dass unten Leerraum bleibt. Kann aber sein, dass das gewollt ist. |
Mehr oder weniger, da ist noch ein \n im <pre> zu viel.
Okay, es liegt also nicht an:
- Font-Datei
- Betriebssystem
- Plattformarchitektur
- Browser (auch wenns erst im Fx9 ist, Chrome und Konqueror machens auch)
Nach Occams Razor bleibt nur eins übrig: etwas auf der Seite ist das Problem.
Es kann nicht das CSS sein, das hab ich 1:1 geguttenbergt, trotzdem verhält sich meine Seite anders.
Und das führt uns zu einem einzigen Unterschied: mein Testseite ist Standards Compliant, das DF ist
Quirksmode [
http://www.quirksmode.org/css/quirksmode.html].
Bleibt noch ein Test zum verifizieren. Im QM funktioniert "Font Einbinden Per CSS" nicht mehr, also nur noch die native Version (also exakt wie DF).
Normal [
http://www.martoks-place.de/files/courier/test.php?quirks]
Mit Testfix [
http://www.martoks-place.de/files/courier/test.php?quirks&fix1]
Wenn sich hier was konklusives ergibt, kann man ja mal suchen wo der Pfeffer im Hasen liegt.
(PS: was ihr sehen solltet: ohne Fix das gleiche wie hier (nämlich Fehler), mit Fix hoffentlich was anderes)
EDIT: Halt, eins hab ich noch! Habt ihr ClearType (heißt doch so oder :gruebel:) aktiviert/deaktiviert? Das ist auf W7 x64 anders als auf x86, wenn ich mich richtig erinnere! Und auf Linux sowieso, da ist es immer aktiv. Sowas kann die Schrifthöhe durchaus verleiern.
jaenicke - Do 05.01.12 22:12
Beides sieht falsch aus im FF.
Martok hat folgendes geschrieben : |
Browser (auch wenns erst im Fx9 ist, Chrome und Konqueror machens auch) |
Bei mir passiert es bei keinem anderen Browser (getestet IE9, Opera 11.6, Konquerer 4.7, Chrome 16). Weder unter Windows XP, Windows 7, Debian oder Ubuntu. :nixweiss:
// EDIT:
Ok, aber dafür mit Opera 8 unter XP und Firefox 3.6 unter Ubuntu.
Martok - Do 05.01.12 22:52
Und wie siehts mit ClearType aus?
Ich teste hier mit PM3.6, PM 8, Fx 9, Opera 11, IE6 (just 'cause), alles unter XPx86. Das geht wunderbar. 64bit-Windowsen hab ich hier nicht, und das Linux auf'm Server hat naheliegenderweise keinen X-Server :P
Okay, also im QuirksMode isses immer falsch. Das ist gut (vermutlich).
@jaenicke, kannst du nochmal alle Browser die du hast drauf loslassen, den 2. Absatz copy/pasten und dranschreiben ob es passt?
http://martoks-place.de/files/courier/test.php http://martoks-place.de/files/courier/test.php?quirks
Ich werd das mal durch Browsershots jagen, vermute aber dass du schneller bist :P
jaenicke - Do 05.01.12 23:15
Martok hat folgendes geschrieben : |
Ich werd das mal durch Browsershots jagen |
Darüber habe ich die beiden im Edit genannten gefunden, die auch nicht gehen. ;-)
Martok hat folgendes geschrieben : |
Und wie siehts mit ClearType aus? |
Abgesehen davon, dass es ohne Sch*** aussieht, ändert sich nichts, es sieht auch ohne falsch aus.
Martok hat folgendes geschrieben : |
@jaenicke, kannst du nochmal alle Browser die du hast drauf loslassen, den 2. Absatz copy/pasten und dranschreiben ob es passt? |
Ich schaue mal, ob ich da heute noch zu komme, sonst morgen. ;-)
Regan - Do 05.01.12 23:36
Beide sehen falsch aus. ClearType ist aktiv. Es sind zu viele Schritte, das zu deaktivieren :|
Edit: Ich kann aber beide richtig aussehen lassen, indem ich die Schriftgröße der Zeilennummern auf 12px festsetze.
Martok - Fr 06.01.12 00:57
Regan war im falschen Beitrag, via Skype haben wir meinen Verdacht bestätigt.
Einziger Grund für den Fehler ist Quirks Mode auf x64 ODER Linux, ist also konsistent. Warum das ein Fehlergrund ist will ich gar nicht genau wissen, aber ich denke da lässt sich was finden. Vielleicht ein Rundungsproblem vom Canvas oder so.
Das Problem ist aber, dass ich nicht einfach auf den Standards Compliant Mode stellen kann. Das ändert so viel im Rendering, dass muss man extrem testen.
Heißt also: ich werd mir die quirks.css genau angucken und versuchen rauszubekommen was anders ist. Vielleicht findet sich ja was.
Martok - Fr 06.01.12 10:55
Dann noch ein Vorschlag ;)
http://martoks-place.de/files/courier/test.php?quirks&fix2&fix1
Jetzt neu, mit
vertical-align: top für alles was bunt ist. Dann fällt das eigentlich gar nicht existierende Padding unten raus... Und, völlig unerklärlich:
background: inherit, weil nämlich
vertical-align den Hintergrund zurücksetzt. Ist ja klar :roll:
Getestet mit:
-Opera 11 + PM 3.6 auf XP32
-Firefox 8 + reconq 0.7 (Webkit 533.3) auf Kubuntu 11.04 i686 (VM)
In Firefox (Linux) und Webkit haben so zwar mehrzeilige Highlights eine Lücke zwischen den Zeilen (in Opera nicht), aber das wär mir dann grad mal egal. Meistens markiert man ja eh nur Zeilen(teile) ;)
jaenicke - Fr 06.01.12 12:13
Ja, der sieht korrekt aus mit FF 9 unter Win7 x64. Mehr kann ich hier auf Arbeit grad nicht testen. ;-)
baka0815 - Fr 06.01.12 12:21
Sieht auch unter WinXP noch gut aus (Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1), also zumindest keine Regression.
FinnO - Fr 06.01.12 18:43
Letzter Vorschlag passt, bei dem davor kann ich
jaenicke nur bestätigen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!