• # pas compris l'exemple

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

      > add-dirs D:/dev/calendon/src
      > find-regex ^\s*#\s*if
      > find-text clang
      > exclude-text pop
      > match-contexts
    
       D:\dev\calendon\src\tests\unit\test-utf8.c
       1        #include <calendon/test.h>
       2
       3        #include <calendon/utf8.h>
       4
       5        #include <stdlib.h>
       6        #include <stdio.h>
       7
    -> 8        #if defined(__clang__)
    -> 9            #pragma clang diagnostic push
    -> 10           #pragma clang diagnostic ignored "-Wpointer-sign"
       11       #endif
       12
       13       CN_TEST_SUITE_BEGIN("UTF-8")
       14
       15           CN_TEST_UNIT("Bytes in UTF-8 code point") {
    

    Si quelqu'un a une explication, je prends.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: pas compris l'exemple

      Posté par  . Évalué à 5.

      De ce que je comprends :

      add-dirs D:/dev/calendon/src
      

      Cherche dans le dossier indiqué…

      find-regex ^\s*#\s*if
      

      une ligne contenant « #if » (avec éventuellement des blancs avant/après le « # »), puis…

      find-text clang
      

      dans le « voisinage » (« contexte ») de la ligne précédente, chercher une ligne contenant « clang »…

      exclude-text pop
      

      mais le « voisinage » ne doit pas contenir de ligne contenant « pop ».

      match-contexts
      

      Lancer la recherche pour trouver tous les blocs de texte (tous les « voisinages ») correspondants aux critères précédents, c’est-à-dire contenant « clang » mais pas « pop » à proximité d’un « #if ». La taille d’un « voisinage » étant définie par défaut à 7 lignes.

      En gros, l’idée est plus ou moins la même que

      grep -A 7 '^\s*#\s*if' D:/dev/calendon/src/* | grep clang | grep -v pop
      
    • [^] # Re: pas compris l'exemple

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      En fait, septum, c'est utilisable comme une sorte de shell auquel tu passes tes commandes de recherche.
      Il semble que l'on peut l'utiliser en récupérant les commandes depuis un fichier.

      Pour l'instant, le projet vient d'arriver sur Github, il n'y a pas de doc, il faut lire l'aide en ligne via la commande help :)
      Sinon, y a le code source, c'est de l'Ada donc c'est lisible ;)

      • [^] # Re: pas compris l'exemple

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Je viens de jouer un peu avec et ça permet notamment d'ajouter des filtres, d'en retirer que ce soient des filtres de type regex, textes ou sur extension de fichier.
        Le tout est fait sans quitter l'interpréteur et sans forcément ré-éditer douze fois la ligne de regex que l'on vient de faire.

      • [^] # Re: pas compris l'exemple

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Merci à vous deux. Je crois que ce que je n'ai pas percuté au premier abord, c'est l'aspect « sorte de shell » et l'articulation des différentes options de recherche (donc on lance une session dans laquelle tout ça est cumulé, comme dans un environnement Emacs)

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.