Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1877 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  coloration syntaxique avec kedit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

coloration syntaxique avec kedit

n°568552
nicolbolas
Optiquement votre.
Posté le 08-10-2004 à 15:10:34  profilanswer
 

Bonjour,
 
Je cherche a ecrire un shema de coloration syntaxique pour kedit. Enfin j'aimerais deja savoir si c'est possible d'en faire un personalisé, ensuite savoir quelle est la syntaxe de ce type de fichier...
 
Si vous avez des infos là dessus merci de m'en faire profiter ;)
 
@+


---------------
#NetOp. T'as pas 10G ?
mood
Publicité
Posté le 08-10-2004 à 15:10:34  profilanswer
 

n°568627
Mjules
Modérateur
Parle dans le vide
Posté le 08-10-2004 à 16:56:11  profilanswer
 

je vais répondre à côté mais tu devrais utiliser plutôt kwrite, il a déjà un très grand nombre de cschéma de coloration syntaxique dispos
 
Note : kate doit utiliser kwrite, kile (éditeur tex) aussi


Message édité par Mjules le 08-10-2004 à 16:56:37

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°568670
nicolbolas
Optiquement votre.
Posté le 08-10-2004 à 17:49:55  profilanswer
 

en fait j'utilises deja kwrite, mais je les confonds tout le temps. Mon probleme c'est que je ne veux pas un mode de coloration syntaxique existant mais je veux en faire un pour un format de fichier bien specifique...


---------------
#NetOp. T'as pas 10G ?
n°568698
Mjules
Modérateur
Parle dans le vide
Posté le 08-10-2004 à 18:11:22  profilanswer
 

j'ai vu qu'on pouvait télécharger das nouveaux schémas, faudrait voir om il les mets :/


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°569102
nicolbolas
Optiquement votre.
Posté le 09-10-2004 à 16:24:04  profilanswer
 

ben j'ai pas trouvé justement, alors avant de passer 3h a chercher ou c'est et comment ça marche je preferes demander ;)
J'ai rien trouver sur kde.org en tout cas :(


---------------
#NetOp. T'as pas 10G ?
n°569156
djdie
L'heure, c'est l'heure.
Posté le 09-10-2004 à 17:29:03  profilanswer
 

NicolBolas a écrit :

ben j'ai pas trouvé justement, alors avant de passer 3h a chercher ou c'est et comment ça marche je preferes demander ;)
J'ai rien trouver sur kde.org en tout cas :(


Les fichiers de coloration sont dans share/apps/katepart/syntax qui peut varier selon l'installation, chez moi c'est /usr/share/apps/katepart/syntax.
 
Et tu peux en mettre normalement d'autre dans ton .kde : ~/.kde/share/apps/katepart/syntax.
 
Pour en faire un nouveau le + simple est de partir d'un existant assez proche et de le modifier. Le format est assez compréhensible. Il y a des bribes d'explications ici : http://kate.kde.org/doc/hlhowto.php
 
En gros tu définis des contextes et, dans chaque contextes, des règles qui font changer de contextes (genre détection de regexp ou de caractères). Chaque contexte a des propriétés d'affichage. Changement de contexte == empilement du nouveau contexte sur la pile de contexte, et tu as donc des règles qui permettent de dépiler et de retourner dans le contexte précédent (== contexte spécial #pop).
 
Enfin pas facile à expliquer comme cela mais en lisant quelques uns de ces fichiers pour un langage que tu connais tu devrais comprendre comment ca marche :)
 
Edit: ceci concerne katepart qui est utilisé par kwrite (enfin, par défaut) et par kate et d'autres. kedit n'a a ma connaissance pas de support de la coloration syntaxique car cet éditeur est destiné à rester le plus simple possible.


Message édité par djdie le 09-10-2004 à 17:31:40
n°571704
nicolbolas
Optiquement votre.
Posté le 13-10-2004 à 13:14:20  profilanswer
 

bon j'ai pu recuperer toutes les infos dispos mais je n'ai toujours pas compris comment marchent les fichier de coloration syntaxique. Quelqu'un a compris le fonctionnement des contextes et les différentes façons de detecter les mots clefs, les balises et autres?
 
pour info voila grosso modo comment sont construits mes fichiers :
 
NOM_VARIABLE=chaine_de_carractère;
 
à plusieurs reprises
 
DEBUT_BALISE
FIN_BALISE
 
qui doivent etre detectées comme un bloc avec expand/collapse
 
MOTS_CLEFS a representer d'une couleur differente, ils sont contenus entre deux \
 
\ a representer d'une couleur differente quelle que soit sa position
 
toute information est la bienvenue...


---------------
#NetOp. T'as pas 10G ?
n°571971
djdie
L'heure, c'est l'heure.
Posté le 13-10-2004 à 17:26:39  profilanswer
 

Mets voir un exemple de tes fichiers (un extrait avec un peu tout); je comprends surtout pas trop le DEBUT_BALSE FIN_BALISE ? DEBUT_ et FIN_ sont des préfixes obligatoires ou c'était juste pour l'exemple ?
 
J'essaierai de te faire un fichier pour la coloration syntaxique - ca devrait pas être trop dur, j'en ai déjà fait plusieurs.

n°572020
nicolbolas
Optiquement votre.
Posté le 13-10-2004 à 18:27:28  profilanswer
 

DEBUT_ et FIN_ sont des prefixes et le reste de la balise doit garder la meme couleur...
 
voila un exemple de fichier vide :
 

Code :
  1. NOM_SPY=;
  2. INFO_ONLINE=;
  3. CATEGORIE=;
  4. DEBUT_CHEMINS_REGISTRE
  5. FIN_CHEMINS_REGISTRE
  6. DEBUT_FICHIERS_EXEC
  7. FIN_FICHIERS_EXEC
  8. DEBUT_PROCESSUS_A_TUER
  9. FIN_PROCESSUS_A_TUER
  10. DEBUT_DLL_A_DECHARGER
  11. FIN_DLL_A_DECHARGER
  12. DEBUT_FICHIERS_A_EFFACER
  13. FIN_FICHIERS_A_EFFACER
  14. DEBUT_REPERTOIRES_A_EFFACER
  15. FIN_REPERTOIRES_A_EFFACER
  16. DEBUT_CLES_REGISTRE_A_EFFACER
  17. FIN_CLES_REGISTRE_A_EFFACER
  18. NBRE_ELEMENTS=;


 
dans les blancs tu as soit des paths de clefs de registre, de fichiers ou de répertoires, sachant que dans les paths de  fichiers/repertoires il y a des raccorcis (alias des variables systemes quoi) genre \APPDATA\ au lieu de \D&S\$user\application data\ . C'est une liste de mots clefs à faire ressortir (en gras quoi)
 
Merci pour ton aide, meme si tu peux juste me trouver un exemple assez depouillé avec mes differents cas de figures, ça m'aidera beacoup ;)


---------------
#NetOp. T'as pas 10G ?
n°572229
djdie
L'heure, c'est l'heure.
Posté le 13-10-2004 à 23:56:24  profilanswer
 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Test" version="1.00" kateversion="2.3" section="Sources" extensions="*.test" priority="5">
  <highlighting>
    <contexts>
      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
        <RegExpr attribute="Variable" context="VarEq" String="^\w+(?=\s*=)"/>
        <RegExpr attribute="Keyword" context="#pop" String="^FIN_\w+" endRegion="Bloc" />
        <RegExpr attribute="Keyword" context="Normal" String="^DEBUT_\w+" beginRegion="Bloc" />
      </context>
      <context attribute="Symbol" lineEndContext="#pop" name="VarEq" fallthrough="true" fallthroughContext="VarDecl">
        <RegExpr attribute="Symbol" context="#stay" String="\s|="/>
      </context>  
      <context attribute="Value" lineEndContext="#pop#pop" name="VarDecl">
        <RegExpr attribute="Keyword" context="#stay" String="\\[^\\]*\\" />
        <DetectChar attribute="Backslash" context="#stay" char="\" />
        <DetectChar attribute="Symbol" context="#pop#pop" char=";" />
      </context>
    </contexts>
    <itemDatas>
      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
      <itemData name="BackSlash"    defStyleNum="dsFunction"/>
      <itemData name="Value"        defStyleNum="dsString"/>
      <itemData name="Variable"     defStyleNum="dsChar"/>
      <itemData name="Comment"      defStyleNum="dsComment"/>
      <itemData name="Symbol"       defStyleNum="dsNormal"/>
      <itemData name="Alert"        defStyleNum="dsAlert" />
    </itemDatas>
  </highlighting>
</language>


Voici un exemple qui donne un premier résultat. C'est une sorte de machine à états : elle commence dans le premier context avec l'attribut "Normal Text". Ensuite elle regarde si une des règle s'applique. Exemple: détection de la regexpr ^\w+(?=\s*=) (i.e. une chaîne de caractères suivie d'un signe égal, sans capturer le signe égal) et en cas de détection, elle saute dans le nouveau contexte en empilant l'ancien...
 
On est alors dans le contexte VarEq et le processus recommence. Si elle trouve eds espaces ou des =, elle les colorie. Sinon, comme aucune règle ne s'est appliquée, elle part dans le contexte de "fallback".
 
On est alors dans le contexte VarDecl. Ici aussi quelques règles pour colorier les \ et les \blabla\. Et une règle qui capture le ; et remonte de deux étages dans la pile de contexte (=> retour au contexte initial).


Message édité par djdie le 13-10-2004 à 23:58:57
mood
Publicité
Posté le 13-10-2004 à 23:56:24  profilanswer
 

n°572316
nicolbolas
Optiquement votre.
Posté le 14-10-2004 à 10:02:11  profilanswer
 

et ben ça marche a merveille, merci beaucoup :D J'ai plus qu'à rajouter mes listes de keywords et c'est impécable!


---------------
#NetOp. T'as pas 10G ?

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  coloration syntaxique avec kedit

 

Sujets relatifs
[emacs] imprimer avec la coloration syntaxiqueproblème de coloration sous vim
[Anjuta] Coloration syntaxique PerlColoration Syntaxtique Kedit, Emacs.
[emacs-VI] reconnaissance syntaxique en c[MacOS X] éditeur syntaxique ?
Coloration syntaxique avec gvim 
Plus de sujets relatifs à : coloration syntaxique avec kedit


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)