Re: Statistiques

2014-10-15 Par sujet Jean-Marc Lasgouttes

Bonjour,

On y est presque, sauf the j'ai du mal à comprendre la description 
ci-dessous:


Le 14/10/2014 22:04, Stéphane Mourey a écrit :

+ * \li Params: TYPE: words|chars|chars-space The needed count. If not
+   specified, the words, chars and chars-space counts.
+   space separated.


Est-ce qu'il y a vraiment un point à la fin de la seconde ligne? Dans ce 
cas, je ne comprends pas la troisième.


JMarc


Re: Statistiques

2014-10-15 Par sujet Jean-Marc Lasgouttes

Bonjour,

On y est presque, sauf the j'ai du mal à comprendre la description 
ci-dessous:


Le 14/10/2014 22:04, Stéphane Mourey a écrit :

+ * \li Params: :  The needed count. If not
+   specified, the words, chars and chars-space counts.
+   space separated.


Est-ce qu'il y a vraiment un point à la fin de la seconde ligne? Dans ce 
cas, je ne comprends pas la troisième.


JMarc


Re: Statistiques

2014-10-14 Par sujet Jean-Pierre Chrétien

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :



Moyennant ces petits changements, je pense que ce patch est prêt.


Bravo à tous !
Ces échanges de mail donnent envie de se mettre au codage...

--
Jean-Pierre




Re: Statistiques

2014-10-14 Par sujet Jean-Marc Lasgouttes

Le 14/10/2014 16:34, Jean-Pierre Chrétien a écrit :

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :



Moyennant ces petits changements, je pense que ce patch est prêt.


Bravo à tous !
Ces échanges de mail donnent envie de se mettre au codage...


C'est le but :)

JMarc



Re: Statistiques

2014-10-14 Par sujet Stéphane Mourey

Bonsoir,

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :

Moyennant ces petits changements, je pense que ce patch est prêt.
Voilà, j'ai corrigé tout ça. J'espère que la documentation dans 
LyXAction.cpp te conviendra, c'est le seul point sur lequel j'avais 
encore un doute


Cordialement,

Stéphane Mourey

--
Blog: Impossible Exil http://impossible-exil.info
From 17b6ebf2820746bad71a3246d90be5b33a0fd527 Mon Sep 17 00:00:00 2001
From: brokenclock stephane.mou...@impossible-exil.info
Date: Tue, 14 Oct 2014 21:55:04 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command

This function can be used with the LyX server to obtain the word, characters or characters+spaces count in the current document or selection.
---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 17 +
 src/Text3.cpp | 28 
 3 files changed, 46 insertions(+)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index 175f68e..2df6ec9 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -3526,6 +3526,23 @@ void LyXAction::init()
  */
 		{ LFUN_STATISTICS, statistics, ReadOnly, System },
 /*!
+ * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
+ * \li Action: Count the statistics (number of words and characters)
+   in the document or in the selection if any.
+ * \li Notion: Note that this function gives the number of words/chars written,
+   not the number of characters which will be typeset.
+ * \li Syntax: server-get-statistics [TYPE]
+ * \li Params: TYPE: words|chars|chars-space The needed count. If not
+   specified, the words, chars and chars-space counts.
+   space separated.
+   words: count words
+   chars: count characters
+   chars-space: count characters and spaces
+ * \li Origin: brokenclock, Oct 10 2014
+ * \endvar
+ */
+		{ LFUN_SERVER_GET_STATISTICS, server-get-statistics, ReadOnly | Argument, System },
+/*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
  * \li Action: Show the inline completion at the cursor position.
  * \li Syntax: completion-inline
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 79711f4..6bf3bc6 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -2391,6 +2391,33 @@ void Text::dispatch(Cursor  cur, FuncRequest  cmd)
 		needsUpdate = true;
 		break;
 
+	case LFUN_SERVER_GET_STATISTICS:
+		{
+			DocIterator from, to;
+			if (cur.selection()) {
+from = cur.selectionBegin();
+to = cur.selectionEnd();
+			} else {
+from = doc_iterator_begin(cur.buffer());
+to = doc_iterator_end(cur.buffer());
+			}
+
+			cur.buffer()-updateStatistics(from, to);
+			string const arg0 = cmd.getArg(0);
+			if (arg0 == words) {
+cur.message(convertdocstring(cur.buffer()-wordCount()));
+			} else if (arg0 == chars) {
+cur.message(convertdocstring(cur.buffer()-charCount(false)));
+			} else if (arg0 == chars-space) {
+cur.message(convertdocstring(cur.buffer()-charCount(true)));
+			} else {
+cur.message(convertdocstring(cur.buffer()-wordCount()) +  
++ convertdocstring(cur.buffer()-charCount(false)) +  
++ convertdocstring(cur.buffer()-charCount(true)));
+			}
+		}
+		break;
+
 	default:
 		LYXERR(Debug::ACTION, Command   cmd   not DISPATCHED by Text);
 		cur.undispatched();
@@ -3109,6 +3136,7 @@ bool Text::getStatus(Cursor  cur, FuncRequest const  cmd,
 	case LFUN_UNICODE_INSERT:
 	case LFUN_THESAURUS_ENTRY:
 	case LFUN_ESCAPE:
+	case LFUN_SERVER_GET_STATISTICS:
 		// these are handled in our dispatch()
 		enable = true;
 		break;
-- 
1.9.1



Re: Statistiques

2014-10-14 Par sujet Jean-Pierre Chrétien

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :



Moyennant ces petits changements, je pense que ce patch est prêt.


Bravo à tous !
Ces échanges de mail donnent envie de se mettre au codage...

--
Jean-Pierre




Re: Statistiques

2014-10-14 Par sujet Jean-Marc Lasgouttes

Le 14/10/2014 16:34, Jean-Pierre Chrétien a écrit :

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :



Moyennant ces petits changements, je pense que ce patch est prêt.


Bravo à tous !
Ces échanges de mail donnent envie de se mettre au codage...


C'est le but :)

JMarc



Re: Statistiques

2014-10-14 Par sujet Stéphane Mourey

Bonsoir,

Le 14/10/2014 16:23, Jean-Marc Lasgouttes a écrit :

Moyennant ces petits changements, je pense que ce patch est prêt.
Voilà, j'ai corrigé tout ça. J'espère que la documentation dans 
LyXAction.cpp te conviendra, c'est le seul point sur lequel j'avais 
encore un doute


Cordialement,

Stéphane Mourey

--
Blog: Impossible Exil 
>From 17b6ebf2820746bad71a3246d90be5b33a0fd527 Mon Sep 17 00:00:00 2001
From: brokenclock 
Date: Tue, 14 Oct 2014 21:55:04 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command

This function can be used with the LyX server to obtain the word, characters or characters+spaces count in the current document or selection.
---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 17 +
 src/Text3.cpp | 28 
 3 files changed, 46 insertions(+)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index 175f68e..2df6ec9 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -3526,6 +3526,23 @@ void LyXAction::init()
  */
 		{ LFUN_STATISTICS, "statistics", ReadOnly, System },
 /*!
+ * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
+ * \li Action: Count the statistics (number of words and characters)
+   in the document or in the selection if any.
+ * \li Notion: Note that this function gives the number of words/chars written,
+   not the number of characters which will be typeset.
+ * \li Syntax: server-get-statistics []
+ * \li Params: :  The needed count. If not
+   specified, the words, chars and chars-space counts.
+   space separated.
+   words: count words
+   chars: count characters
+   chars-space: count characters and spaces
+ * \li Origin: brokenclock, Oct 10 2014
+ * \endvar
+ */
+		{ LFUN_SERVER_GET_STATISTICS, "server-get-statistics", ReadOnly | Argument, System },
+/*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
  * \li Action: Show the inline completion at the cursor position.
  * \li Syntax: completion-inline
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 79711f4..6bf3bc6 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -2391,6 +2391,33 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 		needsUpdate = true;
 		break;
 
+	case LFUN_SERVER_GET_STATISTICS:
+		{
+			DocIterator from, to;
+			if (cur.selection()) {
+from = cur.selectionBegin();
+to = cur.selectionEnd();
+			} else {
+from = doc_iterator_begin(cur.buffer());
+to = doc_iterator_end(cur.buffer());
+			}
+
+			cur.buffer()->updateStatistics(from, to);
+			string const arg0 = cmd.getArg(0);
+			if (arg0 == "words") {
+cur.message(convert(cur.buffer()->wordCount()));
+			} else if (arg0 == "chars") {
+cur.message(convert(cur.buffer()->charCount(false)));
+			} else if (arg0 == "chars-space") {
+cur.message(convert(cur.buffer()->charCount(true)));
+			} else {
+cur.message(convert(cur.buffer()->wordCount()) + " "
++ convert(cur.buffer()->charCount(false)) + " "
++ convert(cur.buffer()->charCount(true)));
+			}
+		}
+		break;
+
 	default:
 		LYXERR(Debug::ACTION, "Command " << cmd << " not DISPATCHED by Text");
 		cur.undispatched();
@@ -3109,6 +3136,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
 	case LFUN_UNICODE_INSERT:
 	case LFUN_THESAURUS_ENTRY:
 	case LFUN_ESCAPE:
+	case LFUN_SERVER_GET_STATISTICS:
 		// these are handled in our dispatch()
 		enable = true;
 		break;
-- 
1.9.1



Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Ça marche pour moi, Ubuntu 14.04 LTS. Merci.

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la dernière version de lyx. L'affaire s'est débloquée en 
installant qt4-default.


Ludovic

Le 11/10/2014 03:48, Jean-Pierre Chrétien a écrit :

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




./autogen.sh  ok
./configure configure: error: cannot compile a simple Qt 
executable. Check

you have the right $QTDIR.


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au 
lieu de Kde, j'ai le même message, je pense qu'il faut vraiment dire 
à LyX où sont les bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.







--
Blog: Impossible Exil http://impossible-exil.info


Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/2014 15:25, Stéphane Mourey a écrit :

Bonjour,

Merci à tous pour votre aide, vos compliments, votre soutien !
J'ai essayé de prendre toutes vos remarques en considération, et voici
ce que cela donne.


On va voir ça :) (pour commencer, n'oublie pas de garder les messages 
sur la liste, c'est mieux).



La bonne forme est:
  Buffer  buffer = cur.buffer();

Erreur lors de la compilation :

Text3.cpp:2396:32: error: invalid initialization of non-const
reference of type ‘lyx::Buffer’ from an rvalue of type ‘lyx::Buffer*’
Buffer  buffer = cur.buffer();


C'est de ma faute, le résultat est en effet un pointeur. C'est très bien 
comme tu l'as fait.



Voilà ce que
donne mon code et là, il se compile bien, ce qui est déjà une petite
victoire:

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

 cur.buffer()-updateStatistics(from, to);
 string arg0 = cmd.getArg(0);


Style: chaque niveau d'indentation doit être une tabulation.

Style: quand on définit une variable qui ne sera pas modifiée ensuite, 
on ajoute const :

  string const arg0 = cmd.getArg(0);


 if (arg0 == words) {
cur.message(convertdocstring(cur.buffer()-wordCount()));
 } else if (arg0 == chars) {
cur.message(convertdocstring(cur.buffer()-charCount(false)));
 } else if (arg0 == chars-space) {
cur.message(convertdocstring(cur.buffer()-charCount(true)));
 } else {
cur.message(convertdocstring(cur.buffer()-wordCount()) +   +
convertdocstring(cur.buffer()-charCount(false)) +   +
convertdocstring(cur.buffer()-charCount(true)));
 }
 }
 break;


Si tu ne veux pas avoir plein de cur.message, tu peux définir une variable
  string result;
et faire un
  cur.message(result);
à la fin. Par contre, c'est dur d'éviter les convert à répétition.


Reste plus qu'à tester pour de vrai. J'enlève le paquet LyX fournit par
Ubuntu, je fais make install, je lance LyX en ligne de commande et
tout a l'air de bien se passer.


Ceci n'est pas nécessaire. LyX peut toujours être lancé depuis le 
répertoire de compilation en faisant src/lyx. Il trouvera 
automatiquement les fichiers nécessaires.



J'ouvre un document, no problemo.
Logiquement, je passe au test de ma fonction. Et là, je coince. Dans une
nouvelle console, histoire de voire ce que LyX afficherait sur la ligne
de commande où je l'ai lancé (il n'affichera rien de plus) :

echo LYXCMD:bro:server-get-statistics: ~/.lyxpipe.in
cat ~/.lyxpipe.out

Et là, j'ai été quelque peu surpris par le fonctionnement des fichiers
~/.lyxpipe.in et ~/.lyxpipe.out, à tel point que j'ai d'abord cru que
rien ne marchait.

Car si je lance cat ~/.lyxpipe.out, il ne se passe rien, il ne me rend
pas la main, du moins jusqu'à ce que j'ai envoyé quelque chose sur
~/.lyxpipe.in... du coup j'en arrive à quelques acrobaties intéressantes :


Oui, je ne sais pas trop comment les pipes (tuyaux) marchent. Ce que je 
conseille est d'utiliser lyxclient (src/client/lyxclient), qui fait les 
trucs compliqués à ta place.



Qu'en pensez-vous ? Des améliorations à apporter ? Cela vaut-il la peine
de soumettre la contribution ? Si oui, comment s'y prendre ?


Ça a l'air très bien, et oui, ce serait une addition intéressante. Pour 
faire cela il faut faire un patch. Est-ce que tu travailles depuis git 
ou depuis le tar.gz de LyX ? Selon les cas, la méthode varie.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il faudra 
qu'on commence par appliquer à la version développement 2.2, la version 
stable vient après. Normalement, il n'y aura pas besoin de trop adapter 
le code.


JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 17:30, Jean-Marc Lasgouttes a écrit :
On va voir ça :) (pour commencer, n'oublie pas de garder les messages 
sur la liste, c'est mieux).

Désolé, j'essaie... mauvais clic...

Style: chaque niveau d'indentation doit être une tabulation.

Corrigé.
Style: quand on définit une variable qui ne sera pas modifiée ensuite, 
on ajoute const :

  string const arg0 = cmd.getArg(0);

Ok. Corrigé.
Si tu ne veux pas avoir plein de cur.message, tu peux définir une 
variable

  string result;
et faire un
  cur.message(result);
à la fin.

Ils ne me dérangent pas plus que ça.
Oui, je ne sais pas trop comment les pipes (tuyaux) marchent. Ce que 
je conseille est d'utiliser lyxclient (src/client/lyxclient), qui fait 
les trucs compliqués à ta place.
J'ai finit par écrire un petit bash (pour les stats de mots uniquement 
pour le moment) :


   cat ~/.lyx/lyxpipe.out  ~/.lyx/lyxpipe2.out 
   echo LYXCMD:bro:server-get-statistics:words ~/.lyx/lyxpipe.in
   sleep 0.02
   cut -d: -f4 ~/.lyx/lyxpipe2.out

Notez que j'ai modifié ma config pour utiliser ~/.lyx/lyxpipe.out à la 
place de ~/.lyxpipe.out, juste histoire de voir les fichiers à un moment 
donné de mes recherches.

Le sleep est un peu gênant, mais ça ne marche pas sans lui.
Ensuite, dans le préambule de mon document, j'ai définit une nouvelle 
commande Latex :


   \newcommand\statwords{

   \immediate\write18{/home/steph/bin/lyxstatwords
/home/steph/.lyx/statw.txt}

   \input{/home/steph/.lyx/statw.txt}

   }

Et là tout marche comme je veux. Il y a sans doute quelques 
améliorations cosmétiques à réaliser, comme de faire un bash qui accepte 
un argument pour afficher telle ou telle stat et le rendre plus abstrait 
(je ne vois pas comment récupérer la config de LyX pour connaître les 
fichiers pipe par exemple).



Qu'en pensez-vous ? Des améliorations à apporter ? Cela vaut-il la peine
de soumettre la contribution ? Si oui, comment s'y prendre ?


Ça a l'air très bien, et oui, ce serait une addition intéressante. 
Pour faire cela il faut faire un patch. Est-ce que tu travailles 
depuis git ou depuis le tar.gz de LyX ? Selon les cas, la méthode varie.

J'ai travaillé depuis Git.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il 
faudra qu'on commence par appliquer à la version développement 2.2, la 
version stable vient après. Normalement, il n'y aura pas besoin de 
trop adapter le code.

J'ai travaillé sur la version 2.2.0dev(pas encore publiée).

--
Blog: Impossible Exil http://impossible-exil.info


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Bonjour,

Alors voilà, après avoir modifié LyX, voici comment j'ai pu m'en servir 
pour obtenir exactement le résultat que je voulais.

J'ai dû écrire deux bash finalement pour éviter que les tubes s'emmêlent.
Le premier effectue la mise à jour des statistiques dans un fichier dédié :
lyxupdatestats :

   cat ~/.lyx/lyxpipe.out  ~/.lyx/lyxpipe2$1.out 
   echo LYXCMD:bro:server-get-statistics:$1 ~/.lyx/lyxpipe.in

Un autre qui récupère les statistiques à afficher :
lyxgetstats :

   sleep 0.02
   case $1 in
words)
arg=1;
;;
chars)
arg=2;
;;
chars-space)
arg=3;
;;
   esac

   cut -d: -f4 ~/.lyx/lyxpipe2.out | cut -d  -f$arg

Et quatre commandes Latex pour utiliser tout ça :

   \newcommand\updatestats{

   \immediate\write18{/home/steph/bin/lyxupupdatestats}

   }

   \newcommand\statwords{

   \immediate\write18{/home/steph/bin/lyxgetstats
   words/home/steph/.lyx/statw.txt}

   \input{/home/steph/.lyx/statw.txt}

   }

   \newcommand\statchars{

   \immediate\write18{/home/steph/bin/lyxgetstats
   chars/home/steph/.lyx/statc.txt}

   \input{/home/steph/.lyx/statc.txt}

   }

   \newcommand\statcharspace{

   \immediate\write18{/home/steph/bin/lyxgetstats
   chars-space/home/steph/.lyx/statcs.txt}

   \input{/home/steph/.lyx/statcs.txt}

   }

Maintenant, si vous voulez utiliser ces commandes, il faudra 
personnaliser les chemins.



Merci à tous pour votre aide, et en particulier Jean-Marc.


Cordialement,


Stéphane Mourey

--
Blog: Impossible Exil http://impossible-exil.info


Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/2014 17:48, Stéphane Mourey a écrit :

J'ai travaillé depuis Git.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il
faudra qu'on commence par appliquer à la version développement 2.2, la
version stable vient après. Normalement, il n'y aura pas besoin de
trop adapter le code.

J'ai travaillé sur la version 2.2.0dev(pas encore publiée).


Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec 
les changements pour que je puisse le voir et critiquer encore...


Ensuite, tu enverras un message à lyx-devel du même genre que celui ci:
  http://marc.info/?l=lyx-develm=139255709609015
et hop! je pousserai tout ça dans la branch master. Et puis j'imagine 
que cela ira dans la branch stable aussi.


On y est presque.

JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey


Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :
Excellent ! Et bien maintenant il faut que tu fasses un joli commit 
avec les changements pour que je puisse le voir et critiquer encore...
OK, j'ai fait mon commit, mais en local (et en plus pas sur une 
branche). Je ne sais pas comment tu veux que je te le rende visible... 
faut que je fasse une branche et ensuite un request-pull ?

--
Blog: Impossible Exil http://impossible-exil.info


Re: Statistiques

2014-10-13 Par sujet Scott Kostyshak
2014-10-13 16:06 GMT-04:00 Stéphane Mourey
stephane.mou...@impossible-exil.info:

 Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :

 Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec les
 changements pour que je puisse le voir et critiquer encore...

 OK, j'ai fait mon commit, mais en local (et en plus pas sur une branche). Je
 ne sais pas comment tu veux que je te le rende visible... faut que je fasse
 une branche et ensuite un request-pull ?
 --
 Blog: Impossible Exil

Tu peux faire
git format-patch HEAD^

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 22:11, Scott Kostyshak a écrit :

2014-10-13 16:06 GMT-04:00 Stéphane Mourey
stephane.mou...@impossible-exil.info:

Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :

Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec les
changements pour que je puisse le voir et critiquer encore...

OK, j'ai fait mon commit, mais en local (et en plus pas sur une branche). Je
ne sais pas comment tu veux que je te le rende visible... faut que je fasse
une branche et ensuite un request-pull ?
--
Blog: Impossible Exil

Tu peux faire
git format-patch HEAD^

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Et voilà!

--
Blog: Impossible Exil http://impossible-exil.info
From 774a778821e0dfa719f6332bee4a60397bcc57c2 Mon Sep 17 00:00:00 2001
From: brokenclock stephane.mou...@impossible-exil.info
Date: Mon, 13 Oct 2014 21:46:47 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command, which make possible
 to get the LyX statistics on .lyxpipe.out

---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 78 ---
 src/Text3.cpp | 26 +++
 3 files changed, 72 insertions(+), 33 deletions(-)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index cc782d6..bdc4198 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -63,12 +63,12 @@ namespace lyx {
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_
- * \li Action: 
- * \li Notion: 
- * \li Syntax: 
- * \li Params: 
+ * \li Action:
+ * \li Notion:
+ * \li Syntax:
+ * \li Params:
  * \li Sample:
- * \li Origin: 
+ * \li Origin:
  * \endvar
  */
 
@@ -99,7 +99,7 @@ void LyXAction::init()
 	// magnitudes faster.
 
 	static bool init;
-	if (init) 
+	if (init)
 		return;
 
 	struct ev_item {
@@ -456,7 +456,7 @@ void LyXAction::init()
For dissolving the element see #LFUN_INSET_DISSOLVE.
  * \li Syntax: flex-insert Name
  * \li Params: Name: This name must be defined either in your layout file
- or imported by some module. The definition is 
+ or imported by some module. The definition is
  InsetLayout Name or InsetLayout Flex:Name. The Flex:
  prefix is optional.
  * \li Sample: flex-insert Code
@@ -801,7 +801,7 @@ void LyXAction::init()
 		{ LFUN_CHAR_LEFT, char-left, ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHAR_LEFT_SELECT
- * \li Action: Moves the cursor one position to the left, adding 
+ * \li Action: Moves the cursor one position to the left, adding
traversed position to the selection.
  * \li Notion: See also #LFUN_CHAR_LEFT for exact details of the movement.
  * \li Syntax: char-left-select
@@ -931,7 +931,7 @@ void LyXAction::init()
 		{ LFUN_WORD_FORWARD, word-forward, ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD_SELECT
- * \li Action: Moves the cursor to the logically next beginning of a word, 
+ * \li Action: Moves the cursor to the logically next beginning of a word,
adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_FORWARD.
  * \li Syntax: word-forward-select
@@ -942,8 +942,8 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT
  * \li Action: Moves the cursor to the next beginning of a word on the left.
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-   left key is pressed. Generally, it moves the cursor to the 
-   next beginning of a word on the left. However, in Bidi text this 
+   left key is pressed. Generally, it moves the cursor to the
+   next beginning of a word on the left. However, in Bidi text this
become slightly more complicated, and there are different modes
of cursor movement. In visual mode, this moves left, plain and
simple. In logical mode, movement is logically forward in RTL
@@ -967,12 +967,12 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT
  * \li Action: Moves the cursor to the next beginning of a word on the right.
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-   right key is pressed. Generally, it moves the cursor to the 
-   next beginning of a word on the right. However, in Bidi text 
+   right key is pressed. Generally, it moves the cursor to the
+   next beginning of a word on the 

Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/14 22:28, Stéphane Mourey a écrit :

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Et voilà!


Je vois plein de changements d'espaces. J'ai fait la même chose dans 
master, est-ce que tu pourrais rebaser ton patch sur le nouveau master? 
Cela fera un patch plus clair.


J'aurais peut-être des remarques plus constructives, mais demain.

JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 22:49, Jean-Marc Lasgouttes a écrit :

Je vois plein de changements d'espaces.
Mon éditeur de code est configuré pour supprimer les espaces 
surnuméraires... faudra peut-être que je change ça.
J'ai fait la même chose dans master, est-ce que tu pourrais rebaser 
ton patch sur le nouveau master? Cela fera un patch plus clair.

Le voilà donc.

Bonne nuit.

--
Blog: Impossible Exil http://impossible-exil.info
From 2de97193a8eba9b9f5d7798e5e9115f36141da08 Mon Sep 17 00:00:00 2001
From: brokenclock stephane.mou...@impossible-exil.info
Date: Mon, 13 Oct 2014 21:46:47 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command, which make possible
 to get the LyX statistics on .lyxpipe.out

---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 12 
 src/Text3.cpp | 26 ++
 3 files changed, 39 insertions(+)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index 175f68e..bdc4198 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -3526,6 +3526,18 @@ void LyXAction::init()
  */
 		{ LFUN_STATISTICS, statistics, ReadOnly, System },
 /*!
+ * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
+ * \li Action: Count the statistics (number of words and characters)
+   in the document.
+ * \li Notion: Note that this function gives the number of words/chars written,
+   not the number of characters which will be typeset.
+ * \li Syntax: server-get-statistics words|chars|chars-space
+ * \li Params: words|chars|chars-space indicate the statistic to get, none for all space separated
+ * \li Origin: brokenclock, Oct 10 2014
+ * \endvar
+ */
+		{ LFUN_SERVER_GET_STATISTICS, server-get-statistics, ReadOnly | Argument, System },
+/*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
  * \li Action: Show the inline completion at the cursor position.
  * \li Syntax: completion-inline
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 79711f4..11260b4 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -2391,6 +2391,31 @@ void Text::dispatch(Cursor  cur, FuncRequest  cmd)
 		needsUpdate = true;
 		break;
 
+	case LFUN_SERVER_GET_STATISTICS:
+		{
+			DocIterator from, to;
+			if (cur.selection()) {
+from = cur.selectionBegin();
+to = cur.selectionEnd();
+			} else {
+from = doc_iterator_begin(cur.buffer());
+to = doc_iterator_end(cur.buffer());
+			}
+
+			cur.buffer()-updateStatistics(from, to);
+			const string arg0 = cmd.getArg(0);
+			if (arg0 == words) {
+cur.message(convertdocstring(cur.buffer()-wordCount()));
+			} else if (arg0 == chars) {
+cur.message(convertdocstring(cur.buffer()-charCount(false)));
+			} else if (arg0 == chars-space) {
+cur.message(convertdocstring(cur.buffer()-charCount(true)));
+			} else {
+cur.message(convertdocstring(cur.buffer()-wordCount()) +   + convertdocstring(cur.buffer()-charCount(false)) +   + convertdocstring(cur.buffer()-charCount(true)));
+			}
+		}
+		break;
+
 	default:
 		LYXERR(Debug::ACTION, Command   cmd   not DISPATCHED by Text);
 		cur.undispatched();
@@ -3109,6 +3134,7 @@ bool Text::getStatus(Cursor  cur, FuncRequest const  cmd,
 	case LFUN_UNICODE_INSERT:
 	case LFUN_THESAURUS_ENTRY:
 	case LFUN_ESCAPE:
+	case LFUN_SERVER_GET_STATISTICS:
 		// these are handled in our dispatch()
 		enable = true;
 		break;
-- 
1.9.1



Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Ça marche pour moi, Ubuntu 14.04 LTS. Merci.

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la dernière version de lyx. L'affaire s'est débloquée en 
installant qt4-default.


Ludovic

Le 11/10/2014 03:48, Jean-Pierre Chrétien a écrit :

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




./autogen.sh > ok
./configure >configure: error: cannot compile a simple Qt 
executable. Check

you have the right $QTDIR.


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au 
lieu de Kde, j'ai le même message, je pense qu'il faut vraiment dire 
à LyX où sont les bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.







--
Blog: Impossible Exil 


Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/2014 15:25, Stéphane Mourey a écrit :

Bonjour,

Merci à tous pour votre aide, vos compliments, votre soutien !
J'ai essayé de prendre toutes vos remarques en considération, et voici
ce que cela donne.


On va voir ça :) (pour commencer, n'oublie pas de garder les messages 
sur la liste, c'est mieux).



La bonne forme est:
  Buffer & buffer = cur.buffer();

Erreur lors de la compilation :

Text3.cpp:2396:32: error: invalid initialization of non-const
reference of type ‘lyx::Buffer&’ from an rvalue of type ‘lyx::Buffer*’
Buffer & buffer = cur.buffer();


C'est de ma faute, le résultat est en effet un pointeur. C'est très bien 
comme tu l'as fait.



Voilà ce que
donne mon code et là, il se compile bien, ce qui est déjà une petite
victoire:

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

 cur.buffer()->updateStatistics(from, to);
 string arg0 = cmd.getArg(0);


Style: chaque niveau d'indentation doit être une tabulation.

Style: quand on définit une variable qui ne sera pas modifiée ensuite, 
on ajoute "const" :

  string const arg0 = cmd.getArg(0);


 if (arg0 == "words") {
cur.message(convert(cur.buffer()->wordCount()));
 } else if (arg0 == "chars") {
cur.message(convert(cur.buffer()->charCount(false)));
 } else if (arg0 == "chars-space") {
cur.message(convert(cur.buffer()->charCount(true)));
 } else {
cur.message(convert(cur.buffer()->wordCount()) + " " +
convert(cur.buffer()->charCount(false)) + " " +
convert(cur.buffer()->charCount(true)));
 }
 }
 break;


Si tu ne veux pas avoir plein de cur.message, tu peux définir une variable
  string result;
et faire un
  cur.message(result);
à la fin. Par contre, c'est dur d'éviter les convert à répétition.


Reste plus qu'à tester pour de vrai. J'enlève le paquet LyX fournit par
Ubuntu, je fais "make install", je lance LyX en ligne de commande et
tout a l'air de bien se passer.


Ceci n'est pas nécessaire. LyX peut toujours être lancé depuis le 
répertoire de compilation en faisant src/lyx. Il trouvera 
automatiquement les fichiers nécessaires.



J'ouvre un document, no problemo.
Logiquement, je passe au test de ma fonction. Et là, je coince. Dans une
nouvelle console, histoire de voire ce que LyX afficherait sur la ligne
de commande où je l'ai lancé (il n'affichera rien de plus) :

echo "LYXCMD:bro:server-get-statistics:" >~/.lyxpipe.in
cat ~/.lyxpipe.out

Et là, j'ai été quelque peu surpris par le fonctionnement des fichiers
~/.lyxpipe.in et ~/.lyxpipe.out, à tel point que j'ai d'abord cru que
rien ne marchait.

Car si je lance "cat ~/.lyxpipe.out", il ne se passe rien, il ne me rend
pas la main, du moins jusqu'à ce que j'ai envoyé quelque chose sur
~/.lyxpipe.in... du coup j'en arrive à quelques acrobaties intéressantes :


Oui, je ne sais pas trop comment les pipes (tuyaux) marchent. Ce que je 
conseille est d'utiliser lyxclient (src/client/lyxclient), qui fait les 
trucs compliqués à ta place.



Qu'en pensez-vous ? Des améliorations à apporter ? Cela vaut-il la peine
de soumettre la contribution ? Si oui, comment s'y prendre ?


Ça a l'air très bien, et oui, ce serait une addition intéressante. Pour 
faire cela il faut faire un patch. Est-ce que tu travailles depuis git 
ou depuis le tar.gz de LyX ? Selon les cas, la méthode varie.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il faudra 
qu'on commence par appliquer à la version développement 2.2, la version 
stable vient après. Normalement, il n'y aura pas besoin de trop adapter 
le code.


JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 17:30, Jean-Marc Lasgouttes a écrit :
On va voir ça :) (pour commencer, n'oublie pas de garder les messages 
sur la liste, c'est mieux).

Désolé, j'essaie... mauvais clic...

Style: chaque niveau d'indentation doit être une tabulation.

Corrigé.
Style: quand on définit une variable qui ne sera pas modifiée ensuite, 
on ajoute "const" :

  string const arg0 = cmd.getArg(0);

Ok. Corrigé.
Si tu ne veux pas avoir plein de cur.message, tu peux définir une 
variable

  string result;
et faire un
  cur.message(result);
à la fin.

Ils ne me dérangent pas plus que ça.
Oui, je ne sais pas trop comment les pipes (tuyaux) marchent. Ce que 
je conseille est d'utiliser lyxclient (src/client/lyxclient), qui fait 
les trucs compliqués à ta place.
J'ai finit par écrire un petit bash (pour les stats de mots uniquement 
pour le moment) :


   cat ~/.lyx/lyxpipe.out > ~/.lyx/lyxpipe2.out &
   echo "LYXCMD:bro:server-get-statistics:words" >~/.lyx/lyxpipe.in
   sleep 0.02
   cut -d":" -f4 ~/.lyx/lyxpipe2.out

Notez que j'ai modifié ma config pour utiliser ~/.lyx/lyxpipe.out à la 
place de ~/.lyxpipe.out, juste histoire de voir les fichiers à un moment 
donné de mes recherches.

Le "sleep" est un peu gênant, mais ça ne marche pas sans lui.
Ensuite, dans le préambule de mon document, j'ai définit une nouvelle 
commande Latex :


   \newcommand\statwords{

   \immediate\write18{/home/steph/bin/lyxstatwords
>/home/steph/.lyx/statw.txt}

   \input{/home/steph/.lyx/statw.txt}

   }

Et là tout marche comme je veux. Il y a sans doute quelques 
améliorations cosmétiques à réaliser, comme de faire un bash qui accepte 
un argument pour afficher telle ou telle stat et le rendre plus abstrait 
(je ne vois pas comment récupérer la config de LyX pour connaître les 
fichiers pipe par exemple).



Qu'en pensez-vous ? Des améliorations à apporter ? Cela vaut-il la peine
de soumettre la contribution ? Si oui, comment s'y prendre ?


Ça a l'air très bien, et oui, ce serait une addition intéressante. 
Pour faire cela il faut faire un patch. Est-ce que tu travailles 
depuis git ou depuis le tar.gz de LyX ? Selon les cas, la méthode varie.

J'ai travaillé depuis Git.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il 
faudra qu'on commence par appliquer à la version développement 2.2, la 
version stable vient après. Normalement, il n'y aura pas besoin de 
trop adapter le code.

J'ai travaillé sur la version 2.2.0dev(pas encore publiée).

--
Blog: Impossible Exil 


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Bonjour,

Alors voilà, après avoir modifié LyX, voici comment j'ai pu m'en servir 
pour obtenir exactement le résultat que je voulais.

J'ai dû écrire deux bash finalement pour éviter que les tubes s'emmêlent.
Le premier effectue la mise à jour des statistiques dans un fichier dédié :
lyxupdatestats :

   cat ~/.lyx/lyxpipe.out > ~/.lyx/lyxpipe2$1.out &
   echo "LYXCMD:bro:server-get-statistics:$1" >~/.lyx/lyxpipe.in

Un autre qui récupère les statistiques à afficher :
lyxgetstats :

   sleep 0.02
   case "$1" in
words)
arg=1;
;;
chars)
arg=2;
;;
chars-space)
arg=3;
;;
   esac

   cut -d":" -f4 ~/.lyx/lyxpipe2.out | cut -d" " -f$arg

Et quatre commandes Latex pour utiliser tout ça :

   \newcommand\updatestats{

   \immediate\write18{/home/steph/bin/lyxupupdatestats}

   }

   \newcommand\statwords{

   \immediate\write18{/home/steph/bin/lyxgetstats
   words>/home/steph/.lyx/statw.txt}

   \input{/home/steph/.lyx/statw.txt}

   }

   \newcommand\statchars{

   \immediate\write18{/home/steph/bin/lyxgetstats
   chars>/home/steph/.lyx/statc.txt}

   \input{/home/steph/.lyx/statc.txt}

   }

   \newcommand\statcharspace{

   \immediate\write18{/home/steph/bin/lyxgetstats
   chars-space>/home/steph/.lyx/statcs.txt}

   \input{/home/steph/.lyx/statcs.txt}

   }

Maintenant, si vous voulez utiliser ces commandes, il faudra 
personnaliser les chemins.



Merci à tous pour votre aide, et en particulier Jean-Marc.


Cordialement,


Stéphane Mourey

--
Blog: Impossible Exil 


Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/2014 17:48, Stéphane Mourey a écrit :

J'ai travaillé depuis Git.


J'imagine que tu as travaillé depuis la version stable 2.1.x ? Il
faudra qu'on commence par appliquer à la version développement 2.2, la
version stable vient après. Normalement, il n'y aura pas besoin de
trop adapter le code.

J'ai travaillé sur la version 2.2.0dev(pas encore publiée).


Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec 
les changements pour que je puisse le voir et critiquer encore...


Ensuite, tu enverras un message à lyx-devel du même genre que celui ci:
  http://marc.info/?l=lyx-devel=139255709609015
et hop! je pousserai tout ça dans la branch master. Et puis j'imagine 
que cela ira dans la branch stable aussi.


On y est presque.

JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey


Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :
Excellent ! Et bien maintenant il faut que tu fasses un joli commit 
avec les changements pour que je puisse le voir et critiquer encore...
OK, j'ai fait mon commit, mais en local (et en plus pas sur une 
branche). Je ne sais pas comment tu veux que je te le rende visible... 
faut que je fasse une branche et ensuite un request-pull ?

--
Blog: Impossible Exil 


Re: Statistiques

2014-10-13 Par sujet Scott Kostyshak
2014-10-13 16:06 GMT-04:00 Stéphane Mourey
:
>
> Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :
>
> Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec les
> changements pour que je puisse le voir et critiquer encore...
>
> OK, j'ai fait mon commit, mais en local (et en plus pas sur une branche). Je
> ne sais pas comment tu veux que je te le rende visible... faut que je fasse
> une branche et ensuite un request-pull ?
> --
> Blog: Impossible Exil

Tu peux faire
git format-patch HEAD^

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 22:11, Scott Kostyshak a écrit :

2014-10-13 16:06 GMT-04:00 Stéphane Mourey
:

Le 13/10/2014 18:34, Jean-Marc Lasgouttes a écrit :

Excellent ! Et bien maintenant il faut que tu fasses un joli commit avec les
changements pour que je puisse le voir et critiquer encore...

OK, j'ai fait mon commit, mais en local (et en plus pas sur une branche). Je
ne sais pas comment tu veux que je te le rende visible... faut que je fasse
une branche et ensuite un request-pull ?
--
Blog: Impossible Exil

Tu peux faire
git format-patch HEAD^

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Et voilà!

--
Blog: Impossible Exil 
>From 774a778821e0dfa719f6332bee4a60397bcc57c2 Mon Sep 17 00:00:00 2001
From: brokenclock 
Date: Mon, 13 Oct 2014 21:46:47 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command, which make possible
 to get the LyX statistics on .lyxpipe.out

---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 78 ---
 src/Text3.cpp | 26 +++
 3 files changed, 72 insertions(+), 33 deletions(-)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index cc782d6..bdc4198 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -63,12 +63,12 @@ namespace lyx {
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_
- * \li Action: 
- * \li Notion: 
- * \li Syntax: 
- * \li Params: 
+ * \li Action:
+ * \li Notion:
+ * \li Syntax:
+ * \li Params:
  * \li Sample:
- * \li Origin: 
+ * \li Origin:
  * \endvar
  */
 
@@ -99,7 +99,7 @@ void LyXAction::init()
 	// magnitudes faster.
 
 	static bool init;
-	if (init) 
+	if (init)
 		return;
 
 	struct ev_item {
@@ -456,7 +456,7 @@ void LyXAction::init()
For dissolving the element see #LFUN_INSET_DISSOLVE.
  * \li Syntax: flex-insert Name
  * \li Params: Name: This name must be defined either in your layout file
- or imported by some module. The definition is 
+ or imported by some module. The definition is
  InsetLayout Name or InsetLayout . The Flex:
  prefix is optional.
  * \li Sample: flex-insert Code
@@ -801,7 +801,7 @@ void LyXAction::init()
 		{ LFUN_CHAR_LEFT, "char-left", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHAR_LEFT_SELECT
- * \li Action: Moves the cursor one position "to the left", adding 
+ * \li Action: Moves the cursor one position "to the left", adding
traversed position to the selection.
  * \li Notion: See also #LFUN_CHAR_LEFT for exact details of the movement.
  * \li Syntax: char-left-select
@@ -931,7 +931,7 @@ void LyXAction::init()
 		{ LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD_SELECT
- * \li Action: Moves the cursor to the logically next beginning of a word, 
+ * \li Action: Moves the cursor to the logically next beginning of a word,
adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_FORWARD.
  * \li Syntax: word-forward-select
@@ -942,8 +942,8 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT
  * \li Action: Moves the cursor to the next beginning of a word "on the left".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-   "left" key is pressed. Generally, it moves the cursor to the 
-   next beginning of a word on the left. However, in Bidi text this 
+   "left" key is pressed. Generally, it moves the cursor to the
+   next beginning of a word on the left. However, in Bidi text this
become slightly more complicated, and there are different modes
of cursor movement. In "visual mode", this moves left, plain and
simple. In "logical mode", movement is logically forward in RTL
@@ -967,12 +967,12 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT
  * \li Action: Moves the cursor to the next beginning of a word "on the right".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-   "right" key is pressed. Generally, it moves the cursor to the 
-   next beginning of a word on the right. However, in Bidi text 
+   "right" key is pressed. Generally, it moves the cursor to the
+   next 

Re: Statistiques

2014-10-13 Par sujet Jean-Marc Lasgouttes

Le 13/10/14 22:28, Stéphane Mourey a écrit :

Ensuite tu veras le nom du fichier qui contient le patch. C'est
celui-ci que tu peux envoyer. De notre côté on peut l'utiliser
facilement avec
git am ./0001-blah.patch

Scott


Et voilà!


Je vois plein de changements d'espaces. J'ai fait la même chose dans 
master, est-ce que tu pourrais rebaser ton patch sur le nouveau master? 
Cela fera un patch plus clair.


J'aurais peut-être des remarques plus constructives, mais demain.

JMarc


Re: Statistiques

2014-10-13 Par sujet Stéphane Mourey

Le 13/10/2014 22:49, Jean-Marc Lasgouttes a écrit :

Je vois plein de changements d'espaces.
Mon éditeur de code est configuré pour supprimer les espaces 
surnuméraires... faudra peut-être que je change ça.
J'ai fait la même chose dans master, est-ce que tu pourrais rebaser 
ton patch sur le nouveau master? Cela fera un patch plus clair.

Le voilà donc.

Bonne nuit.

--
Blog: Impossible Exil 
>From 2de97193a8eba9b9f5d7798e5e9115f36141da08 Mon Sep 17 00:00:00 2001
From: brokenclock 
Date: Mon, 13 Oct 2014 21:46:47 +0200
Subject: [PATCH] Add LFUN_SERVER_GET_STATISTICS command, which make possible
 to get the LyX statistics on .lyxpipe.out

---
 src/FuncCode.h|  1 +
 src/LyXAction.cpp | 12 
 src/Text3.cpp | 26 ++
 3 files changed, 39 insertions(+)

diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2ae820a..3bd0cd0 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -458,6 +458,7 @@ enum FuncCode
 	// 355
 	LFUN_SPELLING_CONTINUOUSLY, // vfr, 20130324
 	LFUN_SEPARATOR_INSERT,  // ef 20140502
+	LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
 	LFUN_LASTACTION // end of the table
 };
 
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index 175f68e..bdc4198 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -3526,6 +3526,18 @@ void LyXAction::init()
  */
 		{ LFUN_STATISTICS, "statistics", ReadOnly, System },
 /*!
+ * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
+ * \li Action: Count the statistics (number of words and characters)
+   in the document.
+ * \li Notion: Note that this function gives the number of words/chars written,
+   not the number of characters which will be typeset.
+ * \li Syntax: server-get-statistics 
+ * \li Params:  indicate the statistic to get, none for all space separated
+ * \li Origin: brokenclock, Oct 10 2014
+ * \endvar
+ */
+		{ LFUN_SERVER_GET_STATISTICS, "server-get-statistics", ReadOnly | Argument, System },
+/*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
  * \li Action: Show the inline completion at the cursor position.
  * \li Syntax: completion-inline
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 79711f4..11260b4 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -2391,6 +2391,31 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 		needsUpdate = true;
 		break;
 
+	case LFUN_SERVER_GET_STATISTICS:
+		{
+			DocIterator from, to;
+			if (cur.selection()) {
+from = cur.selectionBegin();
+to = cur.selectionEnd();
+			} else {
+from = doc_iterator_begin(cur.buffer());
+to = doc_iterator_end(cur.buffer());
+			}
+
+			cur.buffer()->updateStatistics(from, to);
+			const string arg0 = cmd.getArg(0);
+			if (arg0 == "words") {
+cur.message(convert(cur.buffer()->wordCount()));
+			} else if (arg0 == "chars") {
+cur.message(convert(cur.buffer()->charCount(false)));
+			} else if (arg0 == "chars-space") {
+cur.message(convert(cur.buffer()->charCount(true)));
+			} else {
+cur.message(convert(cur.buffer()->wordCount()) + " " + convert(cur.buffer()->charCount(false)) + " " + convert(cur.buffer()->charCount(true)));
+			}
+		}
+		break;
+
 	default:
 		LYXERR(Debug::ACTION, "Command " << cmd << " not DISPATCHED by Text");
 		cur.undispatched();
@@ -3109,6 +3134,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
 	case LFUN_UNICODE_INSERT:
 	case LFUN_THESAURUS_ENTRY:
 	case LFUN_ESCAPE:
+	case LFUN_SERVER_GET_STATISTICS:
 		// these are handled in our dispatch()
 		enable = true;
 		break;
-- 
1.9.1



Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




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


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au lieu de Kde, 
j'ai le même message, je pense qu'il faut vraiment dire à LyX où sont les 
bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.

--
Jean-Pierre





Re: Statistiques

2014-10-11 Par sujet Balavoine Ludovic
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la dernière version de lyx. L'affaire s'est débloquée en 
installant qt4-default.


Ludovic

Le 11/10/2014 03:48, Jean-Pierre Chrétien a écrit :

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




./autogen.sh  ok
./configure configure: error: cannot compile a simple Qt 
executable. Check

you have the right $QTDIR.


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au 
lieu de Kde, j'ai le même message, je pense qu'il faut vraiment dire à 
LyX où sont les bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.





Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :

J'ai eu le même problème, avec le même message d'erreur, en voulant installer la
dernière version de lyx. L'affaire s'est débloquée en installant qt4-default.



Je ne trouve pas trace de ce paquet pour Debian Wheezy (stable)...

--
Jean-Pierre





Re: Statistiques

2014-10-11 Par sujet Balavoine Ludovic

Je suis sous Ubuntu 14.04.

 11/10/2014 07:37, Jean-Pierre Chrétien a écrit :

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la
dernière version de lyx. L'affaire s'est débloquée en installant 
qt4-default.



Je ne trouve pas trace de ce paquet pour Debian Wheezy (stable)...





Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 11/10/2014 13:41, Balavoine Ludovic a écrit :

Je suis sous Ubuntu 14.04.


OK, qt4-default n'existe pas dans debian, ce doit être un paquet spécifique 
Ubuntu.

J'ai ceci au configure :

 Check you have the right $QT4DIR.

Ça ne relève plus de la liste lyx-fr, je vais poser la question sur lyx-users.

--
Jean-Pierre



Re: Statistiques

2014-10-11 Par sujet Jean-Marc Lasgouttes

Le 11/10/14 14:11, Jean-Pierre Chrétien a écrit :

Le 11/10/2014 13:41, Balavoine Ludovic a écrit :

Je suis sous Ubuntu 14.04.


OK, qt4-default n'existe pas dans debian, ce doit être un paquet
spécifique Ubuntu.

J'ai ceci au configure :

  Check you have the right $QT4DIR.

Ça ne relève plus de la liste lyx-fr, je vais poser la question sur
lyx-users.


Est-ce que pkg-config est installé ? Ça aide...

JMarc



Re: Statistiques

2014-10-11 Par sujet Jean-Marc Lasgouttes

Bonjour,

Je suis d'accord avec Scott pour les noms de paramètres.

Le 10/10/14 19:52, Scott Kostyshak a écrit :

Voilà ce que cela donne :

[... couic couic ...]

 Buffer buffer = cur.buffer();
 buffer.updateStatistics(from, to);


Alors là tu as un problème: quand tu récupère le buffer comme tu en fais 
une copie. Alors si c'est un grand document...


La bonne forme est:
  Buffer  buffer = cur.buffer();

Cela garde juste une référence au buffer.


 switch (cmd.getArg(0)) {
 case words:
 cur.message(buffer.wordCount());
 break;


Comme l'a dit Scott, tu ne peux pas utiliser switch ici. Essaie plutot des
if (cmd.getArg(0) == words) {
...
} else if (cmd.getArg(0) == signs) {
...


 default:
 cur.message(buffer.wordCount() + buffer.charCount(false) +
buffer.charCount(true));


Alors là tu additionne les valeurs renvoyées par Buffer::xxxCount. Je 
pense que ce n'est pas ce que tu veux. Il faut faire comme dans 
LFUN_SERVER_GET_XY et utiliser convertstring.



Il me semble que tu fais beaucoup de progès. Il m'a fallu au moins
cinquante itérations Jean-Marc pour mon premier patch.


:) C'est un jeu plutôt amusant quand la personne a l'autre bout a la 
patience de suivre toutes mes récriminations.


JMarc



Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




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


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au lieu de Kde, 
j'ai le même message, je pense qu'il faut vraiment dire à LyX où sont les 
bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.

--
Jean-Pierre





Re: Statistiques

2014-10-11 Par sujet Balavoine Ludovic
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la dernière version de lyx. L'affaire s'est débloquée en 
installant qt4-default.


Ludovic

Le 11/10/2014 03:48, Jean-Pierre Chrétien a écrit :

Le 10/10/2014 19:52, Scott Kostyshak a écrit :




./autogen.sh > ok
./configure >configure: error: cannot compile a simple Qt 
executable. Check

you have the right $QTDIR.


Depuis que j'ai réinstallé Wheezy et que je travaille avec Gnome au 
lieu de Kde, j'ai le même message, je pense qu'il faut vraiment dire à 
LyX où sont les bibliothèques qt4.

Je n'ai peut-être pas chargé tous les paquets de développement,

export QT4DIR=/usr/lib/qt4

ne suffit pas.





Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :

J'ai eu le même problème, avec le même message d'erreur, en voulant installer la
dernière version de lyx. L'affaire s'est débloquée en installant qt4-default.



Je ne trouve pas trace de ce paquet pour Debian Wheezy (stable)...

--
Jean-Pierre





Re: Statistiques

2014-10-11 Par sujet Balavoine Ludovic

Je suis sous Ubuntu 14.04.

 11/10/2014 07:37, Jean-Pierre Chrétien a écrit :

Le 11/10/2014 12:46, Balavoine Ludovic a écrit :
J'ai eu le même problème, avec le même message d'erreur, en voulant 
installer la
dernière version de lyx. L'affaire s'est débloquée en installant 
qt4-default.



Je ne trouve pas trace de ce paquet pour Debian Wheezy (stable)...





Re: Statistiques

2014-10-11 Par sujet Jean-Pierre Chrétien

Le 11/10/2014 13:41, Balavoine Ludovic a écrit :

Je suis sous Ubuntu 14.04.


OK, qt4-default n'existe pas dans debian, ce doit être un paquet spécifique 
Ubuntu.

J'ai ceci au configure :

 Check you have the right $QT4DIR.

Ça ne relève plus de la liste lyx-fr, je vais poser la question sur lyx-users.

--
Jean-Pierre



Re: Statistiques

2014-10-11 Par sujet Jean-Marc Lasgouttes

Le 11/10/14 14:11, Jean-Pierre Chrétien a écrit :

Le 11/10/2014 13:41, Balavoine Ludovic a écrit :

Je suis sous Ubuntu 14.04.


OK, qt4-default n'existe pas dans debian, ce doit être un paquet
spécifique Ubuntu.

J'ai ceci au configure :

  Check you have the right $QT4DIR.

Ça ne relève plus de la liste lyx-fr, je vais poser la question sur
lyx-users.


Est-ce que pkg-config est installé ? Ça aide...

JMarc



Re: Statistiques

2014-10-11 Par sujet Jean-Marc Lasgouttes

Bonjour,

Je suis d'accord avec Scott pour les noms de paramètres.

Le 10/10/14 19:52, Scott Kostyshak a écrit :

Voilà ce que cela donne :

[... couic couic ...]

 Buffer buffer = cur.buffer();
 buffer.updateStatistics(from, to);


Alors là tu as un problème: quand tu récupère le buffer comme tu en fais 
une copie. Alors si c'est un grand document...


La bonne forme est:
  Buffer & buffer = cur.buffer();

Cela garde juste une référence au buffer.


 switch (cmd.getArg(0)) {
 case "words":
 cur.message(buffer.wordCount());
 break;


Comme l'a dit Scott, tu ne peux pas utiliser switch ici. Essaie plutot des
if (cmd.getArg(0) == "words") {
...
} else if (cmd.getArg(0) == "signs") {
...


 default:
 cur.message(buffer.wordCount() + buffer.charCount(false) +
buffer.charCount(true));


Alors là tu additionne les valeurs renvoyées par Buffer::xxxCount. Je 
pense que ce n'est pas ce que tu veux. Il faut faire comme dans 
LFUN_SERVER_GET_XY et utiliser convert.



Il me semble que tu fais beaucoup de progès. Il m'a fallu au moins
cinquante "itérations Jean-Marc" pour mon premier patch.


:) C'est un jeu plutôt amusant quand la personne a l'autre bout a la 
patience de suivre toutes mes récriminations.


JMarc



Re: Statistiques

2014-10-10 Par sujet Stéphane Mourey

Re-bonjour,

Voilà, j'ai eu un peu de temps aujourd'hui pour me pencher à nouveau à 
la question.


Jean-Marc (merci!), j'explique tout ce que j'ai fait en réagissant à tes 
réponses ci-dessous :

  * 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)
Exact, et il y a en plus une série de drapeaux indiquant quand cette 
fonction peut être utilisée.

J'ai donc ajouté les lignes suivantes au fichier LyXAction.cpp :

   /*!
 * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
 * \li Action: Count the statistics (number of words and characters)
   in the document.
 * \li Notion: Note that this function gives the number of
   words/chars written,
  not the number of characters which will be typeset.
 * \li Syntax: server-get-statistics
   words|signs-spaces-inluded|signs-spaces-excluded
 * \li Params: words|signs-spaces-inluded|signs-spaces-excluded
 * \li Origin: brokenclock, Oct 10 2014
 * \endvar
 */
   { LFUN_SERVER_GET_STATISTICS, server-get-statistics, ReadOnly |
   Argument, System },


Je me suis inspiré des autres fonctions pour choisir les drapeaux, mais 
j'avoue que c'est un peu piffométrique... Peux-tu confirmer ou corriger 
Jean-Marc ? Les commentaires sont corrects ? On voit que j'attends un 
paramètre à choisir parmi trois chaînes de caractères.

LFUN_STATISTICS_NOVIEW, // brokenclock 20141006

Oui (au nom près)

J'ai mis :
LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
juste avant la ligne LFUN_LASTACTION.
Dans Buffer.cpp, plutôt. Il faut en effet ajouter un case dans 
Buffer::getStatus. C'est là qu'on dit si la fonction est activée ou 
pas. Ici, elle est toujours activée.

Du coup dans Buffer::getStatus, j'ai ajouté :

case LFUN_SERVER_GET_STATISTICS:
break;

pour activer la fonction.
Et si la commande est activée dans dans Buffer::getStatus, alors elle 
est sans doute traitée dans Buffer::dispatch ?

J'ai donc ajouté dans Buffer::dispatch le cas :

case LFUN_SERVER_GET_STATISTICS:
this.updateStatistics(from, to);
switch (cmd.getArg(0)) {
case words:
cur.message(this.wordCount());
break;
case signs-without-spaces:
cur.message(this.charCount(false));
break;
case signs-with-spaces:
cur.message(this.charCount(true));
break;
default:
return false;
}
break;


  * comment je fais pour écrire proprement dans ~/.lyxpipe.out ?
Le mieux est de regarder le fonctions LFUN_SERVER_GET_xxx (d'où le 
changement de nom ci-dessus).
C'est ce que j'ai fait, je n'ai trouvé que LFUN_SERVER_GET_XY et 
LFUN_SERVER_GET_LAYOUT dans Text3.cpp.

Ici, la commande magique sera
   result.setMessage(le résultat à renvoyer);
Les deux fonctions que j'ai trouvées utilisent cur.message(), que j'ai 
donc utilisé dans mon code, sans savoir si cela vaut quelque chose.


Un autre problème qui me saute aux yeux tient aux arguments à envoyer à 
Buffer::updateStatistics : je ne sais pas comment lui indiquer d'où 
commencer son compte, ni où finir (par défaut, du début à la fin du 
document... je ne pense pas qu'on puisse gérer d'autres possibilités en 
passant par le serveur).


Voilà où j'en suis. À mon avis, il ne manque pas grand chose pour que ça 
marche, mais ce n'est pas encore la peine que je lance la compilation.

--
Blog: Impossible Exil http://impossible-exil.info


Re: Statistiques

2014-10-10 Par sujet Jean-Marc Lasgouttes

Bonjour,

Le 10/10/2014 16:58, Stéphane Mourey a écrit :

J'ai donc ajouté les lignes suivantes au fichier LyXAction.cpp :

/*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
  * \li Action: Count the statistics (number of words and characters)
in the document.
  * \li Notion: Note that this function gives the number of
words/chars written,
   not the number of characters which will be typeset.
  * \li Syntax: server-get-statistics
words|signs-spaces-inluded|signs-spaces-excluded
  * \li Params: words|signs-spaces-inluded|signs-spaces-excluded


Je dirais words|signs|signs-space comme possibilité d'arguments. Il 
vaut mieux être bref.


La ligne Params: est sensée expliquer à quoi chaque argument sert.


  * \li Origin: brokenclock, Oct 10 2014
  * \endvar
  */
{ LFUN_SERVER_GET_STATISTICS, server-get-statistics, ReadOnly |
Argument, System },


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.


[je saute plein de choses sans problème]


Et si la commande est activée dans dans Buffer::getStatus, alors elle
est sans doute traitée dans Buffer::dispatch ?


Oui exactement.


J'ai donc ajouté dans Buffer::dispatch le cas :

 case LFUN_SERVER_GET_STATISTICS:
 this.updateStatistics(from, to);
 switch (cmd.getArg(0)) {
 case words:
 cur.message(this.wordCount());
 break;
 case signs-without-spaces:
 cur.message(this.charCount(false));
 break;
 case signs-with-spaces:
 cur.message(this.charCount(true));
 break;
 default:
 return false;
 }
 break;


Déjà, tu peux enlever les this., on n'utilise pas cette forme dans le 
code LyX.


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.


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.



Les deux fonctions que j'ai trouvées utilisent cur.message(), que j'ai
donc utilisé dans mon code, sans savoir si cela vaut quelque chose.


Oui, c'est bien.


Un autre problème qui me saute aux yeux tient aux arguments à envoyer à
Buffer::updateStatistics : je ne sais pas comment lui indiquer d'où
commencer son compte, ni où finir (par défaut, du début à la fin du
document... je ne pense pas qu'on puisse gérer d'autres possibilités en
passant par le serveur).


Comme tu as un curseur, tu peux reprendre le code de LFUN_STATISTICS 
pour calculer from et to.



Voilà où j'en suis. À mon avis, il ne manque pas grand chose pour que ça
marche, mais ce n'est pas encore la peine que je lance la compilation.


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


Bon week end,
JMarc



Re: Statistiques

2014-10-10 Par sujet Stéphane Mourey

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


Re: Statistiques

2014-10-10 Par sujet Stéphane Mourey

Re-bonjour,

Voilà, j'ai eu un peu de temps aujourd'hui pour me pencher à nouveau à 
la question.


Jean-Marc (merci!), j'explique tout ce que j'ai fait en réagissant à tes 
réponses ci-dessous :

  * 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)
Exact, et il y a en plus une série de drapeaux indiquant quand cette 
fonction peut être utilisée.

J'ai donc ajouté les lignes suivantes au fichier LyXAction.cpp :

   /*!
 * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
 * \li Action: Count the statistics (number of words and characters)
   in the document.
 * \li Notion: Note that this function gives the number of
   words/chars written,
  not the number of characters which will be typeset.
 * \li Syntax: server-get-statistics
   
 * \li Params: 
 * \li Origin: brokenclock, Oct 10 2014
 * \endvar
 */
   { LFUN_SERVER_GET_STATISTICS, "server-get-statistics", ReadOnly |
   Argument, System },


Je me suis inspiré des autres fonctions pour choisir les drapeaux, mais 
j'avoue que c'est un peu piffométrique... Peux-tu confirmer ou corriger 
Jean-Marc ? Les commentaires sont corrects ? On voit que j'attends un 
paramètre à choisir parmi trois chaînes de caractères.

LFUN_STATISTICS_NOVIEW, // brokenclock 20141006

Oui (au nom près)

J'ai mis :
LFUN_SERVER_GET_STATISTICS, // brokenclock 20141010
juste avant la ligne LFUN_LASTACTION.
Dans Buffer.cpp, plutôt. Il faut en effet ajouter un case dans 
Buffer::getStatus. C'est là qu'on dit si la fonction est activée ou 
pas. Ici, elle est toujours activée.

Du coup dans Buffer::getStatus, j'ai ajouté :

case LFUN_SERVER_GET_STATISTICS:
break;

pour activer la fonction.
Et si la commande est activée dans dans Buffer::getStatus, alors elle 
est sans doute traitée dans Buffer::dispatch ?

J'ai donc ajouté dans Buffer::dispatch le cas :

case LFUN_SERVER_GET_STATISTICS:
this.updateStatistics(from, to);
switch (cmd.getArg(0)) {
case "words":
cur.message(this.wordCount());
break;
case "signs-without-spaces":
cur.message(this.charCount(false));
break;
case "signs-with-spaces":
cur.message(this.charCount(true));
break;
default:
return false;
}
break;


  * comment je fais pour écrire proprement dans ~/.lyxpipe.out ?
Le mieux est de regarder le fonctions LFUN_SERVER_GET_xxx (d'où le 
changement de nom ci-dessus).
C'est ce que j'ai fait, je n'ai trouvé que LFUN_SERVER_GET_XY et 
LFUN_SERVER_GET_LAYOUT dans Text3.cpp.

Ici, la commande magique sera
   result.setMessage(le résultat à renvoyer);
Les deux fonctions que j'ai trouvées utilisent cur.message(), que j'ai 
donc utilisé dans mon code, sans savoir si cela vaut quelque chose.


Un autre problème qui me saute aux yeux tient aux arguments à envoyer à 
Buffer::updateStatistics : je ne sais pas comment lui indiquer d'où 
commencer son compte, ni où finir (par défaut, du début à la fin du 
document... je ne pense pas qu'on puisse gérer d'autres possibilités en 
passant par le serveur).


Voilà où j'en suis. À mon avis, il ne manque pas grand chose pour que ça 
marche, mais ce n'est pas encore la peine que je lance la compilation.

--
Blog: Impossible Exil 


Re: Statistiques

2014-10-10 Par sujet Jean-Marc Lasgouttes

Bonjour,

Le 10/10/2014 16:58, Stéphane Mourey a écrit :

J'ai donc ajouté les lignes suivantes au fichier LyXAction.cpp :

/*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_GET_STATISTICS
  * \li Action: Count the statistics (number of words and characters)
in the document.
  * \li Notion: Note that this function gives the number of
words/chars written,
   not the number of characters which will be typeset.
  * \li Syntax: server-get-statistics

  * \li Params: 


Je dirais "words|signs|signs-space" comme possibilité d'arguments. Il 
vaut mieux être bref.


La ligne Params: est sensée expliquer à quoi chaque argument sert.


  * \li Origin: brokenclock, Oct 10 2014
  * \endvar
  */
{ LFUN_SERVER_GET_STATISTICS, "server-get-statistics", ReadOnly |
Argument, System },


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.


[je saute plein de choses sans problème]


Et si la commande est activée dans dans Buffer::getStatus, alors elle
est sans doute traitée dans Buffer::dispatch ?


Oui exactement.


J'ai donc ajouté dans Buffer::dispatch le cas :

 case LFUN_SERVER_GET_STATISTICS:
 this.updateStatistics(from, to);
 switch (cmd.getArg(0)) {
 case "words":
 cur.message(this.wordCount());
 break;
 case "signs-without-spaces":
 cur.message(this.charCount(false));
 break;
 case "signs-with-spaces":
 cur.message(this.charCount(true));
 break;
 default:
 return false;
 }
 break;


Déjà, tu peux enlever les "this.", on n'utilise pas cette forme dans le 
code LyX.


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.


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.



Les deux fonctions que j'ai trouvées utilisent cur.message(), que j'ai
donc utilisé dans mon code, sans savoir si cela vaut quelque chose.


Oui, c'est bien.


Un autre problème qui me saute aux yeux tient aux arguments à envoyer à
Buffer::updateStatistics : je ne sais pas comment lui indiquer d'où
commencer son compte, ni où finir (par défaut, du début à la fin du
document... je ne pense pas qu'on puisse gérer d'autres possibilités en
passant par le serveur).


Comme tu as un curseur, tu peux reprendre le code de LFUN_STATISTICS 
pour calculer from et to.



Voilà où j'en suis. À mon avis, il ne manque pas grand chose pour que ça
marche, mais ce n'est pas encore la peine que je lance la compilation.


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


Bon week end,
JMarc



Re: Statistiques

2014-10-10 Par sujet Stéphane Mourey

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 
 * \li Params:  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(_);
to = doc_iterator_end(_);
}

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 


Re: Statistiques

2014-10-06 Par sujet Jean-Marc Lasgouttes

Le 06/10/2014 14:54, Stéphane Mourey a écrit :

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 judicieux à l'aide de quelques greps bien utilisés.


Très bonne résolution, allons-y ensemble.


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.


LyXAction et FuncCode servent à déclarer les fonctions. Le code qui 
permet d'exécuter les fonctions se trouve dans d'autres fichiers. En 
particulier:
 * BufferView pour les fonction globales à un buffer, mais qui ont 
besoin d'une interface graphique


 * Buffer pour les fonctions globales à un buffer et n'ont pas 
d'interface graphique. C'est ce fichier là que nous voulons ici.


Il n'est donc pas nécessaire de toucher à BufferView.*.


  * 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)


Exact, et il y a en plus une série de drapeaux indiquant quand cette 
fonction peut être utilisée.



  * j'aurai donc besoin d'y rajouter une ligne de code du style

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


Exact, par contre, je propose comme nom LFUN_SERVER_GET_STATISTICS (voir 
plus bas)



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


Oui (au nom près)



  * dans BufferView.cpp, il faudrait que j'ajoute
LFUN_STATISTICS_NOVIEW dans la liste des cas de la ligne 1068 à 1089,


Dans Buffer.cpp, plutôt. Il faut en effet ajouter un case dans 
Buffer::getStatus. C'est là qu'on dit si la fonction est activée ou pas. 
Ici, elle est toujours activée.



  * 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,


Oui, c'est cela.


  * 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.


Si on veut utiliser le serveur, il suffira de renvoyer la valeur comme 
résultat de la fonction.



  * 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


Exact, sauf que c'est LyX qui va s'occuper de faire le boulot.


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

  * j'ai bon ?


PPas mal pour un débutant :)


  * comment je reçois les paramètres reçus par lyxserver dans
BufferView.cpp (dans le bloc case LFUN_STATISTICS_NOVIEW) ?


Cela va y aller tout seul. Quand une fonction arrive, elle est envoyée 
dans l'ordre à un tas de récepteur possible, jusqu'à ce qu'un d'eux dise 
qu'il peut s'en occuper.



  * comment je fais pour écrire proprement dans ~/.lyxpipe.out ?


Le mieux est de regarder le fonctions LFUN_SERVER_GET_xxx (d'où le 
changement de nom ci-dessus).


Ici, la commande magique sera
   result.setMessage(le résultat à renvoyer);
Le résultat de la fonction sera automatiquement renvoyé au bon endroit.

Il faut encore décider le format du résultat en question en regardant 
comment sont faites les autres fonctions de serveur.


Bon courage.
JMarc


Re: Statistiques

2014-10-06 Par sujet Jean-Marc Lasgouttes

Le 06/10/2014 14:54, Stéphane Mourey a écrit :

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 judicieux à l'aide de quelques greps bien utilisés.


Très bonne résolution, allons-y ensemble.


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.


LyXAction et FuncCode servent à déclarer les fonctions. Le code qui 
permet d'exécuter les fonctions se trouve dans d'autres fichiers. En 
particulier:
 * BufferView pour les fonction globales à un buffer, mais qui ont 
besoin d'une interface graphique


 * Buffer pour les fonctions globales à un buffer et n'ont pas 
d'interface graphique. C'est ce fichier là que nous voulons ici.


Il n'est donc pas nécessaire de toucher à BufferView.*.


  * 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)


Exact, et il y a en plus une série de drapeaux indiquant quand cette 
fonction peut être utilisée.



  * j'aurai donc besoin d'y rajouter une ligne de code du style

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


Exact, par contre, je propose comme nom LFUN_SERVER_GET_STATISTICS (voir 
plus bas)



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


Oui (au nom près)



  * dans BufferView.cpp, il faudrait que j'ajoute
LFUN_STATISTICS_NOVIEW dans la liste des cas de la ligne 1068 à 1089,


Dans Buffer.cpp, plutôt. Il faut en effet ajouter un case dans 
Buffer::getStatus. C'est là qu'on dit si la fonction est activée ou pas. 
Ici, elle est toujours activée.



  * 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",


Oui, c'est cela.


  * 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.


Si on veut utiliser le serveur, il suffira de renvoyer la valeur comme 
résultat de la fonction.



  * 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


Exact, sauf que c'est LyX qui va s'occuper de faire le boulot.


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

  * j'ai bon ?


PPas mal pour un débutant :)


  * comment je reçois les paramètres reçus par lyxserver dans
BufferView.cpp (dans le bloc "case LFUN_STATISTICS_NOVIEW) ?


Cela va y aller tout seul. Quand une fonction arrive, elle est envoyée 
dans l'ordre à un tas de récepteur possible, jusqu'à ce qu'un d'eux dise 
qu'il peut s'en occuper.



  * comment je fais pour écrire proprement dans ~/.lyxpipe.out ?


Le mieux est de regarder le fonctions LFUN_SERVER_GET_xxx (d'où le 
changement de nom ci-dessus).


Ici, la commande magique sera
   result.setMessage(le résultat à renvoyer);
Le résultat de la fonction sera automatiquement renvoyé au bon endroit.

Il faut encore décider le format du résultat en question en regardant 
comment sont faites les autres fonctions de serveur.


Bon courage.
JMarc


Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

Le 01/10/2014 16:00, Stéphane Mourey a écrit :

Avoir ces informations statistiques dans le corps du document
automatiquement me permettrait d'avoir une idée de ma progression en
même temps que je fais ma lecture écran, et d'en disposer également sur
mes impressions sans être contraint d'interroger la fenêtre dédiée pour
reporter les informations manuellement dans le document.
Ces contraintes sont parfois fortes et peuvent amener à des
modifications de la structure d'ensemble. Par ailleurs, suivre de près
cette progression peut également être une source de (re)motivation.


Le problème si on veut l'info en direct (ce pourrait être dans la barre 
statut plutôt que dans le document, en fait) c'est qu'à chaque fois il 
faut parcourir le document entier pour mettre à jour (à moins de se 
lancer dans des choses vraiment trop complexes) et il y a donc un coût 
non négligeable en performance.


JMarc



Re: Statistiques

2014-10-03 Par sujet Abdelkader Belahcene
Je pense qu'on peut trouver un compromis,
le nombre d'utilisateurs qui comptent  les mots et les caracteres doit
etre relativement faible,  par suite je crois qu'on peut decider me mettre
à activer si necessaire,

dans ce cas alors un compteur de caracteres et meme de mot ne doit pas etre
difficile, sur les editeurs classiques, il y a bien un compteur sur les
lignes et colonnes.
Enfin pas tout a fait le meme, meme de meme style.

 On peut imaginer, 2 compteurs,   celui des caracteres, a la rencontre d'un
espace, on incrémente le nombre de mot!!
est l'utilisation justifie la procedure ???

Bonne journée



2014-10-03 9:17 GMT+01:00 Jean-Marc Lasgouttes lasgout...@lyx.org:

 Le 01/10/2014 16:00, Stéphane Mourey a écrit :

 Avoir ces informations statistiques dans le corps du document
 automatiquement me permettrait d'avoir une idée de ma progression en
 même temps que je fais ma lecture écran, et d'en disposer également sur
 mes impressions sans être contraint d'interroger la fenêtre dédiée pour
 reporter les informations manuellement dans le document.
 Ces contraintes sont parfois fortes et peuvent amener à des
 modifications de la structure d'ensemble. Par ailleurs, suivre de près
 cette progression peut également être une source de (re)motivation.


 Le problème si on veut l'info en direct (ce pourrait être dans la barre
 statut plutôt que dans le document, en fait) c'est qu'à chaque fois il faut
 parcourir le document entier pour mettre à jour (à moins de se lancer dans
 des choses vraiment trop complexes) et il y a donc un coût non négligeable
 en performance.

 JMarc




Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre l'info en direct. Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui ne 
serait visible que sur le pdf. C'est possible normalement, et le cout en 
performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, je 
ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On n'est 
jamais aussi bien servi que par soi-même :)


JMarc



Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:16, Jean-Marc Lasgouttes a écrit :

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre l'info en direct. Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui 
ne serait visible que sur le pdf. C'est possible normalement, et le 
cout en performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, 
je ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On 
n'est jamais aussi bien servi que par soi-même :)


JMarc


Disons que j'ai le niveau Grand Débutant en C++, mais que je ne 
demande qu'à avoir l'occasion de progresser... Alors, allons-y.

Merci en tout cas.

--
Blog: Impossible Exil http://impossible-exil.info
Bitmessage https://www.bitmessage.org: 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:16, Jean-Marc Lasgouttes a écrit :

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre l'info en direct. Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui 
ne serait visible que sur le pdf. C'est possible normalement, et le 
cout en performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, 
je ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On 
n'est jamais aussi bien servi que par soi-même :)


JMarc


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++.


Qu'en penses-tu ? Qu'en pense les autres ?

J'arrive juste pas à trouver .lyxpipe.out and .lyxpipe.in nulle part sur 
ma machine... Oups! Bon apparemment, je viens d'arriver à les créer 
quelque part. Je vais essayé ça quand j'ai le temsp, je vous tiens au 
courant.


--
Blog: Impossible Exil http://impossible-exil.info
Bitmessage https://www.bitmessage.org: 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:07, 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++.


Qu'en penses-tu ? Qu'en pense les autres ?
Bien essayé, mais dommage : echo LYXCMD:bro:statistics: ~/.lyxpipe.in 
m'affiche la fenêtre de statistiques!

--
Blog: Impossible Exil http://impossible-exil.info
Bitmessage https://www.bitmessage.org: 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

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


Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

Le 01/10/2014 16:00, Stéphane Mourey a écrit :

Avoir ces informations statistiques dans le corps du document
automatiquement me permettrait d'avoir une idée de ma progression en
même temps que je fais ma lecture écran, et d'en disposer également sur
mes impressions sans être contraint d'interroger la fenêtre dédiée pour
reporter les informations manuellement dans le document.
Ces contraintes sont parfois fortes et peuvent amener à des
modifications de la structure d'ensemble. Par ailleurs, suivre de près
cette progression peut également être une source de (re)motivation.


Le problème si on veut l'info en direct (ce pourrait être dans la barre 
statut plutôt que dans le document, en fait) c'est qu'à chaque fois il 
faut parcourir le document entier pour mettre à jour (à moins de se 
lancer dans des choses vraiment trop complexes) et il y a donc un coût 
non négligeable en performance.


JMarc



Re: Statistiques

2014-10-03 Par sujet Abdelkader Belahcene
Je pense qu'on peut trouver un compromis,
le nombre d'utilisateurs qui "comptent  les mots et les caracteres" doit
etre relativement faible,  par suite je crois qu'on peut decider me mettre
à activer si necessaire,

dans ce cas alors un compteur de caracteres et meme de mot ne doit pas etre
difficile, sur les editeurs classiques, il y a bien un compteur sur les
lignes et colonnes.
Enfin pas tout a fait le meme, meme de meme style.

 On peut imaginer, 2 compteurs,   celui des caracteres, a la rencontre d'un
espace, on incrémente le nombre de mot!!
est l'utilisation justifie la procedure ???

Bonne journée



2014-10-03 9:17 GMT+01:00 Jean-Marc Lasgouttes :

> Le 01/10/2014 16:00, Stéphane Mourey a écrit :
>
>> Avoir ces informations statistiques dans le corps du document
>> automatiquement me permettrait d'avoir une idée de ma progression en
>> même temps que je fais ma lecture écran, et d'en disposer également sur
>> mes impressions sans être contraint d'interroger la fenêtre dédiée pour
>> reporter les informations manuellement dans le document.
>> Ces contraintes sont parfois fortes et peuvent amener à des
>> modifications de la structure d'ensemble. Par ailleurs, suivre de près
>> cette progression peut également être une source de (re)motivation.
>>
>
> Le problème si on veut l'info en direct (ce pourrait être dans la barre
> statut plutôt que dans le document, en fait) c'est qu'à chaque fois il faut
> parcourir le document entier pour mettre à jour (à moins de se lancer dans
> des choses vraiment trop complexes) et il y a donc un coût non négligeable
> en performance.
>
> JMarc
>
>


Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre "l'info en direct". Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui ne 
serait visible que sur le pdf. C'est possible normalement, et le cout en 
performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, je 
ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On n'est 
jamais aussi bien servi que par soi-même :)


JMarc



Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:16, Jean-Marc Lasgouttes a écrit :

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre "l'info en direct". Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui 
ne serait visible que sur le pdf. C'est possible normalement, et le 
cout en performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, 
je ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On 
n'est jamais aussi bien servi que par soi-même :)


JMarc


Disons que j'ai le niveau "Grand Débutant" en C++, mais que je ne 
demande qu'à avoir l'occasion de progresser... Alors, allons-y.

Merci en tout cas.

--
Blog: Impossible Exil 
Bitmessage : 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:16, Jean-Marc Lasgouttes a écrit :

Le 03/10/2014 14:07, Stéphane Mourey a écrit :

Je ne pensais pas mettre "l'info en direct". Ce serait sans doute mieux
que d'avoir à la rechercher dans un menu, mais je souhaiterai l'avoir
dans le document produit. Il n'y a donc pas lieu de parcourir tout le
document en permanence, et cela n'aurait donc qu'un impact minime en
terme de performance. L'une des intérêts est également que l'information
soit présente dans des impressions ou des fichiers diffusés à des tiers.
Et lorsque j'écrivais suivre de près, ma méthode de travail suppose de
générer fréquemment un PDF, soit pour relecture à l'écran, soit pour
impression.


D'accord, j'avais mal compris. Il s'agirait donc de quelque chose qui 
ne serait visible que sur le pdf. C'est possible normalement, et le 
cout en performance serait faible.


Le mieux serait d'ouvrir un ticket sur www.lyx.org/trac. Par contre, 
je ne peut pas trop garantir que cela aura un effet rapide...


Sinon, si tu fais un peu de C++, je peux essayer de te guider. On 
n'est jamais aussi bien servi que par soi-même :)


JMarc


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++.


Qu'en penses-tu ? Qu'en pense les autres ?

J'arrive juste pas à trouver .lyxpipe.out and .lyxpipe.in nulle part sur 
ma machine... Oups! Bon apparemment, je viens d'arriver à les créer 
quelque part. Je vais essayé ça quand j'ai le temsp, je vous tiens au 
courant.


--
Blog: Impossible Exil 
Bitmessage : 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Stéphane Mourey

Le 03/10/2014 14:07, 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++.


Qu'en penses-tu ? Qu'en pense les autres ?
Bien essayé, mais dommage : echo "LYXCMD:bro:statistics:" >~/.lyxpipe.in 
m'affiche la fenêtre de statistiques!

--
Blog: Impossible Exil 
Bitmessage : 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-03 Par sujet Jean-Marc Lasgouttes

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


Re: Statistiques

2014-10-01 Par sujet Stéphane Mourey
Oui, il semble bien que LyX fasse son compte comme ça, en prenant le 
nombre de mots et de signes du document LyX, en ignorant complètement le 
code LaTeX, alors que la solution basée sur texcount fait son calcul à 
partir du LaTeX produit et semble compter des caractères et non des 
signes excluant la ponctuation.


Pour ma part, j'utilise LyX pour des textes littéraires. J'ai besoin du 
nombre de signes avec et sans espaces, ainsi que du nombre de mots, mais 
en excluant les en-têtes et pieds de page. Je n'utilise pas 
d'instructions LaTeX qui ajoute du texte à comptabiliser.



Le 01/10/2014 11:58, Abdelkader Belahcene a écrit :

bonjour,
juste une remarque, lyx calcule le nombre de mots du doc lyx je 
suppose,  ce qui est different du

nombre  de mot du doc  latex.
ou peut etre je me trompe, les mots du langage (lyx ou latex)  ne sont 
pas comptabilisés ???


merci pour les details
bonjour

2014-09-30 22:03 GMT+01:00 Stéphane Mourey 
stephane.mou...@impossible-exil.info 
mailto:stephane.mou...@impossible-exil.info:


Bonjour,

Je suis nouveau sur cette liste, mais il y a longtemps maintenant
que j'utilise LyX avec joie.

Mais voilà, j'ai une question : je ne suis pas très satisfait des
outils que j'ai pu trouver sur le web qui permette de produire des
statistiques sur le nombre de mots et/ou le nombre de signes dans
un document (basé sur texcount par exemple), les résultats étant
souvent assez éloignés de ce à quoi je m'attendais. Par contre,
les données fournies par les statistiques de LyX dans le menu
outils répondent parfaitement à mes besoins. Mais voilà ces
statistiques s'affichent à la demande dans une fenêtre et je
voudrais les voir apparaître automatiquement dans le document produit.

Y'a-t-il moyen de faire cela aujourd'hui ? Si oui, comment ? Si
non, cela vaut-il la peine de le demander aux développeurs de LyX
de développer cette nouvelle fonctionnalité ?

Cordialement,

Stéphane Mourey
-- 
Blog: Impossible Exil http://impossible-exil.info






--
Blog: Impossible Exil http://impossible-exil.info
Bitmessage https://www.bitmessage.org: 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-01 Par sujet Jean-Marc Lasgouttes

Le 01/10/2014 12:07, Stéphane Mourey a écrit :

Oui, il semble bien que LyX fasse son compte comme ça, en prenant le
nombre de mots et de signes du document LyX, en ignorant complètement le
code LaTeX, alors que la solution basée sur texcount fait son calcul à
partir du LaTeX produit et semble compter des caractères et non des
signes excluant la ponctuation.


Je confirme que LyX ne s'intéresse pour le comptage qu'aux mots qu'il 
voit, pas à la sortie en HTML/LaTeX/texte...


Par exemple, s'il y a un entête Chapitre 1, chapitre ne comptera pas 
comme un mot. C'est le contenu réel qui est mesuré.


JMarc


Re: Statistiques

2014-10-01 Par sujet Stéphane Mourey

Le 01/10/2014 15:40, Jean-Marc Lasgouttes a écrit :

Le 30/09/2014 23:03, Stéphane Mourey a écrit :

Mais voilà, j'ai une question : je ne suis pas très satisfait des outils
que j'ai pu trouver sur le web qui permette de produire des statistiques
sur le nombre de mots et/ou le nombre de signes dans un document (basé
sur texcount par exemple), les résultats étant souvent assez éloignés de
ce à quoi je m'attendais. Par contre, les données fournies par les
statistiques de LyX dans le menu outils répondent parfaitement à mes
besoins. Mais voilà ces statistiques s'affichent à la demande dans une
fenêtre et je voudrais les voir apparaître automatiquement dans le
document produit.

Y'a-t-il moyen de faire cela aujourd'hui ? Si oui, comment ? Si non,
cela vaut-il la peine de le demander aux développeurs de LyX de
développer cette nouvelle fonctionnalité ?


Ce n'est pas possible pour l'instant, la fonction affiche directement 
un dialogue. En théorie, on pourrait utiliser un InsetInfo, qui est  
ce qui permet dans les documentations par exemple d'afficher l'entrée 
de menu d'une fonction donnée ou son icône.


C'est quand même du boulot (par trop,  je l'admets) pour une 
fonctionnalité qui me semble un peu particulière, non ? Quel est le 
cas d'utilisation typique ?


JMarc

Je peux difficilement vous parler d'un cas d'utilisation typique, je 
peux vous parler de mon cas d'utilisation à moi. Il m'arrive de produire 
des écrits littéraires avec un objectif chiffré, parfois en page, 
parfois en mots, parfois en signes espaces compris, parfois en signes 
sans espace selon des contraintes imposées (concours littéraire, revues, 
éditeurs...). J'écris dans LyX, mais je relis le PDF, qui consiste un 
document de travail à part entière, une sorte de bilan d'étape. Il 
m'arrive de faire des allers-retours entre le papier (pdf imprimé avec 
plein de blanc pour des corrections et des ajouts manuscrits) et 
l'écran, car je ne travaille pas toujours devant mon PC.
Avoir ces informations statistiques dans le corps du document 
automatiquement me permettrait d'avoir une idée de ma progression en 
même temps que je fais ma lecture écran, et d'en disposer également sur 
mes impressions sans être contraint d'interroger la fenêtre dédiée pour 
reporter les informations manuellement dans le document.
Ces contraintes sont parfois fortes et peuvent amener à des 
modifications de la structure d'ensemble. Par ailleurs, suivre de près 
cette progression peut également être une source de (re)motivation.


Toutefois, il me semble que mon besoin n'est pas isolé, dans la mesure 
où des utilisateurs de LaTeX ont cherché à le résoudre avec texcount : 
une solution existe déjà bel et bien, donc le besoin existe également de 
part le monde des utilisateurs de LaTeX. Simplement cette solution me 
semble inappropriée à un utilisateur de LyX et inexacte dans l'absolu 
par ailleurs.


Enfin, j'ajoute que j'ai certaines compétences en développement et que 
je veux bien essayer de faire le boulot (si ce n'est pas trop) pour 
cette fonctionnalité si on me guide quelque peu...InsetInfo? c'est quoi 
donc ?


Stéphane Mourey

--
Blog: Impossible Exil http://impossible-exil.info
Bitmessage https://www.bitmessage.org: 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-01 Par sujet Stéphane Mourey
Oui, il semble bien que LyX fasse son compte comme ça, en prenant le 
nombre de mots et de signes du document LyX, en ignorant complètement le 
code LaTeX, alors que la solution basée sur texcount fait son calcul à 
partir du LaTeX produit et semble compter des caractères et non des 
signes excluant la ponctuation.


Pour ma part, j'utilise LyX pour des textes littéraires. J'ai besoin du 
nombre de signes avec et sans espaces, ainsi que du nombre de mots, mais 
en excluant les en-têtes et pieds de page. Je n'utilise pas 
d'instructions LaTeX qui ajoute du texte à comptabiliser.



Le 01/10/2014 11:58, Abdelkader Belahcene a écrit :

bonjour,
juste une remarque, lyx calcule le nombre de mots du doc lyx je 
suppose,  ce qui est different du

nombre  de mot du doc  latex.
ou peut etre je me trompe, les mots du langage (lyx ou latex)  ne sont 
pas comptabilisés ???


merci pour les details
bonjour

2014-09-30 22:03 GMT+01:00 Stéphane Mourey 
>:


Bonjour,

Je suis nouveau sur cette liste, mais il y a longtemps maintenant
que j'utilise LyX avec joie.

Mais voilà, j'ai une question : je ne suis pas très satisfait des
outils que j'ai pu trouver sur le web qui permette de produire des
statistiques sur le nombre de mots et/ou le nombre de signes dans
un document (basé sur texcount par exemple), les résultats étant
souvent assez éloignés de ce à quoi je m'attendais. Par contre,
les données fournies par les statistiques de LyX dans le menu
outils répondent parfaitement à mes besoins. Mais voilà ces
statistiques s'affichent à la demande dans une fenêtre et je
voudrais les voir apparaître automatiquement dans le document produit.

Y'a-t-il moyen de faire cela aujourd'hui ? Si oui, comment ? Si
non, cela vaut-il la peine de le demander aux développeurs de LyX
de développer cette nouvelle fonctionnalité ?

Cordialement,

Stéphane Mourey
-- 
Blog: Impossible Exil 






--
Blog: Impossible Exil 
Bitmessage : 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor


Re: Statistiques

2014-10-01 Par sujet Jean-Marc Lasgouttes

Le 01/10/2014 12:07, Stéphane Mourey a écrit :

Oui, il semble bien que LyX fasse son compte comme ça, en prenant le
nombre de mots et de signes du document LyX, en ignorant complètement le
code LaTeX, alors que la solution basée sur texcount fait son calcul à
partir du LaTeX produit et semble compter des caractères et non des
signes excluant la ponctuation.


Je confirme que LyX ne s'intéresse pour le comptage qu'aux mots qu'il 
voit, pas à la sortie en HTML/LaTeX/texte...


Par exemple, s'il y a un entête "Chapitre 1", chapitre ne comptera pas 
comme un mot. C'est le contenu réel qui est mesuré.


JMarc


Re: Statistiques

2014-10-01 Par sujet Stéphane Mourey

Le 01/10/2014 15:40, Jean-Marc Lasgouttes a écrit :

Le 30/09/2014 23:03, Stéphane Mourey a écrit :

Mais voilà, j'ai une question : je ne suis pas très satisfait des outils
que j'ai pu trouver sur le web qui permette de produire des statistiques
sur le nombre de mots et/ou le nombre de signes dans un document (basé
sur texcount par exemple), les résultats étant souvent assez éloignés de
ce à quoi je m'attendais. Par contre, les données fournies par les
statistiques de LyX dans le menu outils répondent parfaitement à mes
besoins. Mais voilà ces statistiques s'affichent à la demande dans une
fenêtre et je voudrais les voir apparaître automatiquement dans le
document produit.

Y'a-t-il moyen de faire cela aujourd'hui ? Si oui, comment ? Si non,
cela vaut-il la peine de le demander aux développeurs de LyX de
développer cette nouvelle fonctionnalité ?


Ce n'est pas possible pour l'instant, la fonction affiche directement 
un dialogue. En théorie, on pourrait utiliser un InsetInfo, qui est  
ce qui permet dans les documentations par exemple d'afficher l'entrée 
de menu d'une fonction donnée ou son icône.


C'est quand même du boulot (par trop,  je l'admets) pour une 
fonctionnalité qui me semble un peu particulière, non ? Quel est le 
cas d'utilisation typique ?


JMarc

Je peux difficilement vous parler d'un cas d'utilisation typique, je 
peux vous parler de mon cas d'utilisation à moi. Il m'arrive de produire 
des écrits littéraires avec un objectif chiffré, parfois en page, 
parfois en mots, parfois en signes espaces compris, parfois en signes 
sans espace selon des contraintes imposées (concours littéraire, revues, 
éditeurs...). J'écris dans LyX, mais je relis le PDF, qui consiste un 
document de travail à part entière, une sorte de bilan d'étape. Il 
m'arrive de faire des allers-retours entre le papier (pdf imprimé avec 
plein de blanc pour des corrections et des ajouts manuscrits) et 
l'écran, car je ne travaille pas toujours devant mon PC.
Avoir ces informations statistiques dans le corps du document 
automatiquement me permettrait d'avoir une idée de ma progression en 
même temps que je fais ma lecture écran, et d'en disposer également sur 
mes impressions sans être contraint d'interroger la fenêtre dédiée pour 
reporter les informations manuellement dans le document.
Ces contraintes sont parfois fortes et peuvent amener à des 
modifications de la structure d'ensemble. Par ailleurs, suivre de près 
cette progression peut également être une source de (re)motivation.


Toutefois, il me semble que mon besoin n'est pas isolé, dans la mesure 
où des utilisateurs de LaTeX ont cherché à le résoudre avec texcount : 
une solution existe déjà bel et bien, donc le besoin existe également de 
part le monde des utilisateurs de LaTeX. Simplement cette solution me 
semble inappropriée à un utilisateur de LyX et inexacte dans l'absolu 
par ailleurs.


Enfin, j'ajoute que j'ai certaines compétences en développement et que 
je veux bien essayer de faire le boulot (si ce n'est pas trop) pour 
cette fonctionnalité si on me guide quelque peu...InsetInfo? c'est quoi 
donc ?


Stéphane Mourey

--
Blog: Impossible Exil 
Bitmessage : 
BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor