Menu

Comment avoir des traits verticaux ds traces

SEGALA
2011-10-11
2012-11-13
  • SEGALA

    SEGALA - 2011-10-11

    Bonjour,

    En C++, lorsqu'on a plusieurs niveaux d'accolades imbriqués, Notepad++ permet de voir immédiatement les accolades correspondantes grâce à un trait vertical. Je voudrais la même chose avec un fichier de traces mais j'ai (IN) au lieu de {  et (OUT) au lieu de }

    Merci bcp.
    Tapiou

     
  • cchris

    cchris - 2011-10-13

    Je ne crois pas que Scintilla permette cela directement.
    Par contre, si tu as un UDL (langage défini par l'utilisateur) où (IN) et (OUT) définissent des blocs, tu peux suivre les blocs sur la marge des locs.

    CChris

     
  • SEGALA

    SEGALA - 2011-10-13

    Je ne sais pas trop ce qu'est un UDL. Je suppose que çà correspond au menu Langage sous NotePad++.
    Peut-être que je peux en créer un qui dit que  (IN) et (OUT) définissent des blocs définissent ?
    Est-ce que tu pourrais m'orienter pour que je puisse débuter la création de cet UDL ?

    Merci (une fois de plus … :-))
    Tapiou.

     
  • cchris

    cchris - 2011-10-14

    UDL = User Defined Language (langage défini par l'utilisateur).
    Tu as cette entrée dans le menu Affichege, et un bouton sur la barre d'outils. Sur le fonctionnement, tu peux regarder http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=User_Defined_Languages

    CChris

     
  • SEGALA

    SEGALA - 2011-10-16

    Merci.
    J'ai regardé mais peut-etre pas assez car je ne comprends pas comment je peux dire avec un UDL que (IN) et (OUT) définissent des blocs. Et je ne comprends pas que tu veux dire par "sur la marge des locs".
    Est-ce que le plugin External Lexers peut-être utile à réaliser mon besoin ?

    Merci.

    Tapiou

     
  • SEGALA

    SEGALA - 2011-10-17

    euh .. j'ai cherché un peu plus et je crois que si je mets dans le cadre d'un UDL, (IN) dans  Définition de bloc ouvrant et (OUT)  dans Définition de bloc fermant, çà pourrait marcher. … mais pour l'instant çà plante NotePad++

     
  • cchris

    cchris - 2011-10-17

    Asure-toi que ( et ) ne sont pas des opérateurs. Sinon, quelle sorte de plantage?

    CChris

     
  • SEGALA

    SEGALA - 2011-10-18

    Merci.
    J'ai rééssayé. En créant un tout nouvel UDL avec juste  (IN) dans Définition de bloc ouvrant et (OUT) dans Définition de bloc fermant. (Comme c'est un tout nouvel UDL, il n'y a aucun opérateur activé).
    Cette fois-çi, çà ne plante pas mais çà ne change absolument rien lorsque j'applique le langage à un fichier plein de (IN) et de (OUT) avec des lignes de ce style :
                    IHMRes::getCoord(IN) | Thu Sep 29
                        Modification de l'emplacement
                    IHMRes::getCoord(OUT) | Thu Sep 29

    peut-être bien parce qu'il n'y a pas simplement que un (IN) ou un (OUT) dans mes lignes ?

    Merci.

    Tapiou.

     
  • SEGALA

    SEGALA - 2011-10-23

    Je ne comprends pas bien : avec (IN° et (OUT)  ?  J'ai fait un copier coller de ces 2 chaînes : rien n'est changé.

    Plus précisément, j'ai des traces de ce style :
                CommApp::getCoord(IN) | Mon Aug 22
                    Modification de l'emplacement | Mon Aug 22
                    CommModEtatArrgt::SupprDevlt(IN) | Mon Aug 22
                        CommEtatArrgt::CommEtatArrgt(IN) | Mon Aug 22
                        CommEtatArrgt::CommEtatArrgt(OUT) | Mon Aug 22
                    CommModEtatArrgt::SupprDevlt(OUT) | Mon Aug 22
                    CommModEtatArrgt::getCoord(IN) | Mon Aug 22
                        CommDefModEtatF::create(IN) | Mon Aug 22
                        CommDefModEtatF::create(OUT) | Mon Aug 22
                            Ajout d'un état | Mon Aug 22
                    CommModEtatArrgt::getCoord(OUT) | Mon Aug 22
                    CommArrgt::CommArrgt(IN) | Mon Aug 22
                        Création | Mon Aug 22
                    CommArrgt::CommArrgt(OUT) | Mon Aug 22
                    CommApp::insertDevlt(IN) | Mon Aug 22
                        Insertion développement | Mon Aug 22
                    CommApp::insertDevlt(OUT) | Mon Aug 22
                CommApp::getCoord(OUT) | Mon Aug 22

    Si je mets un espace devant (IN) et (OUT), c'est pas mal mais idéalement je ne voudrais pas que le trait vertical apparaisse en début de ligne mais relie chaque aggrégat contenant un (IN) et un (OUT) en ignorant  les débuts de ligne du type   

    Est-ce possible ?

    Merci.

    Tapiou

     
  • SEGALA

    SEGALA - 2011-10-29

    Bonjour CChris,

    J'ai vu que tu étais rentré et que tu répondais à plein de questions.

    Ne m'oublie pas … :-)

    Merci.

    Tapiou.

     
  • cchris

    cchris - 2011-10-31

    Salut,
    Eh non, ça ne mache pas… C'est Scintillaa qui trace les traits guides, et ils s'appellent "guides d'indentation" pour la bonne raison que c'est ce que prend en compte Scintilla. Et une indentation se place par définition en début de ligne.
    Je ne vois que deux solutions:
    Demander aau projet Scintilla qu'ils permettent de placer des gyudes entre points arbitraires - mais je ne vois même pas comment faire dans tous les cas.
    Ecrire ton propre colorateur externe et essayer de mettre en oeuvre ce que tu veuxx… N'importe quel language avec lequel tu peux fabriquer une dll convient.

    CChris

     
  • SEGALA

    SEGALA - 2011-11-01

    Salut,

    Et merci.
    Ben tant pis. Je n'ai pas assez de temps pour me lancer dans l'écriture de mon propre colorateur externe. De plus, je voulais quelque chose qui se fasse depuis Notepad++.

    De toute façon, avec ce que tu m'as déjà indiqué, je peux plier et replier les blocs de traces. Et c'est déjà vraiment bien !

    Merci pour toute l'explication.

    Tapiou.

     
  • SEGALA

    SEGALA - 2011-11-09

    Bonjour,

    A tout hasard, je pose la question.
    Je voudrais pouvoir sauvegarder des replis effectués de ligne par exemple dans le cadre d'une session. Mais çà ne semble pas possible.

    Faut-il que je formule l'idée sous idea torrent ?

    Merci.

    Tapiou.