Bluefish - Fehlerhaftes Syntax-Highlighting?

D

daNny

Grünschnabel
Hallo!

Ich habe ein Problem, bei dem mir bisher leider niemand helfen konnte und welches eigentlich auch in keine Forenkategorie hier hereinpasst. Deswegen versuche ich es einfach mal im Forum meiner verwendeten Distri.

Ich verwende Bluefish um PHP-Scripte zu entwickeln. Der Editor gefällt mir soweit extrem gut, doch leider versagt das Syntax-Highlighting immer wieder. Das fällt mir extrem bei echo-Befehlen auf... Also z.b. folgendes kleines "Programm":

PHP:
<?php
function tauschen($x, $y) {
    $temp = $a;
    $a = $b;
    $b = $temp;
}

echo "Hallo! Ich bin ein String <br />";
?>

Hier gibt es z.b. immerwieder Probleme, sobald es irgendwie etwas mit echo und den " " zu tu hat, sodass das Highlighting des gesamten Codes von bunt auf nur schwarz springt und erst wieder richtig ist, sobald ich F5 (Aktualisieren) drücke.

Ist das ein bekanntes Problem und/oder weiß jemand, wie ich das beheben kann? Ist schon recht nervig andauernd F5 zu drücken. Würde des echt nicht fragen, wenn mir der Editor ansonsten so gut gefallen würde. Und bitte keine "gvim 4 life" Antworten :P

Danke Euch
daNny
 
daNny schrieb:
Hallo!

Ich habe ein Problem, bei dem mir bisher leider niemand helfen konnte und welches eigentlich auch in keine Forenkategorie hier hereinpasst. Deswegen versuche ich es einfach mal im Forum meiner verwendeten Distri.

Ich verwende Bluefish um PHP-Scripte zu entwickeln. Der Editor gefällt mir soweit extrem gut, doch leider versagt das Syntax-Highlighting immer wieder. Das fällt mir extrem bei echo-Befehlen auf... Also z.b. folgendes kleines "Programm":

PHP:
<?php
function tauschen($x, $y) {
    $temp = $a;
    $a = $b;
    $b = $temp;
}

echo "Hallo! Ich bin ein String <br />";
?>

Hier gibt es z.b. immerwieder Probleme, sobald es irgendwie etwas mit echo und den " " zu tu hat, sodass das Highlighting des gesamten Codes von bunt auf nur schwarz springt und erst wieder richtig ist, sobald ich F5 (Aktualisieren) drücke.

Ist das ein bekanntes Problem und/oder weiß jemand, wie ich das beheben kann? Ist schon recht nervig andauernd F5 zu drücken. Würde des echt nicht fragen, wenn mir der Editor ansonsten so gut gefallen würde. Und bitte keine "gvim 4 life" Antworten :P

Danke Euch
daNny

zu deinem Syntax-Highlighting fehler kann ich nix sagen auser.. vielleicht mal die neuste version versuchen...

zu deinem code. der ist Falsch. Deine Funktion ja sowieso!

und

PHP:
echo "Hallo! Ich bin ein String <br />";

müsste so ausschauen:

PHP:
echo 'Hallo! Ich bin ein String <br />';
/*
*Denn wenn keine $var das mit ' '
* wenn var drin sind " "
*/
 
@zyon

Ich glaube, daNny hat nicht nach der Richtigkeit des Quellcodes gefragt. Und dass echo "..." syntaktisch falsch ist, nur weil keine Variablen aufzulösen sind, glaube ich nicht. Gut, ich kenn php nicht, deswegen vermute ich dies. Korrigiert mich, wenn ich falsch liege :)

@daNny

Gehe in Bluefish in die "Prefferenzen", dort wählst Du "Syntax Highlighting", dann "filetype: php" und dann ändere für "String (double quoted)" die Werte entsprechend dem Shreenshot. Anschliessend löschst Du den Eintrag darunter "String (double quoted escaped)".

Äquivalent lässt sich "String (single quoted)" ändern. Wenn es dabei Probs gibt, einfach nochmal nachfragen.

Gruss, Xanti
 
@Xanti: Suuuuuuuuuuuuuper... genau so geht es nun :) Prima! Danke dir 1000 mal ;)

@zyon: Habe die Neuste Version. Es geht ja jetzt auch. Und wieso muss ich, wenn ich keine Variable im String haben, einfache Hochkommata verwenden bzw. wieso ist das sonst falsch? Hör ich zum ersten mal.

Nichts desto trotz: Danke euch ;)

Edit: Ups... denkt euch die Patameter heißen $a und $b ;)
 
Zuletzt bearbeitet:
Nicht zu danken. :)

Dass man mit regexps relativ simpel eigene Syntax-Hightlights erstellen kann, macht bluefish zu einem meiner Lieblings-Editoren.

Gruss, Xanti
 
daNny schrieb:
@zyon: Habe die Neuste Version. Es geht ja jetzt auch. Und wieso muss ich, wenn ich keine Variable im String haben, einfache Hochkommata verwenden bzw. wieso ist das sonst falsch? Hör ich zum ersten mal.

ich weiß ja nicht wielange du in php entwickelst. Aber, wenn man "" benutzt sucht der php parser in den "" nach variablen. Das kostet Zeit den er sucht ja nach etwas. Wenn du also nur reinen text hast kannst du es ich ' ' schreiben. Dann weiß der parser da ist nur text ich brauch nix durch suchen. So optimiert man halt seinen code etwas.

den stell dir mal vor du hast nen text von 10000 Wörtner in einer var mit "" dann such php bei parsen den ganze text nach $var durch. und mit ' ' weiß er da nix drin ist.(Und wenn doch was drin ist ist Ihm das egal!)

gruß

zyon
 
Also ist es nur weniger optimal und nicht falsch ;)
 
okay... bin ich sogar noch ein klein wenig schlauer in sachen PHP geworden ;) Danke dafür =)

@Xanti: So ganz ists leider doch noch nicht richtig. Kannst du des en bissle erklären mit den Suchmustern? bzw was ".*?[^\\]" bedeutet?

Ich habe jetzt eine etwas größere Datei geöffnet und da zeigen sich doch noch ein paar Fehler. Was mir auffällt, dass viele Sachen mit grün gehighlightet werden, obwohl sie des eigentlich garnicht sollten. Der Fehler scheint aufzutreten, wenn im Script z.b. sowas steht: $a = "";
Also scheinbar ist was mit zwei aufeinanderfolgende " nicht in ordnung.
 
Hast recht, der Fall "" wird nicht erschlagen. Sorry :)

Nimm als Start-Pattern:

Code:
"(|.*?[^\\])"

Kurze Erklärung: matche (und damit färbe) alles, was mit " umschlossen ist und entweder (mit (..|..) werden Alternativen angeboten)

- leer ist (vor |)
- einen beliebigen String enthält (.*?). Dabei muss man beachten, dass das letzte " nicht escaped ist (also \"). Dies wird mit [^\\]" gekennzeichnet.

Gruss, Xanti
 
Wow... einfach nur klasse ;)

Danke dir nochmals. Nun zeigt er alles nach meinen Vorstellungen an :)
 
Zurück
Oben