Re: Statistiques

Stéphane Mourey <[email protected]>
Newsgroups gmane.editors.lyx.french
Message-ID <[email protected]>
Le 03/10/2014 16:26, Jean-Marc Lasgouttes a écrit :
> Le 03/10/2014 15:03, Stéphane Mourey a écrit :
>> J'étais en train de jeter un oeil dans la doc "Options avancées",
>> histoire de voir si je voyais quelque chose qui pourrait ressembler à ce
>> que pourrai imaginer être ce que tu appelles un "InsetInfo" dans un de
>> tes messages précédents. Et j'arrive au chapitre 5 "Le Serveur Lyx". Et
>> tout à coup, je me suis demandé s'il ne serait pas plus simple de faire
>> une macro LaTeX qui passe par le shell pour interroger le serveur LyX en
>> utilisant la fonciton LFUN_STATISTICS (trouvés dans l'aide "Fonctions
>> LyX"), plutôt que de faire une modification en C++.
>
> Oui, on pourrait tout à fait créer une telle fonction, qui ne crée pas 
> le dialogue. On pourrait aussi imaginer passer un paramètre à la 
> fonction (comme "statistics words") pour demander de juste retourner 
> le nombre de mots. Ça normalement ce n'est pas très difficile.
>
> JMarc
>
Bonjour,

Voilà, j'ai commencé à jeter un coup d'oeil aux sources, et bien que 
tout cela soit encore bien hermétique pour moi, j'ai réussi à glane 
quelques éléments jusdicieux à l'aide de quelques greps bien utilisés. 
Voici :

  * ce qui m'intéresse se joue dans quatre fichiers "seulement" :
    LyXAction.cpp, FuncCode.h, BufferView.cpp, et Buffer.cpp (y
    aura-t-il lieu d'intervenir sur Buffer.h et BufferView.h ?). Il
    semblerait qu'il n'y ait pas de modifications nécessaires dans
    Buffer.cpp bien que l'essentiel de l'action s'y déroule.
  * je ne comprend pas bien le fonctionnement de LyXAction.cpp, mais
    j'ai l'impression qu'il sert à faire le lien entre la commande reçue
    par le serveur (statistics) et le nom de la fonction en interne
    (LFUN_STATISTICS)
  * j'aurai donc besoin d'y rajouter une ligne de code du style

        { LFUN_STATISTICS_NOVIEW, "statistics-noview", ReadOnly, /Buffer /}

    en ajoutant les commentaires de documentation qui vont bien

  * FuncCode.h semble lister les fonctions LyX en utilisant leur nom
    interne, il faudrait que j'y ajoute une ligne :

        LFUN_STATISTICS_NOVIEW, // brokenclock 20141006

  * dans BufferView.cpp, il faudrait que j'ajouter
    LFUN_STATISTICS_NOVIEW dans la liste des cas de la ligne 1068 à 1089,
  * dans le même, il faut que je m'inspire du bloc "case
    LFUN_STATISTICS" commençant à la ligne 1656 pour créer un autre bloc
    "case LFUN_STATISTICS_NOVIEW",
  * le sens du bloc existant est essentiellement d'appeler le code
    réellement fonctionnel (qui se trouve dans Buffer.cpp), puis de
    mettre en forme le résultat et de l'afficher.
  * dans le bloc à produire, à la limite, que je me contenter de
    récupérer les mêmes informations, mais au lieu de le mettre en forme
    pour un affichage, j'envoie celui qui m'intéresse vers ~/.lyxpipe.out
  * cela fait, je pourrai lancer des commandes du style :

        echo "LYXCMD:bro:statistics-noview:words" >~/.lyxpipe.in //
        nombre de mots
        echo "LYXCMD:bro:statistics-noview:signs-with-spaces"
         >~/.lyxpipe.in // nombre de signes (espaces inclus)
        echo "LYXCMD:bro:statistics-noview:signs-without-spaces"
         >~/.lyxpipe.in // nombre de mots (espaces exclus)

  * et je pourrai alors lire le résultat dans  ~/.lyxpipe.out.

Et maintenant, les questions qui vont avec tout ça :

  * j'ai bon ?
  * comment je reçois les paramètres reçus par lyxserver dans
    BufferView.cpp (dans le bloc "case LFUN_STATISTICS_NOVIEW) ?
  * comment je fais pour écrire proprement dans ~/.lyxpipe.out ?

Merci pour votre aide.

Cordialement,

Stéphane Mourey
-- 
Blog: Impossible Exil <http://impossible-exil.info>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.