ubuntuusers.de

Perl-Syntax-Hervorhebung in Gedit fehlerhaft?

Status: Gelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

thomasic

Avatar von thomasic

Anmeldungsdatum:
24. März 2009

Beiträge: 92

Wohnort: Bonn

Hallo zusammen.

Hat noch jemand das Problem, dass die Syntax-Hervorhebung für Perl in Gedit an einem kleinen "y" scheitert?

Das "y" kommt in meinem Script als SDL-Methode vor, und zack: von da an wird alles rosa (also wohl als String) angezeigt. Manchmal kriegt er sich nach zwei Zeilen wieder ein, und manchmal gar nicht mehr.

Ich fange gerade an zu Programmieren, habe mich aber bereits an Gedit gewöhnt und würde gerne weiter damit arbeiten. Aber dass er einige Perl-Scripte nicht korrekt anzeigt, nervt ziemlich.

Gibt es dafür irgendeine Lösung?

Gruß, Thomas

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4695

Wohnort: Berlin

@thomasic: Eine Lösung wäre es eine Programmiersprache zu verwenden, deren Syntax nicht so kompliziert ist. 😉

Mal im ernst: Kannst Du ein kleines Beispiel zeigen?

thomasic

(Themenstarter)
Avatar von thomasic

Anmeldungsdatum:
24. März 2009

Beiträge: 92

Wohnort: Bonn

Hi,

hier ist mal ein Foto vom Gedit-Fenster:

Also in den beiden Zeilen 153 und 154 taucht das Problem auf, und der in den selben Zeilen fängt sich Gedit wieder.

In Zeile 172 geht es wieder los. Und von da an bis zum Ende des Scripts.

@thomasic: Eine Lösung wäre es eine Programmiersprache zu verwenden, deren Syntax nicht so kompliziert ist. 😉

Ich fange zwar gerade erst an zu Programmieren; aber ich muss sagen: irgendwie stehe ich auf Perl. Alternativ werde ich wohl als nächstes Python ein bisschen ausprobieren. Aber jetzt werde ich erstmal noch ein bisschen mit Perl flirten! 😉

Notfalls auch mit anderem Editor...

edit: (das Script ist nicht von mir, sondern aus einem Tutorial; die Scripts die ich schreibe sind -naja -ein klein wenig beschaulicher...)

Bilder

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Schlechter Syntax Highlighter. Das liegt daran das "y" ein weg ist wie du einzelne Zeichen ersetzen kannst.

$variable =~ y/abc/xyz/;

Das würde halt das zeichen "a" in $variable duch "x" ersetzen, "b" nach "y" oder "c" nach "z". Der erste buchstabe nach dem "y" ist der begrenzer. Den kann man bei Perl 5 wählen.

In deinem Beispiel steht ja "-y=>140..." daher nimmt er das "y" als beginn des ganzen, und das gleichzeitzeichen als trenner, er sucht also nach soetwas "y=...=...=", wenn du dadrauf achtest dann coloriert er das bei dir auch immer bis zum nächsten vorkommen des dritten gleichheitszeichen ein.

In diesem Beispiel ist das aber nicht der y/// Befehl da du "-y ⇒ 140" schreibst. Und der "⇒" Operator nimmt das was davor steht und das wird als string interpretiert. Das ist halt dafür gedacht um Hashes leichter/schöner/übersichtlicher zu definieren.

my %person = (
   name    => 'raab',
   vorname => 'david',
);

Anscheind ignoriert gedit den "⇒" Operator. Oder ich würde es wenn du selber code schreibst auch mal testen ob nicht ein einfach hinzufügen von einem leerzeichen vor und nach dem "⇒" das Problem schon löst. Das würde ich sowieso machen da es übersichtlicher und leichter zu lesen ist. zusammengequetsch sind die argumente schlechter erkennbar, in der regel macht man ja auch

funktion($foo, $bar, $baz);

anstatt

funkion($foo,$bar,$baz);

und im deutschen fügt man hinter einem Komma oder Punkt auch immer ein Leerzeichen ein um die lesbarkeit zu erhöhen. Ansonsten ist "Scite" auch ein netter Editor der Perl 5 recht gut Parsen kann (Perl 5 ist schwer zu parsen).

Ansonsten kannst du auch mal Padre ausprobieren. http://padre.perlide.org/trac/

thomasic

(Themenstarter)
Avatar von thomasic

Anmeldungsdatum:
24. März 2009

Beiträge: 92

Wohnort: Bonn

Danke Sid Burn, für die ausführliche Antwort. Also mit ein paar mehr Leerzeichen ließ sich das Problem leider nicht beheben. Ich denke, ich werde dann tatsächlich mal einen anderen Editor ausprobieren.

Wie das Problem in den Zeilen 153, 154 zu Stande kommt habe ich verstanden. Aber nicht warum ab Zeile 173 alles nur noch rosa ist. Naja, so oder so habe ich wohl keine Wahl als einen anderen Editor zu versuchen.

liebe Grüße Thomas

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Könntest ja einen Bugreport schreiben, falls es noch keinen dafür gibt.

thomasic

(Themenstarter)
Avatar von thomasic

Anmeldungsdatum:
24. März 2009

Beiträge: 92

Wohnort: Bonn

(Habe gar nicht mehr in den thread geschaut.)

Ich habe einen Bug-report geschrieben...

Mortivor

Anmeldungsdatum:
25. November 2009

Beiträge: 45

Ich hab zwar nicht den gleichen Fehler, aber auch mir ist aufgefallen das die Perl-Hervorhebung in gedit fehlerhaft ist. Ich versuch mich gerade daran die Sprache "Mason" hinzuzufügen, die Ähnlichkeiten mit php/html hat; nur ist sie ein Gemisch von html und perl. Und das macht mich wahnsinnig. Bestimmte Kontexte, in denen Perl Code geschrieben wird, gehen über ihre "Kontext-Grenzen" hinaus und der folgende HTML Code wird dann ebenfalls in Perl Manier eingefärbt...

Schuld ist scheinbar der Kontext "operator" in der Perl-Syntaxhighlight-Definition (perl.lang). Wenn ich den auskommentiere geht alles; bis auf das Highlighting von Operator natürlich. Also kein "qe", "ge", "+" und so mehr. Auch doof. Leider ist das ein regulärer Ausdruck über 15 Zeilen, das wird dauern da durchzublicken.^^

P.S.: Ich stimme Marc zu. Die Syntax von Perl ist zu kompliziert. Zwar ist es das Motto der Sprache, aber man einfach auf viel zu viele Arten das Gleiche machen. 😉

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2133

Wohnort: Gelsenkirchen

Das mündet aber wieder in so eine Glaubensfrage. Wenn man den grundsätzlichen Ansatz einer Sprache nicht magt, sollte man sich idealerweise nach was anderem umschauen. Es gibt ja offenbar schon ein paar Leute, die genau dieses Prinzip gut finden. Wenn auch vergleichsweise wenige. 😉

thomasic

(Themenstarter)
Avatar von thomasic

Anmeldungsdatum:
24. März 2009

Beiträge: 92

Wohnort: Bonn

Hallo.

Ich gestehe, ich bin mittlerweile auf Python umgestiegen. Ich mochte Perl irgendwie gerne; auch weil es so exklusiv und tüfftelig war. Aber ehrlich: Python geht mir einfach viel besser von der Hand. Der eigentliche Grund zu wechseln war aber, das PerlSDL auf meinem Rechner einfach nicht so recht wollte. Und das Pythonäquivalent pygame ist wesentlich ausgereifter...

Antworten |