2 votes

Notepad++ - Mise en évidence des balises HTML en php

J'ai un php avec des balises html en écho. notepad++ 6.4.5 met bien en évidence les balises à l'intérieur de php et à l'extérieur de php.

notepad++ 6.5 met en évidence les balises uniquement à l'extérieur de php et ne met pas en évidence le code php.

Comment activer la mise en évidence des balises dans le code php ?

notepad++ 6.4.5 : enter image description hereenter image description here

notepad++ 6.5 :

enter image description hereenter image description here

1voto

ihtus Points 269

Je m'attendais à une solution de la part des développeurs de notepad++, en ramenant la fonctionnalité de mise en évidence du code html dans le code php. Mais cela ne se produit pas... J'ai donc trouvé une solution de contournement temporaire :

1) Ouvrez le fichier php dans notepad++.

2) Définir la langue HTML : aller dans Langue => H => HTML

3) Maintenant, les balises html sont mises en évidence dans le code php.

Si vous fermez et ouvrez à nouveau le fichier php, vous devrez exécuter 1-3 à nouveau.

Pour que cela se fasse automatiquement :

EDITER langs.xml

1) Remplacer

<Language name="html" ext="html htm shtml shtm xhtml hta"

avec

<Language name="html" ext="html htm shtml shtm xhtml hta php"

Cela permettra aux fichiers php d'être analysés comme du langage html.

2) Remplacer

<Language name="php" ext="php php3 phtml"

avec

<Language name="php" ext="php1 php3 phtml"

Cela empêchera les fichiers php d'être analysés en tant que langage php. Si vous ne faites pas l'étape 2 => l'étape 1 n'a aucun effet.

EDITER functionList.xml :

La liste des fonctions sera vide après ces changements. Voici la solution : Il faut modifier functionList.xml

1) Remplacer :

<association langID="6" id="java"/>
<association langID="9" id="xml_node"/>

avec

<association langID="6" id="java"/>
<association langID="8" id="html_function"/>
<association langID="9" id="xml_node"/>

2) juste après la fermeture de la dernière, ajoutez ceci (c'est une copie de la fonction php renommée en fonction html_) :

        <parser id="html_function" displayName="PHP" commentExpr="((/\*.*?\*)/|(//.*?$))">
            <classRange
                mainExpr="^[\s]*(class|abstract[\s]+class|final[\s]+class)[\t ]+[\w]+([\s]*|[\s]*(extends|implements)[\s]+[\w\\]+[\s]*)?\{"
                openSymbole = "\{"
                closeSymbole = "\}"
                displayMode="node">
                <className>
                    <nameExpr expr="(class|abstract[\s]+class|final[\s]+class)[\s]+[\w]+"/>
                    <nameExpr expr="[\s]+[\w]+\Z"/>
                    <nameExpr expr="[\w]+\Z"/>
                </className>
                <function
                    mainExpr="^[\s]*((static|public|protected|private|final)*(\s+(static|public|protected|private|final))+[\s]+)?(function[\s]+)+([\w]+([\s]+[\w]+)?([\s]+|\*[\s]+|[\s]+\*|[\s]+\*[\s]+))?([\w_]+[\s]*::)?(?!(if|while|for|switch))[\w_~]+[\s]*\([^\{]*\{">
                    <functionName>
                        <funcNameExpr expr="(?!(if|while|for|switch))[\w_]+[\s]*\([^\{]*"/>
                        <!-- comment below node if want display method with parmas -->
                        <funcNameExpr expr="(?!(if|while|for|switch))[\w_]+"/>
                    </functionName>
                </function>
            </classRange>
            <function
                mainExpr="^[\s]*function[\s]+\w+\("

                displayMode="$className->$functionName">
                <functionName>
                    <nameExpr expr="(?!(if|while|for))[\w_]+[\s]*\("/>
                    <nameExpr expr="(?!(if|while|for))[\w_]+"/>
                </functionName>
                <className>
                    <nameExpr expr="[\w_]+(?=[\s]*::)"/>
                </className>
            </function>
        </parser>

EDITAR \plugins\APIs\html.xml y \plugins\APIs\php.xml (ceci est nécessaire pour notepad++ version 6.9.1 et plus)

1) Copier le contenu de php.xml entre <AutoComplete>...</AutoComplete> et le coller dans html.xml, avant </AutoComplete>

0voto

Alex W Points 1616

Vous devriez créer vos documents PHP comme des modèles de documents HTML, comme indiqué ci-dessous. Notepad++ ne fait que soutenir les bonnes pratiques de codage en traitant vos documents PHP comme des modèles de documents HTML. echo comme des chaînes PHP et ne les met pas en évidence. Si vous voulez entrer dans le langage HTML, il suffit de mettre une balise ?> pour mettre fin à la coloration syntaxique de PHP et le texte sera mis en évidence en tant que HTML. Utilisez ensuite <?php pour relancer le code PHP, si nécessaire. Vous n'avez pas besoin de echo pour produire du HTML, il suffit de terminer le <?php ... ?> et tapez votre HTML comme vous le feriez normalement.

<!doctype html>
<html>
...
   <div><?php echo "content"; ?></div>
...
</html>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X