Wenn man im Standardeditor von MyWebSQL Shift und die Leertaste drückt, wird nicht wie erwartet ein Leerzeichen beim Cursor eingefügt, sondern am Anfang der Zeile. Ob das ein Bug ist, oder gewollt kann ich nicht sagen. Fakt ist, dass man dieses extrem nervige Verhalten abstellen kann.

Die Code-Datei für den Editor liegt in ./js/min/codemirror_base.js . Diese Datei kann man mit einem Texteditor seiner Wahl öffnen. Innerhalb des Dokuments kann man nach der Zahl „32“ suchen. Das ist der Keycode der Leertaste. Diese Zahl kommt an genau 2 Stellen im Code vor. Eine sieht ca. so aus:

else if(9==b&&"default"!=this.options.tabMode&&!a.ctrlKey)this.handleTab(!a.shiftKey),a.stop();
else if(32==b&&a.shiftKey&&"default"==this.options.tabMode)this.handleTab(!0),a.stop();
else if(36==b&&!a.shiftKey&&!a.ctrlKey)this.home()&&a.stop();

Hier muss der „else if“-Zweig, welcher in der Bedingung die 32 enthält, vollständig entfernt werden. Also von else if  bis a.stop(); .

Die nächste Stelle ist diese hier:

keyPress:function(a){var b=this.options.electricChars&&m.Parser.electricChars,c=this;if(this.frozen&&(!this.keyFilter||this.keyFilter(a.keyCode||a.code,a))||13==a.code||9==a.code&&"default"!=this.options.tabMode||32==a.code&&a.shiftKey&&"default"==this.options.tabMode)a.stop();

Hier muss innerhalb der Bedinungskette die Bedinung entfernt werden, welche die Leertaste in Verbindung mit der Shifttaste matched. Es muss also alles ab dem letzten logischen ODER (|| ) inklusive dem logischen ODER entfernt werden. Natürlich nur bis zur schließenden Klammer.

Für Faule habe ich eine veränderte Version der Javascript-Datei online gestellt, allerdings weiß ich natürlich nicht, wie lange die aktuell ist (aus MyWebSQL-Version 3.3).

Download

Nächster Beitrag Vorheriger Beitrag