Javascript Editor einbinden

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

Vorheriges Thema - Nächstes Thema

svenson08

Respekt. Tolle Sache, klasse Feature!

papa

Zitat von: betateilchen am 19 Februar 2014, 15:56:38
mach nur... stell die entsprechende Datei zusammen und sie muss nur noch eingebunden werden.

Werde mir das Autocompletion mal genau ansehen. Wir könnten auch einen extra Mode für FHEM machen.
Super Arbeit bisher. Warte schon auf das Update :-)
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

betateilchen

Zitat von: betateilchen am 19 Februar 2014, 20:14:35Offen ist derzeit noch die Frage, wie man die Themes auswählbar machen will.

Ich würde das gerne über ein Attribut "externalEditorTheme" realisieren, ohne Attribut würde das default-theme von codemirror gezogen.

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

justme1968

#33
wie wäre eine mit leerzeichen getrennte liste von <schlüsselwort>[:<wert>] paaren. es wird jeweils <schlüsselwort>.js geladen und <schlüsselwort> mit dem optionalen [ :<wert>]  als parameter übergeben.

und das attribut externalEditorParam nennen.

wobei externalEditor ja schon falsch ist. wie wäre jeweils enhancedEditor?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Auch eine gute Idee. Aber trotzdem brauchst Du die Unterscheidung, ob das Schlüsselwort eine .js bezeichnet (z.B. für mode) oder eine .css (wie bei theme) Ausserdem muss theme immer als String eingebunden werden, wohingegen man einen mode einfach mit true anschalten kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

papa

Sollte man das ganze nicht noch etwas genereller gestalten ? Vielleicht sowas hier:

attr editor standard

oder

attr editor codemirror [ theme:dark, perl:true, lineNumbers: true, matchBrackets: true ]

Dann könnten auch andere Editoren später eingebunden werden. Allerdings muss der Syntax-Mode noch durch den entsprechenden Kontext (FHEM, perl, gplot) anpassbar sein.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

justme1968

wenn das :<wert> optional ist könnte man die unterscheidung daran fest machen.

und noch was: kannst gleich noch einbauen das abhängig von der extension der passende mode geladen wird. dann man man braucht man auch später z.b. für gplot nichts mehr anfassen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

die erste Hälfte hab ich ja schon drin. Damit kannst Du steuern, ob ein externer Editor verwendet werden soll oder nicht.

Per Attribut anzugeben, WELCHEN Editor man nimmt, macht m.E. keinen Sinn, denn FHEMWEB kann nicht jeden Editor kennen und für jeden Editor sind andere Regeln zum Einbinden notwendig. Wir sollten uns also auf EINEN Editor festlegen, ich finde codemirror dabei nicht die schlechteste Lösung.

Aber selbst bei codemirror alleine ist eine Attributvorgabe für die mode wenig praktikabel. Du brauchst je nach Einsatzstelle nämlich unterschiedliche Varianten:


  • beim DEF => perl.js
  • beim edit file (.cfg) => perl.js
  • beim edit file [.pm) => perl.js und/oder eine (noch zu erstellende) fhem.js
  • beim edit file [.layout) => perl.js und/oder eine (noch zu erstellende) 02rss.js
  • ...

Das Einzige, was wirklich über die gesamte Oberfläche hinweg festgelegt werden kann, ist das theme, deshalb könnte ich mir dafür durchaus ein Attribut vorstellen.
-----------------------
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: justme1968 am 20 Februar 2014, 10:36:23
und noch was: kannst gleich noch einbauen das abhängig von der extension der passende mode geladen wird. dann man man braucht man auch später z.b. für gplot nichts mehr anfassen.

Ich denke, das hast Du schon gebaut? Wir sollten unsere Parallelentwicklung mal beenden und uns entweder für eine Variante entscheiden ;)
Bis Sonntagabend bin ich nun unterwegs und kann wahrscheinlich nicht viel an dieser Sache weiterschrauben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

und ich hätte es schon längst hoch geladen wenn KabelBW es endlich schaffen würde das neue kabelndem zum laufen zu bekommen...

ich bin immer noch für enhanced statt external. das ding geht ja nicht in einem extra fenster auf sondern ist immer noch inline.


hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

nagut, ob das nun enhanced, external oder gustav heißt, ist mir eigentlich egal :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

papa

Ich habe mal ein wenig mit der Autocompletion gespielt. Folgende Sektionen würde ich vorschlagen:

* Keywords
* Templates
* Devices
* Variables

Anbei mal ein Screenshort von der Testseite.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

justme1968

anbei eine version bei der für perl, css und svg der richtige mode automatisch geladen wird und der tippfehler beim autoCloseBrackets behoben ist. die zuordnung ist leicht erweiterbar.

ich hab enhancedEditorTheme eingebaut und externalEditor in enhancedEditor umbenannt.

gruss
  andre

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

hat eigentlich "der König ;) Chef" schon eine Meinung zum Thema?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ich warte ab, bis die Sache sich beruhigt hat.
Habe z.Zt. leider wenig Zeit fuer groessere Baustellen, insb. wenn sie Nachdenken erfordern.