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>