[Gelöst] Problemfall für perlSyntaxCheck

Begonnen von ht, 12 April 2016, 00:44:05

Vorheriges Thema - Nächstes Thema

ht

Hi Rudi,

ich habe mal das neue perlSyntaxCheck ausprobiert. Da ich im Entwickler-Thread nicht direkt antworten kann, poste ich das hier. Ich habe folgende Notify-Definition (Auszug aus der cfg-Datei):

define fpntf_Morgen notify fpntf_Morgen \
{ unless (isday("REAL")) { fhem("set ez_Esstisch on") } };; \
set (ez|ku|wz)_Rolladen.* up


Bei eingeschaltetem perlSyntaxCheck meckert er, wenn ich die DEF im UI bearbeite. Klar, die letzte Zeile ist kein Perl, aber die Prüfung geht (so wie ich die verstehe) davon aus, dass alles Perl Code ist, wenn die Definition mit einer { anfängt. Entsprechend kann ich das umstellen, entweder indem ich die beiden Zeilen vertausche, oder indem ich das zweite set auch im Perl-Code mit fhem("...") mache.

Hast Du eine Idee, wie Du den Check so umbauen kannst, dass er auch solche Mischformen prüft? Funktionieren tut der Code bei der Ausführung ja.

Grüße,
Volker
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung

rudolfkoenig

Eigentlich halte ich nicht viel von solchen gemischten Konstrukten, und explizit erlaubt sind sie auch nicht. Ich vermute aber, dass es von vielen verwendet wird, und will es nicht ohne Weiteres (sprich Kommentare von anderen) unterbinden.

Ich habe jetzt die Eingangspruefung in perlSyntaxCheck wieder auf ^{.*}$ gestellt, damit wird es fuer das erwaehnte Konstrukt gar nicht angewendet. Und fehlerhaft angewendet auf Konstrukte wie
{ perl };; fhem;; {perl}
Eine Suche nach Perl-Teilen erscheint mir z.Zt. zu aufwendig.

ht

Hi Rudi, Hi Andre,

ich habe eben (SVN) gesehen, dass Ihr beiden Euch sogar die Mühe gemacht habt, diese Mischkonstruktionen zu unterstützen. Vielen Dank. Habe es bei mir ausprobiert und es funktioniert, d.h. ein Fehler im Perl-Teil wurde erkannt. Auch ich musste zum Testen CodeMirror ausschalten, aber das ist ja bekannt (https://forum.fhem.de/index.php/topic,52319.msg440658.html#msg440658).

ZitatEigentlich halte ich nicht viel von solchen gemischten Konstrukten, und explizit erlaubt sind sie auch nicht

Ich habe das so gemischt, um unnötigen Overhead zu vermeiden, wobei ich zugebe, dass ich den tatsächlichen Overhead nicht beurteilen kann. Ich finde es so auch besser lesbar (klar, Geschmackssache:) )

Grüße,
Volker
FHEM 5.7, RasPI 2, HomeMatic über HMUSB, JeeLink Clone, Viessmann Heizung