GBEPad : Les surligneurs syntaxiques [ Retour menu général ]


Les surligneurs syntaxiques


Depuis la version 5.0 de GBEPad, les surligneurs syntaxiques ont été externalisés de l'exécutable GBEPad.
Cela vous permet de les modifier à votre guise et de rajouter les surligneurs que vous souhaitez.

GBEPad détermine automatiquement le surligneur syntaxique à appliquer lorsque vous ouvrez ou enregistrez un fichier. Cette détermination est faite en fonction de l'extension du fichier.

Pour vous permettre de modifier et de créer vos propres surligneurs syntaxiques pour GBEPad quelques règles doivent être respectées :
  • les surligneurs syntaxiques sont représentés par des fichiers textes dont l'extension est .sur.
  • ces fichiers .sur doivent être stockés dans le sous répertoire surligneurs du répertoire où est installé GBEPad.
  • le fichier .sur est sélectionné automatiquement par GBEPad en fonction de l'extension du fichier ouvert sous GBEPad.
  • le fichier .sur contient également les informations concernant le replis de code.


Principes de bases utilisés par les surligneurs syntaxiques


Les fichiers .sur sont des fichiers XML dont la structure suivante doit être respectée.
De ce fait, il comporte une zone de déclaration, une zone de configuration du surligneur syntaxique, une zone de configuration du replis de code et en fin une zone de conclusion du fichier.
  • La zone de déclaration doit toujours comporter les 3 lignes suivantes en gras:
    <?xml version="1.0" encoding="windows-1251"?>
    <SynUniHighlighter Version="2.0">

    Saisir ici les informations relatives à votre surligneur
    </SynUniHighlighter>


  • La zone de configuration du surligneur syntaxique est délimitée par les tags <SyntaxColoring> et </SyntaxColoring>. Elle comporte plusieurs parties :
    • La zone Info contient les informations sur le surligneur : son nom, les extensions de fichier qui utiliseront cet analyseur syntaxique, la version du surligneur, sa révision, un éventuel exemple (c'est le squelette qui sera appeler par la fonction "Générer squelette") et un commentaire historique.
      L'information la plus importante à renseigner est Extensions : cela correspond à la liste des extensions de fichier qui utiliseront cet analyseur syntaxique. Saisissez les extensions en majuscules, sans le "." et avec un espace entre chaque extension.

      Si l'information Extensions a pour valeur "DEFAUT", alors ce surligneur sera celui utilisé par défaut si aucun surligneur ne correspond à l'extension de fichier ouvert sous GBEPad.

      L'information Sample n'est pas obligatoirement renseignée mais si elle l'est, c'est son contenu qui sera généré dans le fichier lors de l'appel de la fonction "Générer squelette" du menu contextuel de l'éditeur. Vous pouvez effectuer des retours à la ligne dans cette valeur mais vous devez transformer les caractères spéciaux avec leur codage HTML (les " sont à remplacer par & quot; par exemple).


    • La zone MainRules contient les différents types de mot (commentaire, chaines de caractère, mots clé etc...) qui seront à coloriser.
      Chaque type de mot sera défini dans la zone SubRules par les tags <Range> et </Range>.

      Vous pouvez dans la zone SubRules des listes de mots clés (tags <KeyList>) et des listes de symboles (tags <Set>) pour leurs associer des couleurs.

      la zone SubRules peut contenir autant de sous parties que nécessaires.


    • Exemple d'un surligneur syntaxique activé sur les fichiers .txt qui met en bleu vert les chaines de caractères comprises entre " ", met en bleu 3 mots clés (motcle1, motcle2 et motcle3) et affiche les chiffres en rouge.

      <?xml version="1.0" encoding="windows-1251"?>
      <SynUniHighlighter Version="2.0">
        <SyntaxColoring>
          <Info> <General Name="Exemple" Extensions="TXT" Version="1" Revision="0" Sample="" History=""/> </Info>
          <Schemes/>
          <Editor/>
          <MainRules Name="SyntaxColoring" Style="Root">
            <Attributes Foreground="clBlack" Background="clNone" ParentBackground="True"/>
            <Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
            <SubRules>
              <Range Name="String" Style="String">
                <Attributes Foreground="clTeal" Background="clNone" ParentBackground="True" Style=""/>
                <Delimiters Value="!"#$%&'()*+,-./:;<=>?@[\]^`{|}~"/>
                <OpenToken StartLine="" PartOfTerm="Right"/>
                <CloseToken StartLine="" PartOfTerm="Right"/>
                <Properties/>
                <MultiTokens>
                <Tokens Open=""" Close="""/>
                </MultiTokens>
              </Range>
              <KeyList Name="TXT Terms" Enabled="True" Style="" Words="MOTCLE1
              MOTCLE2
              MOTCLE3
              ">
                <Attributes Foreground="clBlue" Background="clNone" ParentForeground="False" ParentBackground="True" Style=""/>
              </KeyList>
              <Set Name="Numbers" Enabled="True" Style="" Symbols="0123456789" Quantity="0">
                <Attributes Foreground="clRed" Background="clNone" ParentBackground="True"/>
              </Set>
            </SubRules>
          </MainRules>
        </SyntaxColoring>
        <CodeFolding/>
      </SynUniHighlighter>


      Vous pouvez noter dans cet exemple le tag <CodeFolding/> (avec le / à la fin) signifiant qu'il n'y a pas de replis de code pour cet analyseur.

      Pour voir la configuration du replis de code, cliquez ici.

      Vous pouvez également ajouter le bloc suivant juste avant la ligne </SynUniHighlighter> :
      <CustomData>
        <Entry Name="CompileError" Value="xxxxxxxx"/>
      </CustomData>


      Ce bloc permettra d'ajouter de nouvelles fonctionalités à GBEPad propres à chaque langage. Actuellement, seule la rubrique "CompileError" est autorisée dans ce bloc. Elle permet de définir à l'aide d'une expression régulière (xxxxxxxx dans l'exemple ci dessus), la manière dont GBEPad récupère le n° de ligne engendrant une erreur de compilation.

      Ainsi, si vous avez configuré un menu utilisateur dans GBEPad pointant vers un compilateur, une fois la compilation effectuée, GBEPad affichera le résultat retourné par le compilateur dans la fenêtre "Messages applications externes". Un double clique sur l'erreur retournée par le compilateur fera pointer la fenêtre d'édition sur la ligne concernée.
      Exemple pour le compilateur JAVA :
      <CustomData>
        <Entry Name="CompileError" Value=":\d*:"/>
      </CustomData>


Copyright © 2004-2009 par GBESoft, Tous droits réservés.