Javascript Editor einbinden

Begonnen von papa, 18 Februar 2014, 20:30:04

Vorheriges Thema - Nächstes Thema

papa

Um das Arbeiten in der .cfg vollständig abzulösen, sollte der DEF-Editor durch einen "echten" Code-Editor ausgetauscht werden. Wenn man mehr als ein oder zwei Zeilen schreibt, ist Syntax-Highlighting und Klammernmatching schon sehr hilfreich.

Könnte man vielleicht so was wie hier

http://codemirror.net/

in das Webinterface einbinden ?
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

hexenmeister

Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

#2
Zitat von: papa am 18 Februar 2014, 20:30:04Könnte man vielleicht so was wie hier
...
in das Webinterface einbinden ?

bitteschön :)

(http://up.picr.de/17410546ic.png)

3 Zeilen zusätzliches Coding und 1 Zeile Codingänderung (die textarea hat bisher keine Id) in der 01_FHEMWEB.pm



FW_pO      "<textarea id=\"val.${cmd}$name\" name=\"val.${cmd}$name\" ".
                "cols=\"$ncols\" rows=\"10\">$val</textarea>";
  FW_pO     "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
  FW_pO   "</form></div>";
 
FW_pO "<link rel=\"stylesheet\" href=\"$FW_ME/pgm2/codemirror.css\">";
FW_pO "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/codemirror.js\"></script>";
FW_pO "<script>var editor = CodeMirror.fromTextArea(document.getElementById(\"val.${cmd}$name\"), {lineNumbers: true,matchBrackets: true});</script>";



Entscheiden und Umsetzen müssen das aber andere. Speziell beim DEF-Editor finde ich das aber sehr fraglich.
Und ich hab mich noch nicht mit den Lizenzbedingungen für codemirror beschäftigt.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: hexenmeister am 18 Februar 2014, 21:40:05Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)

*unterschreib*
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

chris1284

#4
Zitat von: hexenmeister
Möglicherweise ein nettes Feature, jedoch gehört (IMHO) alles, was länger als 1 Zeile ist, in ein PM-Modul (Z.B. 99_myUtils.pm)

Eine Zeile ist naja, sehr ungenau. Ich bekomme eine menge Code in eine Zeile wenn ich das will. Und auch eine kurze Zeile kann zb.: auf Grund vieler Klammern sehr unübersichtlich sein.
Zitat von: papa
...Syntax-Highlighting und Klammernmatching schon sehr hilfreich

Da genau das schon recht viele Fehler aus macht denke ich wäre es sehr hilfreich.

hexenmeister

Klar, bekommt man viel in eine Zeile rein. Aber ist hier jemand damit nicht einverstanden, dass man genau das nicht tun soll?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

papa

#6
Zitat von: betateilchen am 19 Februar 2014, 09:01:02
bitteschön :)

3 Zeilen zusätzliches Coding und 1 Zeile Codingänderung (die textarea hat bisher keine Id) in der 01_FHEMWEB.pm

...

Entscheiden und Umsetzen müssen das aber andere. Speziell beim DEF-Editor finde ich das aber sehr fraglich.
Und ich hab mich noch nicht mit den Lizenzbedingungen für codemirror beschäftigt.

Das sieht ja wirklich gut aus - und der Änderungsaufwand hält sich ja auch in Grenzen. Also die Lizenz sollte kein Problem sein. Ist die MIT-Lizenz - das kann man verwenden wie man will.

Wenn ich den Code hier auslagere, dann habe ich nur eine Console zur Verfügung. Mit dem vi macht das Schreiben aber auch keinen Spass.  :(

Außerdem denke ich, dass gerade "normale" User auch keinen geeigneten Editor mit Perl-Syntax-Highlighting auf ihrem System haben. Diese haben also im 99_MyUtils.pm das selbe Problem.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

betateilchen

#7
Zitat von: papa am 19 Februar 2014, 10:05:47Außerdem denke ich, dass gerade "normale" User auch keinen geeigneten Editor mit Perl-Syntax-Highlighting auf ihrem System haben. Diese haben also im 99_MyUtils.pm das selbe Problem.

(http://up.picr.de/17411404pj.png)

(http://up.picr.de/17411419iy.png)

*duck-und-weg*
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

herrmannj

#9
bin auch dafür. +1 & würde mir das auch bei einigen attribut Zeilen wünschen.

saubere Arbeit!

vg
Jörg

betateilchen

und es funktioniert DOCH auch im DEF-Editor  8)

(http://up.picr.de/17411844ak.png)

obwohl es da noch irgendwo einen Haken gibt, den ich noch nicht durchschaut habe (die visibility des Editor-Fensters)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: herrmannj am 19 Februar 2014, 11:47:32würde mir das auch bei einigen attribut Zeilen wünschen.

sehr knifflig, weil dieses Texteingabefeld an vielen Stellen eingesetzt wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

naja, "muss" ja auch nicht. Für die def und die 99.. pm wäre das ja schon mal super. Ich muss gestehen das ich das oft dort per ctrl/c raus kopiere , mit gedit bearbeite und dann zurück kopiere. I

nsofern, keep it simple, das ist schon so gut.

Was mit aufgefallen ist: in Deinem ersten Screenshot scheinen Zeilennummern drin gewesen zu sein, bei den pics weiter unten sehe ich die nicht mehr. Für die 99...pm wären Zeilennummern imho schon wichtig   

Danke und Grüße
Jörg

betateilchen

#13
:P

(http://up.picr.de/17412431xv.jpg)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

papa

Sehr cool  8)

Ich hätte da auch gleich noch ne Idee. Der Editor kann Autocompletion. Damit könnte man doch bestimmt die FHEM-Funktionen und bereits definierten Devices gleich als Hilfe anbieten.

Ich habe das Gefühl .... das wird ein Fass ohne Boden ....
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire