IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Liste des fonctions dans Notepad++


Sujet :

Autres IDE Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 171
    Billets dans le blog
    9
    Par défaut Liste des fonctions dans Notepad++
    Bonjour !

    Je relaie une question qui m'a été posée par message privé. Quelqu'un aurait-il une idée de ce qu'il faudrait faire pour que la liste des fonctions... fonctionne dans Notepad++, pour un fichier source en Pascal ? Pour le moment la liste est toujours vide, alors qu'avec du C (par exemple), ça marche très bien.
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 171
    Billets dans le blog
    9

  3. #3
    Membre chevronné

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Par défaut
    (Aparté: le RegExp est toujours aussi imbuvable ...).

    Juste pour le fun et comme "proof of concept", voici des modifications pour un début de reconnaissance des fonctions et procédures Pascal dans Notepad++.


    Ajouter la ligne suivante vers le début du fichier "functionList.xml" dans "<associationMap>...</associationMap>", pour ajouter la reconnaissance du pascal:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    			<association id=   "pascal_function"      langID="11"                          />

    Et voici le corps, à ajouter dans le même fichier dans "<parsers>...</parsers>":
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    			<!-- ========================================= [ Pascal ] -->
     
    			<parser
    				displayName="Pascal"
    				id         ="pascal_function"
    			>
    				<function
    					mainExpr="^\s*(procedure|function)\s+[A-Za-z_][\w.]*\s*(\(|:|;)"
    				>
    					<functionName>
    						<nameExpr expr="[A-Za-z_][\w.]*\s*(\(|:|;)" />
    						<nameExpr expr="[A-Za-z_][\w.]*" />
    					</functionName>
    				</function>
    			</parser>
     
    			<!-- ================================================================= -->


    Je précise que c'est loin d'être fonctionnel. J'ai notamment shunté plusieurs choses comme les commentaires, les paramètres, les classes, les constructor/destructor etc ... De plus, je ne vois pas trop comment faire la distinction au niveau des sections "interface" et "implémentation" du fichier source concerné. Mais encore une fois, c'est juste pour prouver que c'est, au moins théoriquement, faisable ...


    PS. Comme indiqué dans la documentation, faire les modifs dans le "bon" fichier "functionList.xml": celui dans dans %APPDATA%\roaming\notepad++\ (pour Windows 7 par exemple).
    PS2. Corps modifié (simplification).

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 171
    Billets dans le blog
    9
    Par défaut
    @FChrisF

    Cela semble fonctionner. Bravo ! et merci.

  5. #5
    Membre chevronné

    Homme Profil pro
    Autre
    Inscrit en
    Novembre 2015
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Novembre 2015
    Messages : 145
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Cela semble fonctionner. Bravo ! et merci.
    Je vous en prie. Ceci étant, encore une fois c'est plus une ébauche qu'autre chose.


    Voici une version, un peu plus complète et également simplifiée (i.e. acceptant certains identifiants non acceptés par le compilateur), avec l'ajout des constructor/destructor et la prise en compte des classes (affichage sous forme de nœuds - cf. capture).

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    			<!-- ========================================= [ Pascal ] -->
     
    			<parser
    				displayName="Pascal"
    				id         ="pascal_function"
    			>
    				<function
    					mainExpr="^\s*(procedure|function|constructor|destructor)\s+\w+(|\.\w+)\s*(\(|:|;)"
    				>
    					<functionName>
    						<nameExpr expr="\w+\s*(\(|:|;)" />
    						<nameExpr expr="\w+" />
    					</functionName>
    					<className>
    						<nameExpr expr="\w+\.\w+\s*(\(|:|;)" />
    						<nameExpr expr="\w+" />
    					</className>
    				</function>
    			</parser>
     
    			<!-- ================================================================= -->



    Nom : CaptureNotepad++PascalFunc.png
Affichages : 2290
Taille : 17,3 Ko

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 171
    Billets dans le blog
    9
    Par défaut
    Merci pour la nouvelle version. Je vais de ce pas l'essayer.

    Citation Envoyé par FChrisF Voir le message
    Ceci étant, encore une fois c'est plus une ébauche qu'autre chose.
    Oui, j'ai bien noté cela.

  7. #7
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 2
    Par défaut
    @FChrisF

    Bravo, votre solution fonctionne mieux que la solution elaboree au GitHub. Plus elegante, beaucoup plus petite.....BRAVO !!!

    Pouvez vous perfectionner en incluant "IMPLEMENTATION" dans la liste, entre les 2 sets des noms des functions? Ils apparaisen 2 fois et je pense que "IMPLEMENTATION" doit etre aussi present dans la liste.

    Aussi, si on a des functions/procedures a l'interieur d'une function/procedure, la liste doit presenter les noms arborescent (comme tControl le fait dans votre capture d'ecran).
    J'ai vu que les petits symboles a l'avant de tControl est different que celle des functions. Ou peut on changer ces symboles?

    Pouvez vous, si'l i a pas trop de boulot pour vous, ajouter le parser?

    Je pense aussi que les devs de N++ doivent inclure cet parser dans leur "functionList.xml". J'ai essaie de les contacter par e-mail mais pas de reponse.

    Encore une fois...MERCI BEAUCOUP.
    Bon travail.

Discussions similaires

  1. [Python 3.X] Mettre des fonctions dans une liste sans qu'elles soient lancées
    Par darkslights dans le forum Général Python
    Réponses: 3
    Dernier message: 07/05/2018, 12h41
  2. Stocker des fonctions dans une liste ou un dico
    Par Mistervanhalen dans le forum Général Python
    Réponses: 2
    Dernier message: 21/01/2009, 13h33
  3. Enchainer des fonctions dans un onclick d'un bouton
    Par jpg dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2004, 16h51
  4. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18
  5. Liste des fonctions
    Par Mookie dans le forum C
    Réponses: 2
    Dernier message: 22/09/2003, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo