Re: Statistiques

Stéphane Mourey <[email protected]>
Newsgroups gmane.editors.lyx.french
Message-ID <[email protected]>
Re-bonjour,

Je réponds vite, car je n'ai plus beaucoup de temps là, tout de suite, 
mais j'ai de nouveaux éléments :
Le 10/10/2014 17:25, Jean-Marc Lasgouttes a écrit :
> Je dirais "words|signs|signs-space" comme possibilité d'arguments. Il 
> vaut mieux être bref.
J'ai corrigé en :

      * \li Syntax: server-get-statistics <words|signs|signs-space>
      * \li Params: <words|signs|signs-space> indicate the statistic to
    get, none for all space separated

> On peut supposer, comme dans la commande wc, que sans argument on 
> renvoie les 3 valeurs séparées par un espace. Dans ce cas, le Argument 
> n'est pas nécessaire.
OK.
> D'autre part, dans la classe Buffer, on n'a pas de curseur (c'est un 
> buffer qui n'est pas nécessairement en train d'être édité). Par 
> exemple, quand on fait un export depuis la ligne de commande, il n'y a 
> pas de curseur.
le "cur" dans le code, c'est le curseur ? Il se comporte comment en 
ligne de commande ?
> Tu as raison qu'il serait utile d'avoir un curseur, ce qui veut dire 
> qu'il faudrait déplacer le code dans Text3.cpp (== un morceau de texte 
> en train d'être édité). Dans ce cas, tu fais comme les autres exemples 
> de serveur.
Je l'ai fait, déplaçant mes "case" de Buffer vers les fonctions 
équivalentes Test3 (et en supprimant les this). Mais les fonction 
"updateStatistics", "wordCount" et "charCount" ne sont-elle pas des 
méthodes de Buffer ? Du coup, j'ai essayé de le récupérer le buffer dans 
une variable, pour appeler les méthodes...

Voilà ce que cela donne :

         case LFUN_SERVER_GET_STATISTICS:
             DocIterator from, to;
             if (cur.selection()) {
                 from = cur.selectionBegin();
                 to = cur.selectionEnd();
             } else {
                 from = doc_iterator_begin(&buffer_);
                 to = doc_iterator_end(&buffer_);
             }

             Buffer buffer = cur.buffer();
             buffer.updateStatistics(from, to);
             switch (cmd.getArg(0)) {
                 case "words":
                     cur.message(buffer.wordCount());
                     break;
                 case "signs":
                     cur.message(buffer.charCount(false));
                     break;
                 case "signs-space":
                     cur.message(buffer.charCount(true));
                     break;
                 default:
                     cur.message(buffer.wordCount() +
    buffer.charCount(false) + buffer.charCount(true));
             }
             break;

> Oui, tu as tous les morceaux, et n'hésite pas lancer la compilation, 
> cela peut faire faire des découvertes :)

./autogen.sh > ok
./configure >configure: error: cannot compile a simple Qt executable. 
Check you have the right $QTDIR.

  Hum!

Mes filles viennent de rentrer, c'est fini pour aujourd'hui, il faut que 
je "babysite" :)

Merci et bon week-end.

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.