2-Byte-Problem: Da sich das auf alles bezieht, was man per Cevi speichert und auf PC überträgt, wäre das natürlich nicht schlecht. Auch beim Einbinden von Tabellen etc. mit "!bin" muss man ja darauf achten. Allerdings habe ich mir bereits angewöhnt, die PRG-Dateien kurz in den Hex-Editor zu werfen, zweimal [Entf] drücken und einmal Save klicken, und fertig. Ich benutze dafür den Editor HxD (Freeware). Auch, um die Farben aus einem Koala-Bild zu extrahieren oder ähnliches, ist es gut geeignet.
<= Trivial-Tutorial-Bild. Musste mal mein Snapshot-Programm erproben.
Docking-System: Hab die Dinger im Quellcode vor-positioniert und sind jetzt ganz ungefähr da, wo ich sie wollte. Aber gerade beim Debuggen sehe ich lieber mehr auf einmal, ähnlich wie beim VICE-Debugger. Da muss irgendwas noch gespeichert werden, aber ich hab das System noch nicht durchschaut. Welches Fenster sich wie umpositioniert, hängt derzeit irgendwie davon ab, welche anderen Fenster wo positioniert sind. Bspw. erscheint das Find-/Replace-Fenster erst da, wo es sein sollte, aber dann wieder an einer andere Stelle, sobald ich zuvor ein ASM-Dokument geladen habe. Ist aber auch nicht das große Problem; es geht durchaus erst mal auch so. Es ist nur so, dass ich das ja nicht wusste und mir das zu Anfang alles mit viel Geduld und pixelgenau zurecht geschoben hatte ...
Syntax-Highlighting:
Hab ich mir schon mal weiter angepasst. Würde mich freuen, wenn das so ähnlich eingebaut würde, nicht nur für mich natürlich.
1. Auswahl-Farbe: In SourceASMEx.Designer.cs habe ich editSource.SelectionColor zu weiß geändert. Es wäre gut, wenn man die Farbe einstellen könnte, denn bei dunklem oder schwarzem Hintergrund ist das voreingestellte Blau viel zu dunkel. Durch das Weiß mit Transparenz 50 ist es jetzt bei mir grau, während der ausgewählte Text darin erhellt wird. Sieht gut und praktisch aus.
2. Berücksichtigung der bereits einstellbaren Farbe "Text", also aller Zeichen, die keinem syntaktischen Text zuordenbar sind. (SourceASMEx.cs, auch für 3. und 4.)
Da die Farbe noch nicht aktiviert wurde und schwarz war, waren auf dem schwarzen Untergrund alle Zeichen, die keine andere Farbe bekommen, unsichtbar.
RegEx: m_TextRegExp[(int)Types.ColorableElement.NONE] = new System.Text.RegularExpressions.Regex( @"\S" ); Whitespaces sollten verschont bleiben.
void ResetAllStyles(...) { ... : Range.SetStyle( m_TextStyles[SyntaxElementStylePrio( Types.ColorableElement.NONE )], m_TextRegExp[(int)Types.ColorableElement.NONE] );
3. Bei den Pseudo-Ops !8, !08 und !16 wurden die Zahlen hinterm Ausrufezeichen als Numeric Literal eingefärbt anstatt als Pseudo Operator. Deswegen hab ich die Colorisierungs-Priorität geändert:
- case C64Studio.Types.ColorableElement.LITERAL_STRING: value = 4; break;
- case C64Studio.Types.ColorableElement.OPERATOR: value = 5; break;
- case C64Studio.Types.ColorableElement.PSEUDO_OP: value = 6; break;
- case C64Studio.Types.ColorableElement.LITERAL_NUMBER: value = 7; break;
- // vorher: STRING = 4, NUMBER = 5, OPERATOR = 6, PSEUDO_OP = 7
Bislang habe ich dadurch keinen Nachteil bemerkt. Ansonsten müsste man in der RegEx für LITERAL_NUMBER hinzufügen, dass Zahlen mit Ausrufezeichen davor nicht dazu gehören.
4. Der Cursor der FastColoredTextBox ist etwas seltsam. Zum Blinken wird er nicht transparent, wie es üblich ist, sondern invertiert stattdessen und verdeckt dadurch oft einen Teil breiterer Zeichen. Das ist zwar nicht so schlimm, aber seine Ausgangsfarbe ist auf schwarz eingestellt, und beim Bewegen des Cursors nimmt er diese bei jedem Positionswechsel zuerst an, was während der Bewegung zur Folge hat, dass er nicht zum Blinken kommt und dauerhaft schwarz bleibt. Bei hellem Hintergrund immer noch kein Problem, aber sobald ein sehr dunkler oder schwarzer Hintergrund gewählt wird, verschwindet der Cursor während des Navigierens. Das macht jedes dunkle Theme quasi unbrauchbar.
Abhilfe schafft hier eine Formel zur Bestimmung der optimalen Cursor-Farbe. Hab ich untergebracht in RefreshDisplayOptions(){...}:
Keine Ahnung, ob das alles so richtig ist, aber es funktioniert.
jbtw .. Frohe Pfingsten!