Javascript Editor einbinden

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

Vorheriges Thema - Nächstes Thema

betateilchen

Als einer der "Paten" der grundsätzlichen codemirror-Einbindung habe ich naturgemäß eine etwas andere Sichtweise.

Zitat von: krikan am 30 Oktober 2015, 13:50:05
Suchen finde ich auch gut.

Gegen die Suchfunktion an sich habe ich auch nie was gesagt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rapster

Das Ändern des TAB-Verhaltens in fhem war natürlich meine einsame Entscheidung, wem seine sonst? :)
Allerdings entspring das ganze nicht meiner einsamen Idee dass dieses Verhalten besser ist. Sehr viele OpenSource-Projekte, Entwicklungsumgebungen setzen entweder das Einrücken mit spaces statt tab vorraus, haben dies als Standardeinstellung, oder empfehlen es zumindest als best-practice.

Da ich allerdings die Meinung des "codemirror Paten", trotz:
Zitat von: betateilchen am 25 Oktober 2015, 16:53:51Für die in www/codemirror enthaltenen, von anderen Forummitgliedern in der Entwicklungsphase erstellten .js Dateien habe ich nichts zu tun. Meine Aufgabe war damals bei der Einbindung des codemirror lediglich, dafür zu sorgen, dass die Dateien an der richtigen Stelle im SVN auftauchen und dazu auch ein Maintainer angegeben ist. Insofern ist meine "Verantwortung" eher organisatorischer Natur und nicht inhaltlich. Ich hasse Javascript.
beherzigen möchte, habe ich das Standardverhalten wieder geändert damit die TAB-Taste auch Tabs schreibt und keine blöden Leerzeichen ;)
____

Das Problem mit dem falschen automatischen Einrückens konnte ich bei { nachvollziehen, ist mir bisher garnicht aufgefallen und es ist auch so definitiv nicht gewollt.
Ich denke das ist ein Bug in der verwendeten Codemirror Version, gehe dem ganzen mal nach und versuche es zu fixen.

Gruß
  Claudiu

rapster

Zitat von: krikan am 30 Oktober 2015, 13:50:05
Und das andere nur meine  ;) Du entscheidest, da Du weiterentwickelt hast. Trotzdem danke.
Da es bisher der Standard war hab ich damit zumindest keine schmerzen es wieder zu aktivieren :)

Zitat von: krikan am 30 Oktober 2015, 13:50:05
Persönlich habe ich lieber alle Möglichkeiten per default und schalte ab, was ich nicht brauche. Aber ich bin kein EDVler mit Support(problem)erfahrung...
Ja das fände ich auch gut, denke auch dass es gut währe wenn codemirror standardmäßig geladen wird, vor allem für die ersten Berührungen mit fhem...
Allerdings wurde hier ja nicht nur einmal gerufen "Nicht noch mehr Funktionen standardmäßig laden"...

Gruß
  Claudiu

betateilchen

Suchst Du Streit? Dann lass uns vor die Tür gehen...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rapster

Zitat von: betateilchen am 30 Oktober 2015, 13:42:44Und was momentan das größte Problem im Zusammenhang mit den Klammern ist: Bei jedem Klammersetzen verändert sich das Einrücken, sodaß die Klammer nie da erscheint, wo ich sie haben möchte.

Da bisher eine relativ alte Version von codemirror in Verwendung war, hat sich hier wohl das Standardverhalten geändert.

Habe das ganze nun glaube ich behoben, indem standardmäßig der Paramter "smartIndent:false" gesetzt wird.

Bitte mal ausprobieren und bescheid geben ob das damit behoben ist.

Zitat von: betateilchen am 30 Oktober 2015, 14:16:46
Suchst Du Streit? Dann lass uns vor die Tür gehen...
Sei doch nicht gleich so Aggro, ist doch alles gut, oder wo drückt's?

rapster

#380
Hab eine neue Version eingecheckt,
bei der standardmäßig bei jedem Tastendruck die Befehlsvervollständigung durchgeführt wird (nicht mehr nur bei STRG+SPACE, ist über codemirrorParam deaktivierbar)
und IF/DOIF/DOELSE/DOELSEIF mit dabei ist.

Leider verhält sich codemirror an manchen Stellen (z.B. in bestimmten Situationen beim Vervollständigung von readings) nicht wie erwartet und beachtet den Parameter "completeSingle:false" nicht. (Werde mir das noch bei Gelegenheit anschauen)

Falls hierdurch Probleme auftreten oder euch noch etwas auffällt bescheid geben.

Gruß
  Claudiu

EDIT: habe by default "autocompleteAlways" doch wieder deaktiviert, leider sind mir grad beim editieren von multiline-Attributen ein paar unschöne Nebeneffekte begegnet.
Werde das noch bei Gelegenheit etwas verfeinern.
Bis dahin kann es mit "attr web codemirrorParam { "autocompleteAlways":true } zum testen aktiviert werden.

RoBra81

Guten Morgen,

ich habe gestern seit einer Weile mal wieder ein Update gemacht und habe mit Begeisterung das Autocomplete-Feature (und auch die das Suchen und Ersetzen) entdeckt. Meine Begeisterung hat sich noch einmal gesteigert, als ich beim Ausprobieren feststelle, dass das Autocomplete auch für eigene Geräte (und nicht wie erwartet nur für Schlüsselwörter) funktioniert. Dann gab es jedoch einen kleinen Dämpfer: ich nutze in meinen Device-Namen viele Punkte (z.B. OG.sp.KL.Klima.DI.Heizkoerperventil) - gebe ich nun 'OG' ein und drücke STRG+Leertaste, dann listet er mir alle Geräte im 1. Obergeschoss auf ;D. Gebe ich jedoch 'OG.ku' ein um alle Geräte in der Küche im 1. OG zu erhalten, gibt es gar kein Ergebnis (vermutlich, da ich kein Gerät habe, das mit 'ku' beginnt) :( - kann man da etwas machen? :-[

Vielen Dank für das tolle Feature!

Ronny

papa

Da müssen wir mal die Regular Expressions anpassen. Soweit ich das jetzt in meinen ur-alten Code sehe, werden nur Buachstanben und '-' im Gerätenamen erwartet.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

RoBra81


abc2006

Hi,
Habe gesehen dass der Thread schon etwas älter ist, aber:
auf der Suche nach der gleichen Problematik wollte ich mal nachfragen, ob sich hier irgendwas geändert hat, oder ob es noch kein Update dazu gibt..

Habe nämlich ebenfalls Punkte, die AutoVervollständigung arbeitet aber nur bis zum ersten Punkt mit einer langen Liste ;)

HMW01<STRG+LEER> = Lange Liste aller HMW01.*-Geräte
HMW01.I01<STRG+LEER> = eigentlich will ich nur den Rest ergänzt haben, aber es wird nicht vervollständigt..

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

justme1968

@rapster: es scheint ein problem zu geben wenn man codemirror und das neue perlSynatxCheck feature gemeinsam verwendet.

scheinbar wird unter bestimmten bedingungen nicht mehr der text aus codemirror verwendet sondern der im dahinterliegende text feld. ich tippe auf ein timing problem oder ähnliches beim überschreiben der event handler.

vielleicht magst du mal danach schauen?

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

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

papa

Ich habe mal ne Sonderbehandlung für "." im Namen eingebaut. Bitte mal das angehängte fhem.js in www/codemirror speichern und ausprobieren. Wenn das gut funktioniert, müsste mal jemand das ins SVN einchecken.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

abc2006

Hi,
sieht für mich erstmal gut aus soweit. Vervollständigung funktioniert anscheinend wie gewünscht.
Danke für den schnellen Fix!

viele Grüße
Stephan

FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Ah, stop, ich muss meine Zustimmung revidieren:

HMW01<STRG+LEER> = Lange Liste aller HMW01.*-Geräte - ist gleich geblieben
HMW01.<STRG+LEER> = Liste aller HMW01.-Geräte, funktioniert jetzt
HMW01.I<STRG+LEER> = vervollständigt mir auf  "HMW01.IF" ... Allerdings würde ich nach HMW01.I01_Taster_Tuere_Flur suchen ..

Auch der Teil nach dem Punkt müsste als zugehörig betrachtet werden...

Sorry, war ich heute Nacht nicht so fit :)

Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

papa

Hier nochmal ein update. Bitte mal testen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire