Codeeditor_XH

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Tue Aug 17, 2021 12:14 am

cmb wrote:
Mon Aug 16, 2021 10:20 pm
frase wrote:
Mon Aug 16, 2021 1:51 pm
$plugin_cf['codeeditor']['theme'] → als Theme im Tiny = alles OK.
Vermutlich genügt dafür schon:

Code: Select all

 plugins/tinymce5/classes/Editor.php                  | 5 +++++
 plugins/tinymce5/inits/init_dropdown-codemirror.json | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

...
Im Prinzip ja.
Text-Farben und Hintergrund sind nun im Tiny und auf den anderen Seiten identisch.
Nur bei der Schriftgröße und Zeilenhöhe gibt es Unterschiede, was ich aber nicht als großes Problem ansehe.
Wahrscheinlich funken hier die Template-Styles dazwischen.

Der Optik-Schock, wegen unterschiedlicher Themes in den Code-Ansichten, ist damit behoben.
Danke!

Einen Sonderfall gibt es noch:
Konfiguriert man Codeeditor_XH mit dem "default"-Theme, dann erhält man bei der Quelltextansicht im Tiny in der Konsole eine Fehlermeldung - 404:
GET http:// ... /plugins/codeeditor/codemirror/theme/default.css
[HTTP/1.1 404 Not Found 6ms]
Wahrscheinlich müsste noch codemirror-combined.css und evtl. auch codemirror-compressed.js mit eingebunden werden.
default.css gibt es nämlich wirklich nicht unter den Themes.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Tue Aug 17, 2021 9:28 am

lck wrote:
Mon Aug 16, 2021 10:05 am
2) Was aber nicht stimmt, ist der Hinweis zu "Suche vorheriges" per Shift-Ctrl-F. Das ist Shift-Ctrl-G.
Shift-Ctrl-F ist "Ersetzen". :? Ich glaube, das habe ich schon mal hier irgendwo gemeldet, vor langer Zeit.
Hier handelt es sich um Tippfehler in der \plugins\tinymce5\tinymce\plugins\codemirror\source.html.
In Zeile 124 (Tabelle) kann das leicht korrigiert werden.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Codeeditor_XH

Post by cmb » Wed Aug 18, 2021 12:10 am

frase wrote:
Tue Aug 17, 2021 12:14 am
cmb wrote:
Mon Aug 16, 2021 10:20 pm

Vermutlich genügt dafür schon:

Code: Select all

 plugins/tinymce5/classes/Editor.php                  | 5 +++++
 plugins/tinymce5/inits/init_dropdown-codemirror.json | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

...
Der Optik-Schock, wegen unterschiedlicher Themes in den Code-Ansichten, ist damit behoben.

Einen Sonderfall gibt es noch:
Konfiguriert man Codeeditor_XH mit dem "default"-Theme, dann erhält man bei der Quelltextansicht im Tiny in der Konsole eine Fehlermeldung - 404:
GET http:// ... /plugins/codeeditor/codemirror/theme/default.css
[HTTP/1.1 404 Not Found 6ms]
default.css gibt es nämlich wirklich nicht unter den Themes.
Ich hab das mal als PR auf Github eingereicht.
frase wrote:
Tue Aug 17, 2021 9:28 am
lck wrote:
Mon Aug 16, 2021 10:05 am
2) Was aber nicht stimmt, ist der Hinweis zu "Suche vorheriges" per Shift-Ctrl-F. Das ist Shift-Ctrl-G.
Shift-Ctrl-F ist "Ersetzen". :? Ich glaube, das habe ich schon mal hier irgendwo gemeldet, vor langer Zeit.
Hier handelt es sich um Tippfehler in der \plugins\tinymce5\tinymce\plugins\codemirror\source.html.
In Zeile 124 (Tabelle) kann das leicht korrigiert werden.
Auch hierzu gibt es ein GH Issue und einen PR. Wäre schön, wenn jemand mit einem Mac die Shortcuts in der CodeMirror-Quellcodeansicht prüfen könnte; da scheint was nicht zu stimmen.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Wed Aug 18, 2021 7:24 am

Auch auf die Gefahr hin, als Troll verbannt zu werden ... ;)
Hier noch einige Anmerkungen.
frase wrote:
Tue Aug 17, 2021 12:14 am
Nur bei der Schriftgröße und Zeilenhöhe gibt es Unterschiede, was ich aber nicht als großes Problem ansehe.
Wahrscheinlich funken hier die Template-Styles dazwischen.
Z.B in den Templates "lck_overlay_02/3) erscheinen die Quelltexte (nicht im Tiny!) in der Template-Schriftart.
Hier könnte man Einheitlichkeit herstellen, indem man in der Datei codemirror-combined.css Zeile 5 ändert:
alt:

Code: Select all

font-family: monospace;
neu:

Code: Select all

font: 1em/normal monospace !important;
Das !important ist zwar unschön, in dem Fall aber nötig.

Und, noch ein privater Wunsch, der möglicherweise von anderen nicht geteilt wird:
\plugins\codeeditor\inits\init.json
Hier hätte ich in Zeile 22 lieber "false" statt "true".

Code: Select all

"lineWrapping": false,
Mir scheint das irgendwie übersichtlicher, auch, wenn ich weiß, dass man das mit [Alt-W] umschalten kann ( wirkt nicht im Tiny).
Wie gesagt, das ist ein privater Wunsch - ich lasse mich da auch gerne überstimmen.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Codeeditor_XH

Post by cmb » Wed Aug 18, 2021 11:22 am

frase wrote:
Wed Aug 18, 2021 7:24 am
Hier könnte man Einheitlichkeit herstellen, indem man in der Datei codemirror-combined.css Zeile 5 ändert:
alt:

Code: Select all

font-family: monospace;
neu:

Code: Select all

font: 1em/normal monospace !important;
Das !important ist zwar unschön, in dem Fall aber nötig.
In codemirror-combined.css möchte ich eigentlich keine Änderungen durchführen; die müssten bei einem Update wieder eingepflegt werden, und das geht schnell vergessen. Könnte das in plugins/codeeditor/css/stylesheet.css gemacht werden? Und statt !important würde ich eher die Spezifizität des Selektors erhöhen.
frase wrote:
Wed Aug 18, 2021 7:24 am
Und, noch ein privater Wunsch, der möglicherweise von anderen nicht geteilt wird:
\plugins\codeeditor\inits\init.json
Hier hätte ich in Zeile 22 lieber "false" statt "true".

Code: Select all

"lineWrapping": false,
Mir scheint das irgendwie übersichtlicher, auch, wenn ich weiß, dass man das mit [Alt-W] umschalten kann ( wirkt nicht im Tiny).
Wie gesagt, das ist ein privater Wunsch - ich lasse mich da auch gerne überstimmen.
Ein Line-Wrap-Toggle im TinyMCE-CodeMirror-Plugin wäre IMO sinnvoll.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Wed Aug 18, 2021 11:59 am

cmb wrote:
Wed Aug 18, 2021 11:22 am
In codemirror-combined.css möchte ich eigentlich keine Änderungen durchführen; die müssten bei einem Update wieder eingepflegt werden, und das geht schnell vergessen.
Oh ja, ich vergaß.
Also dann doch in der \plugins\codeeditor\css\stylesheet.css gleich die erste Regel ändern.

Code: Select all

div.CodeMirror {
  	font: 14px/normal monospace;
	border: 1px solid #999;
}
Außer dem DIV ist an der Stelle die Spezifität kaum zu erhöhen, es funktioniert dann aber einigermaßen - obwohl von irgendwo dann wieder Inline-Styles herkommen * (bei der Tiny-Quelltext-Ansicht):

Code: Select all

.CodeMirror {
	height: 100%;
	font-size: 14px;
	line-height: 18px;
}
Aber egal - das passt dann schon ziemlich gut.
cmb wrote:
Wed Aug 18, 2021 11:22 am
Ein Line-Wrap-Toggle im TinyMCE-CodeMirror-Plugin wäre IMO sinnvoll.
Tja, und wenn noch so einige andere Tastenkürzel im Tiny funktschonüren täten, wäre das auch nicht schlecht.
Da habe ich aber nicht ansatzweise eine Idee, wo und wie man da eingreifen müsste.

* Edit:
Das kommt aus der \plugins\tinymce5\tinymce\plugins\codemirror\source.html - wäre also auch leicht zu ändern. bzw. sogar überflüssig.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Codeeditor_XH

Post by cmb » Wed Aug 18, 2021 10:05 pm

frase wrote:
Wed Aug 18, 2021 11:59 am
Also dann doch in der \plugins\codeeditor\css\stylesheet.css gleich die erste Regel ändern.

Code: Select all

div.CodeMirror {
  	font: 14px/normal monospace;
	border: 1px solid #999;
}
Ich habe mir das nun mal angeschaut, und letztlich ist https://github.com/cmsimple-xh/cmsimple ... #L738-L741 dafür verantwortlich:

Code: Select all

/* Template + Stylesheet */
.CodeMirror {
	font: 14px/normal Arial, sans-serif;
}
Das scheint also von Ludwig so beabsichtigt, und daher würde ich das nicht so gerne allgemein aushebeln wollen.
frase wrote:
Wed Aug 18, 2021 11:59 am
cmb wrote:
Wed Aug 18, 2021 11:22 am
Ein Line-Wrap-Toggle im TinyMCE-CodeMirror-Plugin wäre IMO sinnvoll.
Ginge wohl so:

Code: Select all

 plugins/tinymce5/tinymce/plugins/codemirror/source.html | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/plugins/tinymce5/tinymce/plugins/codemirror/source.html b/plugins/tinymce5/tinymce/plugins/codemirror/source.html
index db1d5004..2fdd80de 100644
--- a/plugins/tinymce5/tinymce/plugins/codemirror/source.html
+++ b/plugins/tinymce5/tinymce/plugins/codemirror/source.html
@@ -104,6 +104,12 @@
     	document.documentElement.className += CMsettings.config.theme.replace(/(^|\s)\s*/g, " cm-s-");
     }
 
+	CMsettings.config.extraKeys = {
+		"Alt-W": function(cm) {
+			cm.setOption('lineWrapping', !cm.getOption('lineWrapping'));
+		}
+	};
+
 	window.onload = start;
 }());
Schöner wäre es, wenn man das in der init.json machen könnte (also `userSettings`), aber da kann man keine Funktionen definieren. Der Codeeditor_XH löst das, indem die Funktionen in plugins/codeeditor/codeeditor.min.js definiert werden.
frase wrote:
Wed Aug 18, 2021 11:59 am
Tja, und wenn noch so einige andere Tastenkürzel im Tiny funktschonüren täten, wäre das auch nicht schlecht.
Wenn wir bei der Abhängigkeit (TinyMCE-CodeMirror-Plugin benötigt Codeeditor_XH) bleiben, dann wäre es natürlich gut, wenn der Codeeditor_XH dem TinyMCE-CodeMirror-Plugin (und potentiell anderen Nutzern) eine API zur Verfügung stellt; wie genau, müsste man noch überlegen. Und eigentlich fände ich es dann auch elegant, wenn der TinyMCE die normale Quelltextansicht automatisch mit der CodeMirror-Quelltextansicht ersetzt, wenn der Codeeditor_XH installiert ist.

Aber wir sollten nicht mehr zu viel machen wollen, sonst wird CMSimple_XH 1.7.5 nie fertig. Soll ich für Samstag mal XH 1.7.5RC2 ins Auge fassen (oder passt euch Wochenende eher nicht so)? Ein paar Kleinigkeiten könnten dort noch untergebracht werden, und vermutlich lohnt sich ein RC2, da ja bereits einiges gemacht wurde, und auch noch ein paar Sachen offen sind, und wohl noch etwas mehr Zeit brauchen.

Übrigens habe ich heute erfahren, das GitHub-Discussions nun stabil sind; keine Ahnung, ob das für uns einen Mehrwert böte, aber vielleicht sollte man sich das Feature mal näher ansehen.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Thu Aug 19, 2021 6:57 am

cmb wrote:
Wed Aug 18, 2021 10:05 pm
...
Ich habe mir das nun mal angeschaut, und letztlich ist https://github.com/cmsimple-xh/cmsimple ... #L738-L741 dafür verantwortlich:
...
Das scheint also von Ludwig so beabsichtigt, und daher würde ich das nicht so gerne allgemein aushebeln wollen.
Ja, das ist mir auch schon aufgefallen.
Ich vermute stark, dass Ludwig in diesem Fall nicht wirklich böse sein kann, wenn wir für die Code-Ansichten ein einheitliches Aussehen festlegen (aus Arial wird monospace). Sollte irgendwer wider Erwarten Wert auf Arial legen, dann muss er !important im Template-Stylesheet anfügen, um die Standard-Festlegungen der beiden Plugins zu überschreiben.
frase wrote:
Wed Aug 18, 2021 11:59 am
... obwohl von irgendwo dann wieder Inline-Styles herkommen * (bei der Tiny-Quelltext-Ansicht):
Die inline-Styles kommen aus der source.html und sollten an die Festlegungen in der \plugins\codeeditor\css\stylesheet.css angeglichen werden (nur noch die Zeilenhöhe, alles andere ist schon gleich).
Halten wir mal fest:
Wenn es im Tiny die Option "dropdown codemirror" geben soll, dann sollten wir auch dafür sorgen, dass beide Plugins in diesem Punkt bestmöglich zusammenarbeiten, gleich zu bedienen sind und gleiche Ergebnisse liefern.
cmb wrote:
Wed Aug 18, 2021 10:05 pm
frase wrote:
Wed Aug 18, 2021 11:59 am
cmb wrote:
Wed Aug 18, 2021 11:22 am
Ein Line-Wrap-Toggle im TinyMCE-CodeMirror-Plugin wäre IMO sinnvoll.
Ginge wohl so:
...
Ja, das funktioniert.
Dann musst du auch deine \plugins\codeeditor\inits\init.json Zeile 22 nicht von "true" auf "false" umstellen, dann kann man das in beiden Fällen mit [Alt-W] tun.

Am Ende müsstet ihr beiden (cmb + manu) in diesem speziellen Fall wohl mehr Absprachen treffen.
Das Ergebnis wäre für die Userinnen und User, eine (optional) formatierte Quellcodeansicht, die im gesamten System identisch erscheint.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Codeeditor_XH

Post by frase » Thu Aug 19, 2021 8:25 am

cmb wrote:
Wed Aug 18, 2021 10:05 pm
Aber wir sollten nicht mehr zu viel machen wollen, sonst wird CMSimple_XH 1.7.5 nie fertig. Soll ich für Samstag mal XH 1.7.5RC2 ins Auge fassen (oder passt euch Wochenende eher nicht so)? Ein paar Kleinigkeiten könnten dort noch untergebracht werden, und vermutlich lohnt sich ein RC2, da ja bereits einiges gemacht wurde, und auch noch ein paar Sachen offen sind, und wohl noch etwas mehr Zeit brauchen.
Ich denke, ein RC2 hat erst Sinn, wenn der TinyMCE5 "fertig" ist.
Und dazu müsste Manu nochmal drüberschauen (oder ein anderer Maintainer übernimmt) und alles Besprochene umsetzen (das wird nicht leicht - zu viel zu lesen).
Alternative (wie schon einmal vorgeschlagen):
TinyMCE4 als Standard ausliefern und den Tiny5 vorläufig als Experimental-Version deklarieren.
Dann könnte man den "wirklich fertigen" TinyMCE5 in XH Version 1.8 einführen.

Post Reply