Ankündigung

Einklappen
Keine Ankündigung bisher.

Coding style

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Coding style

    Hallo Zusammen,

    ich weiss ein gefährliches Thema, aber ein Versuch ist es wert

    Das offizielle Dokument kenne ich natürlich: https://github.com/CometVisu/CometVi...i/Coding-style
    Der letzte Punkt lautet "stay consistent". Stimme ich 100% zu, da beginnen aber die Probleme. Der Code ist an vielen Stellen nicht konsistent. Beispiel:

    - if (var) {} vs. if(var) {}
    - if (var) {} vs. if ( var ) {}
    - if (var) {} vs. if (var )
    {}
    - ...

    Es gibt so ziemlich jede mögliche Spiel art. Während manche Unterschiede auf Files oder ganze Blöcke begrenzt sind (z.B. TabWidth Editor = 4, Rest = 2) ist häufig eine bunte Mischung innerhalb von Dateien zu finden. Das macht "stay consistent" quasi unmöglich, egal für was man sich entscheidet, der Mischmasch wird schlimmer als vorher

    Ignorieren? Oder verbessern? Ich bin kein Freund davon bestehen Code nur des Styles wegen anzufassen. Aber aus meiner Sicht sollten wir zumindest ein paar Regeln für neuen Code festlegen und uns dann daran halten. Alten Code aber so belassen wir es ist (oder sowieso geändert wird).

    Ich kann mit welcher Form auch immer leben, solange sie konsistent ist

    Grüße,
    Florian

    #2
    Bin ich vor kurzem drüber gestolpert: http://editorconfig.org/

    Vielleicht wäre das ja hilfreich?

    Aber bin eben mal die Coding Style Guideline durchgegangen...

    A tab character has a width of 8
    Aha.

    The code must not contain any tabs
    ??? Wieso definiert man die breite eines Tabs, wenn man Tabs nicht verwenden darf?

    The shift width is 2
    Damit ist die breite einer Einrückung gemeint? Ist 2 nicht etwas exotisch? Netbean und Eclipse verwenden 4, bzw. 8 in der Default-Einstellung.
    Okay, ist auch Geschmackssache. Für mein befinden sind 2 etwas wenig, 8 etwas viel und 4 genau richtig.

    The coder should try to not exceed 80 chars per line
    Das stammt doch noch aus den "Code wird ausgedruckt" und "Die Bildschirme sind nur 14" groß und lösen mit 640x480 auf" Zeiten, oder?
    Ich muss nicht jede Zeile des Bildschirms rand voll schreiben. Aber bei max. 80 Zeichen pro Zeile ist über die Hälfte des Bildschirms leer?!


    btw: Nutzt ihr einen Editor der den Code formatieren kann? Oder anders gefragt: Was nutzt ihr zum Code editieren?
    Hab das Projekt mal mit Netbeans als HTML5 Projekt geöffnet. Da gibt's so einiges an hilfreicher unterstützung (Code formatieren, Autovervollständigung, ...).

    Kommentar


      #3
      Zitat von tuxedo Beitrag anzeigen
      Damit ist die breite einer Einrückung gemeint? Ist 2 nicht etwas exotisch? Netbean und Eclipse verwenden 4, bzw. 8 in der Default-Einstellung.
      Okay, ist auch Geschmackssache. Für mein befinden sind 2 etwas wenig, 8 etwas viel und 4 genau richtig.
      Da bin ich ganz bei Dir, mir sind vier Zeichen auch am liebsten.


      Zitat von tuxedo Beitrag anzeigen
      Das stammt doch noch aus den "Code wird ausgedruckt" und "Die Bildschirme sind nur 14" groß und lösen mit 640x480 auf" Zeiten, oder?
      Ich muss nicht jede Zeile des Bildschirms rand voll schreiben. Aber bei max. 80 Zeichen pro Zeile ist über die Hälfte des Bildschirms leer?!
      FullAck! Das ist ein Punkt, der auch von den Default-Sonar-Regeln angemeckert wird. In Zeiten von Widescreen-Monitoren völlig überholt und wir haben hier auch dementsprechend angepasste Company-Codingguidelines.


      Zitat von tuxedo Beitrag anzeigen
      Nutzt ihr einen Editor der den Code formatieren kann? Oder anders gefragt: Was nutzt ihr zum Code editieren?
      Hab das Projekt mal mit Netbeans als HTML5 Projekt geöffnet. Da gibt's so einiges an hilfreicher unterstützung (Code formatieren, Autovervollständigung, ...).
      Ich habe früher mit Eclipse gearbeitet und konnte mir nicht vorstellen, etwas anderes zu verwenden. Bis mir dann jemand IntelliJ gezeigt hat. Mittlerweile entwickle ich nur noch damit und frage mich, wie ich so lange mit Eclipse arbeiten oder eigentlich sogar "aushalten" konnte. Aber der Vollständigkeit halber: Das hängt natürlich auch immer davon ab, was man macht und es gibt viele Szenarien, ob denen Eclipse völlig ausreichend ist.

      Etwas anderes als IntelliJ kommt hier also höchst selten zum Einsatz. Was ich allerdings nebenher nicht missen möchte, ist Notepad++.

      Aber zurück zum eigentlichen Thema: Für mich wäre es auch ok, den Formatter jetzt direkt nach einem Release über den ganzen Code laufen zu lassen, um einen einheitlichen Stand zu haben! Damit wäre es dann wieder konsistent. Dabei ist jedoch zu beachten, dass die externen Komponenten ausgenommen bleiben sollten, Stichwort ist das gerade aktuelle Thema mit meiner kleinen Modifikation am Gauge-Plugin.
      Kind regards,
      Yves

      Kommentar


        #4
        Hallo
        Natürlich ist es schön wenn der ganze Code von vorne bis hinten consistent ist.
        Wenn man das dann mit einem Formatierer erledigt ist das ok.
        Aber wenn sich jeder an bestimmte festen Regeln halten soll, je höher ist die Schwelle ein Plugin zu entwickeln.
        Dabei meine ich nicht das einrücken von Code, sondern wie "jolt" es mit den if beschrieben hat.
        Für meine Begriffe hindert mich schon die Umstellung von SVN nach Git etwas zu entwickeln.
        Für die Profis ist das alles kein Problem, aber für die Hobbyisten schon.
        Ich benutze Notepad++.
        Gruß NetFritz
        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

        Kommentar


          #5
          Hallo miteinander

          Zitat von NetFritz Beitrag anzeigen
          Natürlich ist es schön wenn der ganze Code von vorne bis hinten consistent ist.
          Wenn man das dann mit einem Formatierer erledigt ist das ok.
          Aber wenn sich jeder an bestimmte festen Regeln halten soll, je höher ist die Schwelle ein Plugin zu entwickeln.
          Dabei meine ich nicht das einrücken von Code, sondern wie "jolt" es mit den if beschrieben hat.
          Für meine Begriffe hindert mich schon die Umstellung von SVN nach Git etwas zu entwickeln.
          Für die Profis ist das alles kein Problem, aber für die Hobbyisten schon.
          Das kann man aber auch anders sehen. Wenn ich in fremden Code reinschaue und dort sieht es aus wie Kraut und Rüben (übertrieben gesagt), dann hält mich das vielmehr davon ab, dort etwas zu machen. Von daher ist es in meinen Augen eher ein positives Argument, solche Dinge zu forcieren. Dazu gehört m.M.n. aber auch, dass man PullRequests bspw. nicht rigoros ablehnt, nur weil bspw. die Formatierung nicht stimmt, sondern entweder dahingehend Hilfe anbietet, dokumentiert ist, wie man es (semi-)automatisch richten kann oder es unmittelbar nach dem Merge einfach gerade zieht.

          Was das jetzt mit der SVN-Git-Migration zu tun hat, erschliesst sich mir gerade nicht. Aber vermutlich zielst Du darauf ab, dass das nun einen gewissen Einarbeitungsaufwand mit sich bringt, wenn man Git noch nicht wirklich kennt. Keine Frage, das ist korrekt und auch nicht zu unterschätzen. Allerdings habe ich bisher noch niemanden gefunden, der hinterher wieder zurück zu SVN wollte.
          Kind regards,
          Yves

          Kommentar


            #6
            Hallo
            @starwarsfan
            Das kann man aber auch anders sehen. Wenn ich in fremden Code reinschaue und dort sieht es aus wie Kraut und Rüben (übertrieben gesagt), dann hält mich das vielmehr davon ab, dort etwas zu machen
            Da hast Du vollkommen Recht, Spagetticode geht garnicht.
            Aber darum geht es mir gar nicht.
            Ob ich aber
            - if (var) {} vs. if(var) {}
            - if (var) {} vs. if ( var ) {}
            - if (var) {} vs. if (var )
            {}
            schreibe ist doch eigentlich egal.
            Es sieht nur schöner aus wenn alles gleich ist.
            Wenn man aber darauf besteht das alle so schreiben " if (var) {} ",
            dann finde ich es einfach abschreckend wenn dann auch noch gemault wird.
            Gruß NetFritz
            KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
            WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
            PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

            Kommentar


              #7
              Zitat von jolt Beitrag anzeigen
              ich weiss ein gefährliches Thema, aber ein Versuch ist es wert
              Sehr gefährlich, ich glaube daran sind schon Hochkulturen zu Grunde gegangen...
              Zitat von jolt Beitrag anzeigen
              Der letzte Punkt lautet "stay consistent". Stimme ich 100% zu, da beginnen aber die Probleme. Der Code ist an vielen Stellen nicht konsistent. Beispiel:
              [...]
              Es gibt so ziemlich jede mögliche Spiel art. Während manche Unterschiede auf Files oder ganze Blöcke begrenzt sind [...] ist häufig eine bunte Mischung innerhalb von Dateien zu finden. Das macht "stay consistent" quasi unmöglich, egal für was man sich entscheidet, der Mischmasch wird schlimmer als vorher
              Unterschiedliche Dateien: liegt meist am unterschiedlichen Ursprungs-Autor.

              Da würde ich empfehlen:
              • Wer eine neue Datei erstellt hält sich an die generischen Regeln und dem was in Hauptsache dem sonstigen Code entspricht
              • Wer in einer bestehenden Datei arbeitet nimmt das, was im umliegenden Code verwendet wird


              Zitat von jolt Beitrag anzeigen
              Ignorieren? Oder verbessern? Ich bin kein Freund davon bestehen Code nur des Styles wegen anzufassen. Aber aus meiner Sicht sollten wir zumindest ein paar Regeln für neuen Code festlegen und uns dann daran halten. Alten Code aber so belassen wir es ist (oder sowieso geändert wird).
              Code nur wegen der Formatierung anfassen finde ich persönlich auch nicht passend. Wir machen hier Open Source - neben dem Wort Source ist da auch das Open sehr wichtig. Und wir wissen dass es dabei ja nicht (nur) um das "Frei" wie beim Freibier sondern v.a. um das in Freie Rede geht.

              Wir sind hier ja kein Unternehmen was damit Geld verdient (weder kann noch muss).

              Ausnahme: Mit falschen Tab einstellungen kann man den Code für alle anderen Zerstören. Die sollte man IMHO sofort rauswerfen (aber bitte in einem eigenen Commit, nicht mit inhaltlicher Änderung vermischt)
              Zitat von tuxedo Beitrag anzeigen
              Aber bin eben mal die Coding Style Guideline durchgegangen...
              The code must not contain any tabs
              ??? Wieso definiert man die breite eines Tabs, wenn man Tabs nicht verwenden darf?
              Weil manchmal ein Tab durchrutscht. Und wenn die Tab-Breite (die man ja normalerweise zentral einstellen kann) nun nicht auf 8 steht, so hat man hier die reale Chance den Code für jeden anderen unlesbar zu machen. Insbesondere auch auf Systemen die keine IDE sind. EMail-Clients die den Diff zeigen, beispielsweise. Oder Kommandozeilen Tools. ...

              Ich kann mit ziemlich viel leben (auch wenn ich natürlich meine persönlichen Favoriten habe) - aber genau dieser Punkt (Tab auf 8 und trotzdem keine verwenden) ist mir extrem wichtig. Ich hab mich hier einfach schon viel zu oft geärgert.
              Zitat von tuxedo Beitrag anzeigen
              The shift width is 2
              Damit ist die breite einer Einrückung gemeint? Ist 2 nicht etwas exotisch? Netbean und Eclipse verwenden 4, bzw. 8 in der Default-Einstellung.
              Okay, ist auch Geschmackssache. Für mein befinden sind 2 etwas wenig, 8 etwas viel und 4 genau richtig.
              Wie, Du verwendest keinen vi? Da weiß man, dass shiftwidth der Parameter für die Einrückungstiefe ist!

              Ich finde 2 optimal - denn 2 Spaces sind zusammen genau so breit wie hoch. D.h. das bildet ein quadratisches Kästchen. Und nimmt nicht so viel Platz weg wie höhere Einrückungstiefen. 8 ist da sehr extrem.
              Auch wenn ich 2 optimal finde, so bin ich bei 4 durchaus noch tolerant. Ist halt Geschmack und was man wo gelernt hat.

              Zitat von tuxedo Beitrag anzeigen
              The coder should try to not exceed 80 chars per line
              Das stammt doch noch aus den "Code wird ausgedruckt" und "Die Bildschirme sind nur 14" groß und lösen mit 640x480 auf" Zeiten, oder?
              Ich muss nicht jede Zeile des Bildschirms rand voll schreiben. Aber bei max. 80 Zeichen pro Zeile ist über die Hälfte des Bildschirms leer?!
              Klar kommt das von früher. Hat aber IMHO immernoch seine Berechtigung (wenn auch nicht mit 100% Spießertum):
              Wenn man den Code in einem Terminal (Kommandozeile für die jüngeren unter uns, cmd.exe für die ganz jungen... ) öffnet (z.B. für einen schnellen Diff o.ä.) so hat man typischer Weise ein 80 Zeichen breites Fenster. Und auch bei variabel breiten Fenstern ist da die Wahrscheinlichkeit dass die Zeile nicht umbricht sehr hoch (z.B. im Mail Client)

              Warum sollte ich beliebig breit werden? Da kann ich doch nicht mehr mehrere Dateien parallel nebeneinander öffnen... Ich bevorzuge mehrere hohe und schmale Fenster, so kann ich von mehr Dateien mehr Inhalt (der ja vertikal ist) gleichzeitig erfassen.

              Es gibt aber IMHO durchaus sinnvolle Fälle das Limit leicht zu überschreiten - z.B. wenn ein Kommentar um ein paar Zeichen nicht mehr in die 80 Zeichen passt. Da ist ein Umbruch oft störender. Aber wenn der Kommentar die 150 Zeichen erreicht sollte man schon mal über eine weitere Zeile nachdenken...
              Zitat von tuxedo Beitrag anzeigen
              btw: Nutzt ihr einen Editor der den Code formatieren kann? Oder anders gefragt: Was nutzt ihr zum Code editieren?
              Hab das Projekt mal mit Netbeans als HTML5 Projekt geöffnet. Da gibt's so einiges an hilfreicher unterstützung (Code formatieren, Autovervollständigung, ...).
              Meistens verwende ich inzwischen Kate und oft genug für schnelle Checks u.ä. vim bzw. gvim.
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                #8
                Ok, die Tab-Sache ist angekommen. War nur eben nicht auf anhieb klar.

                Bzgl. der Einrückung... ich kann mit 2 leben. Ist halt Geschmackssache.

                Bzgl. der Zeilenbreite:

                Also selbst wenn ich zwei Codefenster nebeneinander aufmache, habe ich nur rund 100 Zeichen in der Breite ohne dass ich horizontal scrollen muss oder etwas umgebrochen wird (1920x1200 auf 24").
                Im Terminal brauch ich eigtl nur dann 80 Zeichen (oder weniger) wenn ich mit dem Smartphone per SSH unterwegs bin. Ansonsten hab ich nirgendwo weniger als 1280px in der breite oder weniger als 19". Denke das wird den meisten so gehen.

                Dass man eine Zeile nicht unendlich breit macht leuchtet ein (meist ließe sich der ganze Code ja in eine einzige Zeile schreiben). Aber fix 80 Zeichen... ich weiß nicht. Aber gut, ich bin da demokratisch und beuge mich der Mehrheit.

                Kommentar


                  #9
                  Hallo miteinander

                  Zitat von Chris M. Beitrag anzeigen
                  Sehr gefährlich, ich glaube daran sind schon Hochkulturen zu Grunde gegangen...



                  Zitat von Chris M. Beitrag anzeigen
                  Ich finde 2 optimal - denn 2 Spaces sind zusammen genau so breit wie hoch. D.h. das bildet ein quadratisches Kästchen. Und nimmt nicht so viel Platz weg wie höhere Einrückungstiefen. 8 ist da sehr extrem.
                  Auch wenn ich 2 optimal finde, so bin ich bei 4 durchaus noch tolerant. Ist halt Geschmack und was man wo gelernt hat.
                  Definitiv. Genau deswegen mag ich zwei Zeichen überhaupt nicht. Ich kann so nur relativ mühsam den Code überblicken, gerade dann, wenn man grössere Blöcke hat. Man kommt recht schnell durcheinander, in welchem Einrückungslevel man sich befindet. Das ist bei vier Zeichen deutlich anders resp. einfacher nachzuverfolgen.


                  Zitat von Chris M. Beitrag anzeigen
                  Klar kommt das von früher. Hat aber IMHO immernoch seine Berechtigung (wenn auch nicht mit 100% Spießertum):
                  Wenn man den Code in einem Terminal (Kommandozeile für die jüngeren unter uns, cmd.exe für die ganz jungen... ) öffnet (z.B. für einen schnellen Diff o.ä.) so hat man typischer Weise ein 80 Zeichen breites Fenster.
                  Echt? Also die Konsole ist quasi mein täglich Brot und da habe ich schon sehr lange keine 80-Zeichen-Limits mehr. Es ist quasi das allererste, einen vernünftigen Zugang einzurichten, so dass man mit einem brauchbaren Terminal dran kommt. Und selbst wenn man direkt an der Maschine sitzt, schaltet i.d.R. jeder Frambuffer auf eine höhere Auflösung. Deswegen an den veralteten Limits von 80x24 festhalten zu wollen ist m.M.n. eher kontraproduktiv.

                  Anyway, an mir soll's aber nicht liegen, just my two cents.


                  Zitat von Chris M. Beitrag anzeigen
                  Warum sollte ich beliebig breit werden? Da kann ich doch nicht mehr mehrere Dateien parallel nebeneinander öffnen... Ich bevorzuge mehrere hohe und schmale Fenster, so kann ich von mehr Dateien mehr Inhalt (der ja vertikal ist) gleichzeitig erfassen.

                  Es gibt aber IMHO durchaus sinnvolle Fälle das Limit leicht zu überschreiten - z.B. wenn ein Kommentar um ein paar Zeichen nicht mehr in die 80 Zeichen passt. Da ist ein Umbruch oft störender. Aber wenn der Kommentar die 150 Zeichen erreicht sollte man schon mal über eine weitere Zeile nachdenken...
                  Ich denke, ein gutes Mittel ist ein Limit von 140 Zeichen. Damit lässt sich vernünftig arbeiten und es ist ja schliessliche bei weitem nicht so, dass jede Zeile so lang ist.
                  Da könnte man ja mal ein wenig Statistik machen, wieviele Zeilen es tatsächlich gibt, die länger als bspw. 70 Zeichen sind. Wer will?
                  Kind regards,
                  Yves

                  Kommentar


                    #10
                    Code:
                     [FONT=Menlo][SIZE=11px]find . -name '*.js' | xargs grep -c '.\{70\}' | sed 's/:/ /' | sort -n -r -k2[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/gauge/lib/steelseries.js 2596[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery-ui.js 1279[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/icon/iconconfig.js 830[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram2/d3/d3.js 823[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/dependencies/jquery.xpath.js 751[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/Three.js 698[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.js 667[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.js 382[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/require-2.1.15.js 363[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/Schema.js 260[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/templateengine.js 239[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/Editor.js 225[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jsfloorplan.js 199[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/strftime.js 149[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/poly2tri.js 126[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/Configuration.js 121[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/dependencies/json2.js 99[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.tools.min.js 95[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/upnpcontroller/structure_plugin.js 82[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/_common.js 76[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.pie.js 74[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/structure_plugin.js 71[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.axislabels.js 70[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/excanvas.js 70[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram2/structure_plugin.js 70[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.selection.js 55[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/cometvisu-client.js 53[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.errorbars.js 47[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/page.js 41[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/rsslog/structure_plugin.js 38[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.navigate.js 37[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/gauge/structure_plugin.js 36[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/DataProvider.js 36[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/pagepartshandler.js 32[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/icontools.js 32[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.tooltip.js 31[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/require-2.1.15.min.js 31[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/sprintf.js 28[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/slide.js 27[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/timeout/structure_plugin.js 27[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/gauge/lib/tween.js 26[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/iconhandler.js 26[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/metal/design_setup.js 26[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/transforms/transform_knx.js 23[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/navbar.js 23[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/infotrigger.js 22[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/openweathermap/owm/jquery.owm.js 22[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/clock/structure_plugin.js 22[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/Messages.js 22[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/ActiveInput.js 22[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/web.js 21[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.canvas.js 21[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/colorchooser/structure_plugin.js 21[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/calendarlist/structure_plugin.js 21[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/pushbutton.js 19[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/pagejump.js 19[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/multitrigger.js 19[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/imagetrigger.js 19[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/rss/structure_plugin.js 19[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/strftime/structure_plugin.js 18[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.stack.js 18[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.image.js 18[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.crosshair.js 18[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/trigger.js 17[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/switch.js 17[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.categories.js 17[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/trick-o-matic.js 17[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/compatibility.js 17[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/text.js 16[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/group.js 16[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/infoaction/structure_plugin.js 16[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.time.js 16[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/toggle.js 15[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/svg/structure_plugin.js 15[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/colorchooser/farbtastic/farbtastic.js 15[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/urltrigger.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/designtoggle.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.fillbetween.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.colorhelpers.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/lib/cometvisu-client-openhab.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/init.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/dataproviders/DataProviderConfig.js 14[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/transforms/transform_default.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/wgplugin_info.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/video.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/rgb.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/refresh.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/info.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/audio.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/openweathermap/structure_plugin.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/config/structure_custom.js 12[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/image.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/rss/zrssfeed/jquery.zrssfeed.min.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/rss/zrssfeed/jquery.zrssfeed.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/gauge/lib/steelseries-min.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.threshold.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./build.js 11[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/transforms/transform_oh.js 10[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/reload.js 10[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/line.js 10[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/unknown.js 9[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/include.js 9[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/structure/pure/break.js 9[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/link/structure_plugin.js 9[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/scrollable.js 9[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/colorchooser/farbtastic/farbtastic.min.js 8[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.ui.touch-punch.js 8[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/scrollable.min.js 7[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/css.js 7[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.symbol.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.resize.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram2/d3/d3.min.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/ListenerEvent.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/pure/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/planet/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/pitchblack/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/discreet_slim/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/discreet_sand/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/discreet/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/alaska_slim/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/designs/alaska/design_setup.js 5[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/lib/Result.js 3[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/dependencies/jquery.cookie.js 3[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery-ui.min.js 3[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.svg.min.js 3[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/rss/zrssfeed/jquery.vticker.js 2[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.navigate.min.js 2[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.min.js 2[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/sprintf.min.js 2[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/gauge/lib/tween-min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.tooltip.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.time.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.threshold.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.symbol.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.stack.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.selection.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.resize.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.pie.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.image.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.fillbetween.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.errorbars.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.crosshair.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.categories.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.flot.canvas.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/jquery.colorhelpers.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/plugins/diagram/flot/excanvas.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/editor/dependencies/jquery.xpath.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/strftime-min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.ui.touch-punch.min.js 1[/SIZE][/FONT]
                      [FONT=Menlo][SIZE=11px]./src/dependencies/jquery.min.js 1[/SIZE][/FONT]

                    Kommentar

                    Lädt...
                    X