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

Modules Perl Discussion :

Module Perltidy et configuration


Sujet :

Modules Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut Module Perltidy et configuration
    Bonjour à tous,

    J'aimerais savoir ce que vous pensez du module PerlTidy. Vous a-t'il été utile? J'ai téléchargé le module Acme-Perltidy et à première vue cela parait très bien. Je me dis que dans un premier temps, on peut l'utiliser comme modèle pour ensuite arriver à directement écrire correctement son code. Par exemple, laisser un espace entre les mots clés (for, while) et la parenthèse ouvrante mais ne pas en laisser entre les appels de sous-routines et la parenthèse ouvrante. Ce sont des conseils donnés dans le livre 'Perl Best Practices' (O'Reilly).


    J'aimerais également savoir comment configurer ce module.

    Dans la documentation de Sourceforge, ils parlent d'un fichier de configuration .perltidyrc qui contiendrait les paramètres à utiliser.
    http://perltidy.sourceforge.net/tutorial.html
    Configuration Files

    While style preferences vary, most people would agree that it is important to maintain a uniform style within a script, and this is a major benefit provided by perltidy. Once you have decided on which, if any, special options you prefer, you may want to avoid having to enter them each time you run it. You can do this by creating a special file named .perltidyrc in either your home directory, your current directory, or certain system-dependent locations. (Note the leading ``.'' in the file name).
    Je n'ai jamais créé de tels fichiers ... et je suis un peu perdue.



    On y parle également de la possibilité d'utiliser Perltidy comme un filtre de l'éditeur de texte. J'utilise SCITE et je me demandais quelle était la meilleure façon de procéder.
    Using Perltidy as a Filter on Selected Text from an Editor

    Most programmer's editors allow a selected group of lines to be passed through an external filter. Perltidy has been designed to work well as a filter, and it is well worthwhile learning the appropriate commands to do this with your editor. This means that you can enter a few keystrokes and watch a block of text get reformatted.


    Merci pour vos conseils.
    -- Jasmine --

  2. #2
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    Bonjour,

    as-tu jeté un oeil à Tidyview (permet de visualiser l'effet des configs perltidy) ?

  3. #3
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Ah non, je n'avais pas regardé Tidyview ... il y a tellement de choix que je m'y perds et que je ne sais plus quoi utiliser. Merci pour l'information.
    -- Jasmine --

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je peux te dire que rajouter Perltidy à SciTE est facile (une ligne dans la config SciTE pour Perl), parce que je l'ai déjà fait, mais je n'ai pas le fichier sous la main tout de suite.

    --
    Jedaï

  5. #5
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Je peux te dire que rajouter Perltidy à SciTE est facile (une ligne dans la config SciTE pour Perl).
    Faut-il l'écrire en Lua?
    -- Jasmine --

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Jasmine80 Voir le message
    Faut-il l'écrire en Lua?
    Non, non, c'est juste 2 lignes à ajouter dans le fichier perl.properties :
    Code Config : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    command.name.4.$(file.patterns.perl)=Tidy Code
    command.4.$(file.patterns.perl)=perltidy -b "$(FileNameExt)"

    Et ensuite tu auras accès à cette commande dans tous les fichiers Perl, par Alt+4 ou le menu.

    --
    Jedaï

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci beaucoup pour ton aide, j'avais trouvé des explications équivalentes dans la FAQ de SCITE http://www.scintilla.org/SciTEFAQ.html#ToolsMenu ... mais je ne savais pas trop que changer. Il est vraiment bien cet éditeur, on peut y ajouter plein de choses. Quel langage est-ce? Du bash non? Est-ce parfaitement compatible entre linux et windows?

    En fait, j'ai installé Acme-PerlTidy qui doit avoir installé Perltidy automatiquement non? Perltidy hérite-t'il bien de la classe supérieure Acme?

    Pour FileNameExt ... je dois donc indiquer le chemin vers perltidy.pm ?
    command.number.filepattern
    (e.g.: command.1.$(file.patterns.web)=tidy -i -wrap 0 -m $(FilePath) )
    This is the actual command that SciTE executes. You should provide the appropriate paths, options and parameters as you would from a command line.
    J'ai trouvé le chemin vers la documentation C:\Perl\html\bin\perltidy.html mais je ne trouve pas le module, je ne le trouve ni dans C:\Perl\lib ni dans C:\Perl\bin. Où dois-je le chercher?


    Merci beaucoup pour tes conseils,
    -- Jasmine --

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ce n'est pas Bash, c'est juste leur petit langage de configuration.

    $(FileNameExt) est une variable qui contient le nom de ton fichier, si tout est bien installé, tu as juste à copier-coller ce que j'ai écrit et ça marchera, c'est tout !

    Acme-Perltidy est un module blague (comme tous les modules dans Acme), si tu l'as installé avec ppm, il doit avoir installé Perltidy comme une dépendance, ce qui devrait signifier que tu as un exécutable perltidy quelque part, que se passe-t-il si tu tapes "perltidy" en ligne de commande ?

    --
    Jedaï

  9. #9
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par Jedai Voir le message
    $(FileNameExt) est une variable qui contient le nom de ton fichier, si tout est bien installé, tu as juste à copier-coller ce que j'ai écrit et ça marchera, c'est tout !
    Mais justement, j'ai l'erreur
    >perltidy -b "list_compare.pl"
    >Le fichier spécifié est introuvable.
    Pourtant, j'exécute 'PerlTidy' dans le script list_compare.pl via le menu de Scite.



    Citation Envoyé par Jedai Voir le message
    Acme-Perltidy est un module blague (comme tous les modules dans Acme), si tu l'as installé avec ppm, il doit avoir installé Perltidy comme une dépendance, ce qui devrait signifier que tu as un exécutable perltidy quelque part
    Oui, j'ai utilisé ppm.



    Citation Envoyé par Jedai Voir le message
    que se passe-t-il si tu tapes "perltidy" en ligne de commande ?
    Juste perltidy dans l'invite de commande? C:\Perl>perltidy ? Ce n'est pas reconnu en tant que commande interne


    Merci,
    -- Jasmine --

  10. #10
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'ai fait une recherche de mots clés sur le disque et voici ce que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\Perl\site\bin\perltidy		98 Ko	fichier
    C:\Perl\site\bin\perltidy		101 Ko	fichier de commande MS-DOS
    C:\Perl\site\lib\Acme\PerlTidy		1 Ko	Fichier PM
    C:\Perl\site\lib\auto\Acme\PerlTidy	1 Ko	Fichier PACKLIST
    -- Jasmine --

  11. #11
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    A First Test
    Assume that the name of your script is testfile.pl. You can reformat it with the default options to use the style recommended in the perlstyle man pages with the command:

    perltidy testfile.pl
    J'ai donc essayé
    C:\Perl>perltidy P:\Perl\scripts2\Utiles\list_compare.pl
    et j'ai exactement la même erreur
    'perltidy' n'est pas reconnu en tant que commande interne ou externe, un programme éxécutable ou un fichier de commande
    -- Jasmine --

  12. #12
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Rajoute "C:\Perl\site\bin" à ton PATH et réessaie avec ma commande.

    --
    Jedaï

  13. #13
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    command.name.4.$(file.patterns.perl)=Tidy Code
    command.4.$(file.patterns.perl)=perltidy -b "$(C:\Perl\site\bin\FileNameExt)"
    Toujours le même genre d'erreur
    >perltidy -b ""
    >Le fichier spécifié est introuvable.
    Avant c'était
    >perltidy -b "list_compare.pl"
    >Le fichier spécifié est introuvable.
    Cela voudrait donc dire que c'est le chemin vers le fichier.pl sur lequel exécuter perltidy qu'il faut mettre.

    Perl et SCITE sont installés sur le disque dur C (C:\Perl\programme.pl)
    Les programmes.pl sont sur le disque virtuel (du serveur) P
    J'ai essayé d'utiliser PerlTidy sur un programme copié sur le disque C, en mettant ce que tu avais mis dans ton premier message (simplement "$(FileNameExt)") et cela a fonctionné.
    Mais cela ne m'arrange pas vu que mes programmes sont sur P, j'ai donc changé le chemin en $(P:\Perl\scripts2\PCR_Bact_Hybridation\Window_scan\FileNameExt) afin d'éxécuter PerlTiy sur un programme de ce répertoire et cela a également fonctionné. L'ennui est que mes programmes ne sont pas dans un répertoire unique mais dans des sous-répertoires différents. J'ai donc essayé simplement avec $(P:\FileNameExt) et ça fonctionne, apparemment le chemin complet vers le script n'est pas nécessaire.


    Merci pour ton aide et ta patience.
    -- Jasmine --

  14. #14
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je viens de réessayer sur un autre script (toujours sur P) et cela ne fonctionne plus ... probablement à cause du fait que le chemin $(P:\FileNameExt) est incomplet ... je ne comprends pas pourquoi cela a fonctionné lors de mon premier essai, je devais avoir mal enregistré les propriétés.

    Comment puis-je faire afin de spécifier que mes scripts peuvent se trouver dans différents répertoires?


    Merci,
    -- Jasmine --

  15. #15
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    CONSOLE

    Via la console, j'arrive à exécuter sans problème perltidy quelque soit la localisation du script.

    C:\Perl\site\bin>perltidy -b C:\Perl\TemperatureFusion.pl
    FONCTIONNE

    C:\Perl\site\bin>perltidy -b P:\Perl\script2\PCR_Bact\Hybridation\TemperatureFusion.pl
    FONCTIONNE


    SCITE


    command.name.1.$(file.patterns.perl)=Check Syntax
    command.1.$(file.patterns.perl)=perl -cw $(FileNameExt)
    >perl -cw TemperatureFusion.pl
    TemperatureFusion.pl syntax OK
    >Exit code: 0
    FONCTIONNE

    command.name.2.$(file.patterns.perl)=Code Profiler
    command.2.$(file.patterns.perl)=perl -dProf $(FileNameExt)
    >perl -dProf TemperatureFusion.pl
    49.984 Taille : 18
    >Exit code: 0
    FONCTIONNE

    command.name.3.$(file.patterns.perl)=Profiler Parser
    command.3.$(file.patterns.perl)=C:\Perl\bin\dprofpp.bat $(FileDir)\tmon.out
    >C:\Perl\bin\dprofpp.bat C:\Perl\tmon.out
    Total Elapsed Time = 0.015981 Seconds
    User+System Time = 0.015981 Seconds
    Exclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c Name
    0.00 - -0.000 1 - - main::BEGIN
    0.00 - -0.000 3 - - main::Tm
    >Exit code: 0
    FONCTIONNE






    command.name.4.$(file.patterns.perl)=Tidy Code
    command.4.$(file.patterns.perl)=perltidy -b $(FileNameExt)
    >perltidy -b TemperatureFusion.pl
    >Le fichier spécifié est introuvable.
    NE FONCTIONNE PAS

    La syntaxe est pourtant la même que pour les autres commandes.
    -- Jasmine --

  16. #16
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Vérifie les fins de lignes dans la config, parfois il y a des problèmes avec ça.

    --
    Jedaï

  17. #17
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Toutes les fins de lignes sont bien [CR][LF].
    Ce week-end, je vais essayer de refaire la même chose chez moi mais cette fois sur linux. Merci pour ton aide.
    -- Jasmine --

  18. #18
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    command.name.4.$(file.patterns.perl)=Tidy Code
    command.4.$(file.patterns.perl)=perltidy -b $(FileNameExt)
    Et bien ce code fonctionne parfaitement sous Linux. Le problème vient donc soit de Windows, soit du fait que mes scripts soient sur le serveur et Scite et Perl sur mon disque dur.

    J'avais regardé dans le manuel scitedoc.html, on y parle d'options pour windows mais on ne dit rien de particulier à cet OS au sujet de ces lignes là. De plus, sous Windows, les commandes 1, 2 et 3 par défaut dans scite fonctionnent et la 4 a exactement la même syntaxe ... c'est vraiment étrange.
    -- Jasmine --

  19. #19
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je viens de réessayer sur mon PC (à la maison pas celui du travail) qui a Windows et j'ai la même erreur. Il doit y avoir un paramètre en plus à régler pour Windows.
    -- Jasmine --

  20. #20
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Salut Jasmine,

    Je sais pas si ça peut t'aider, mais moi j'ai un script à part qui utilise PerlTidy et reformate mes scripts à la demande.

    Il n'est donc pas intégré à mon éditeur de texte pspad que j'utilise.
    si tu le veux, dis le moi!!
    D'ailleurs, je pourrais même l'ajouter à notre nouvelle page source.

Discussions similaires

  1. Configurer le module Suhosin
    Par Invité dans le forum Apache
    Réponses: 2
    Dernier message: 27/11/2007, 17h11
  2. [Configuration] Modules php en mode CLI
    Par iron dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 10/08/2007, 19h43
  3. Configuration d'un module
    Par amphiaraos dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 25/07/2007, 12h29
  4. [Administration] [modules] configuration d'un alias
    Par djaize dans le forum CVS
    Réponses: 1
    Dernier message: 19/04/2007, 15h28
  5. Problème de configuration du module PHP
    Par RV80 dans le forum Apache
    Réponses: 1
    Dernier message: 26/07/2006, 10h29

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