OK
AJAX error!

Les forumsGrammalecteExtension pluma (gedit 2)

Extension pluma (gedit 2)

Bonjour,

Je souhaiterai faire une extension grammalecte pour l'éditeur de texte pluma (fork de gedit 2) que j'utilise sur mes ordinateurs. Comme je découvre seulement ce projet (dont j'ai déjà entendu parler sur la liste de diffusion bépo), je suis pour le moment surtout à la recherche d'informations.
Pluma accepte des extension en Python, mais visiblement pas en Python 3. Je pensais donc à l'origine connecter directement par Python, mais je pense que je vais plutôt m'orienter vers la version serveur de grammalecte.

* Afin de bien comprendre le fonctionnement du système, j'ai essayé de regarder le code source, mais depuis chez moi, c'est très lent, et depuis d'autres ordinateurs, cela part carrément en « time out ». Est-ce normal ? Y a-t-il actuellement un problème de serveur ? Y a-t-il un miroir ?

* Sinon, je pense avoir une idée assez précise du fonctionnement du serveur, mais à tout hasard, existe-t-il une documentation qui m'expliquerait précisément son mode d'emploi ?

* Comme j'écris beaucoup en LaTeX, je me demandais également à quoi servait l'option « latex » de grammalecte. J'ai fait quelques essais avec ou sans l'option, mais n'ai pas vu de différence.

* Enfin, je n'ai pas trouvé d'option, ni dans l'interface en ligne de commande, ni dans le serveur, pour choisir parmi les 4 dictionnaires proposés.

Je pose ces 4 questions dans le même fil, car elle sont liées, mais n'hésitez pas à me dire s'il faut les séparer…

Merci !
le 13 octobre 2017 à 13:48
Bonjour,

* Afin de bien comprendre le fonctionnement du système, j'ai essayé de regarder le code source, mais depuis chez moi, c'est très lent, et depuis d'autres ordinateurs, cela part carrément en « time out ». Est-ce normal ? Y a-t-il actuellement un problème de serveur ? Y a-t-il un miroir ?


La vitesse du correcteur est la même sur LibreOffice, en interface de ligne de commandes ou sur le serveur. C’est le même moteur. Peut-être y a-t-il un problème spécifiquement sur le serveur ? J’avoue ne me servir que de cli.py et de LibreOffice. Mais je ne constate pas de lenteur particulière chez moi.
Seule la version JavaScript est plus rapide (environ 3 fois) mais consomme plus de mémoire (3 fois plus, semble-t-il).

Malheureusement, le serveur est la branche maigre de l’écosystème. Je ne m’en sers pas et ne connais personne qui le fasse. Je ne m’en suis jamais beaucoup occupé de ce fait. Mais il devrait fonctionner correctement (j’espère).
Pour la doc, il n’y a guère que ce qui est écrit lorsque vous allez sur localhost:8080.

Vous devriez regarder ce que fait le plugin Vim qui se sert de cli.py (qui est plus testé, plus utilisé et mieux auto-documenté).

L’option LaTeX n’est guère développée non plus, attendu que je ne m’en sers pas non plus et que personne ne m’a fait de retour sur ce point. L’option consiste seulement à purger certains éléments (balises) du texte passé en examen. Il faudrait ouvrir un sujet pour développer cette option.

* Enfin, je n'ai pas trouvé d'option, ni dans l'interface en ligne de commande, ni dans le serveur, pour choisir parmi les 4 dictionnaires proposés.


Tout simplement parce qu’il n’y en a pas. Ces 4 dictionnaires ne concernent que Hunspell. Pour l’instant. Le correcteur grammatical lui-même utilise un seul dictionnaire qui inclut tout.
le 13 octobre 2017 à 14:24
Merci pour les infos. En fait, je me suis mal exprimé. Quand je parlais de serveur lent, je parlais du serveur à l'adresse :
code.grammalecte.net…

Cette page met un temps fou à répondre…

Pour LaTeX, je jetterai un coup d'œil au code source à l'occasion (si j'y arrive, du coup) pour voir si je peux proposer une amélioration.
le 13 octobre 2017 à 16:05
Ah oui, navré pour la confusion. J’avais bien constaté un ralentissement depuis quelque temps, mais sans m’en inquiéter.
Je viens de résoudre le problème.

Pour LaTeX, allez dans gc_lang/fr/rules.grx, et cherchez “/latex” pour trouver les 3 seules lignes existantes. Elles suppriment simplement tout texte correspondant aux motifs.
le 13 octobre 2017 à 16:31
Je viens de passer grammalecte sur un livre que je suis en train de faire imprimer… Et je me dis que j'aurais quand même pu le faire avant de valider le fichier chez l'imprimeur ! Bon, tant pis, ça sera pour la prochaine fois. En tous cas, merci beaucoup pour ce programme qui m'a permis de détecter un sacré paquet de fautes !

Bref, pour en revenir au sujet initial, mon fichier est écrit en LaTeX. Or, que je mette ou non l'option latex (j'utilise la ligne de commande avec -on latex), aucune commande n'est filtrée. Par exemple, tous les \chapter{} sont reconnus faux. Alors que si j'ai bien compris les règles décrites dans le fichier, ils devraient être ignorés.

Autre point : comme j'essaie d'utiliser l'orthographe réformée, je ne mets pas d'accent sur l'adjectif sûr, sauf au masculin singulier. Du coup, j'ai désactivé les règles conf_sûre_surs_de et conf_sûr_que. Le problème, c'est que j'ai peur que du coup, cela ne détecte pas l'utilisation de sur à la place de sûr (au masculin singulier). Ne faudrait-il pas créer une règle spécifique pour la version masculin singulier de l'adjectif, afin qu'on puisse garder uniquement celle-ci active ?

Merci en tous cas pour tous le travail fait.
le 16 octobre 2017 à 19:26
À mon avis, il y a confusion sur qui fait quoi.

Le processeur de texte interne à Grammalecte ne s’occupe que de nettoyer le texte en interne pour le correcteur grammatical. Ça clarifie le texte. Mais ça ne change rien pour le correcteur orthographique (qui fonctionne différemment). Du coup, “chapter” sera toujours étiqueté faux par celui-ci.

Pour changer ça, il faudrait modifier le tokeniseur pour gérer les balises LaTeX.

L’option LaTeX, c’est un truc qui j’ai écrit à l’arrache en consultant la doc sur la syntaxe LaTeX, mais je ne m’en suis jamais vraiment occupé.
le 16 octobre 2017 à 20:00
Bonjour,

Juste pour vous tenir informé : j'ai bien avancé sur le greffon pour pluma. J'ai aujourd'hui quelque chose de fonctionnel (même si ça ne fait pour le moment pas grand-chose, c'est la version 0.1). Je suppose que ça pourra, en plus, servir de modèle si certains veulent faire une version pour gedit.

On peut trouver le plugin ici :
github.com…

J'ai également ajouté l'installation du plugin et du Grammalecte autonome (CLI, serveur, etc.) dans mon overlay Gentoo (cela permet aux utilisateurs de Gentoo de l'installer facilement) :
github.com…

Je vais bien entendu créer de nouvelles version du plugin avec un peu plus d'IHM (je vais essayer de me rapprocher de ce qui est sous OpenOffice), j'espère dans les jours qui viennent.
le 24 octobre 2017 à 09:41
OK, merci. Dès que vous jugerez que c’est assez fonctionnel, dites-le-moi, j’ajouterai un lien sur le site web du site de Grammalecte.
le 24 octobre 2017 à 10:40
Je pense que la version 0.1 est déjà un minimum fonctionnelle puisqu'elle souligne en temps réel les fautes d'orthographe et grammaire. Cela peut apporter un peu d'aide lors de la frappe. De plus, je pense que la documentation est suffisante pour que les utilisateurs puissent déjà l'installer et l'utiliser.

Est-ce que cela suffit pour mériter un lien ? Je ne sais pas, je vous laisse juge…
le 24 octobre 2017 à 11:30
Pas de problème. Comme je l’ai dit, c’est à vous de juger. Je viens d’ajouter le lien.
le 24 octobre 2017 à 12:12
Merci.
le 24 octobre 2017 à 12:46
Juste pour vous informer que j'ai fait pas mal de modifications sur le greffon qui est maintenant relativement abouti. Il ne manque guère plus que la correction interactive, mais je ne pense pas m'y atteler dans les jours qui viennent.

Par rapport au lien, j'ai vu que vous aviez utilisé un icone quelconque. Sur cette image, il y a un bel icone de l'application :
ubuntu-mate.community…

Sinon, est-ce qu'il sera un jour envisageable d'avoir des suggestions pour les fautes d'orthographe, ou est-ce complètement en dehors du périmètre de Grammalecte ?
le 11 novembre 2017 à 17:38
Pour l’icône, c’est aussi une icône générique, m’avait-il semblé.
Pluma n’a pas de site web dédié et je n’ai pas vu l’image dans les sources. Peut-être ai-je mal cherché ?
Où peut-on la trouver ?

Sinon, est-ce qu'il sera un jour envisageable d'avoir des suggestions pour les fautes d'orthographe, ou est-ce complètement en dehors du périmètre de Grammalecte ?


Le version 0.6 apporte justement cette nouveauté, encore en bêta. C’est fonctionnel, ça ne prend que quelques instants pour la plupart des mots, mais j’ai découvert récemment que c’était très lent sur certains mots particuliers. Alors, ces derniers jours, j’ai amélioré ça.
Dans certains cas, l’algo pouvait procéder à des millions de permutations, suppressions, ajouts de lettres, à cause de certains modifs qui se répétaient et entraînaient le processus dans des appels récursifs innombrables (mais pas infinis). Bref, il fallait parfois plusieurs minutes pour arriver au bout de la recherche.
Mais j’ai réduit drastiquement les potentielles explosions combinatoires, et ça va beaucoup vite, surtout pour les cas qui étaient problématiques auparavant (100 fois plus vite, voire 1000 fois plus vite). C’est probablement encore améliorable.

Pour utiliser la fonction de suggestion, c’est simple. Vous récupérez le dictionnaire utilisé par le correcteur grammatical, avec :

oDict = grammalecte.fr.getDictionary()


Puis, il suffit de demander les suggestions avec l’appel :

oDict.suggest(sWord)


qui renvoie une liste de suggestions.

J’ai publié une mise à jour hier pour les extensions pour Firefox et Chrome qui utilisent cette fonction massivement.
Mais je ne l’ai pas fait encore pour Python, puisque LibreOffice utilise toujours Hunspell pour ça.

Je vais faire une nouvelle publication bientôt, si vous le jugez utile.
Mais vous pouvez déjà essayer avec la version 0.6.
le 11 novembre 2017 à 18:09
Bonjour,

Pour l'icone, on peut trouver l'officiel sur le Github de Pluma :
raw.githubusercontent.com…

Par rapport aux suggestions, c'est super, ça va me permettre de me passer totalement de mon correcteur orthographique habituel. Par contre, vu que pluma fonctionne avec Python 2 et Grammalecte avec Python 3, je suis obligé de passer par la ligne de commande, qui n'a pas d'option pour ajouter les suggestions aux résultats.

Je vais essayer de travailler sur un patch aujourd'hui pour ajouter cette option et je le posterai ici (je n'ai pas installé Fossil, donc ça sera un simple diff/patch, si cela vous convient).
le 12 novembre 2017 à 10:34
Oui, j’avais vu l’icône sur GitHub, mais elle est trop petite. Et ce n’est pas celle que vous voyez dans la boîte de dialogue de Pluma.

En fait, cette icône est probablement celle de Gedit : blog.desdelinux.net… qui, me semble-t-il, fait partie d’un thème plus générique (pour KDE je dirais).
Il faut trouver une version assez grande.

OK, pour le patch.
le 12 novembre 2017 à 11:08
En fait, après investigation, l'icone affiché dans la boite de dialogue vient du thème installé au niveau du gestionnaire de bureau. C'est celui appelé : accessories-text-editor. Il n'y a pas d'icone spécifique à Pluma.
Il y a sur Wikimedia un exemple de cet icone sous format SVG :
commons.wikimedia.org…

J'ai terminé le patch, je vais essayer de le tester un peu plus avant que ma femme ne m'appelle parce que je passe trop de temps sur l'ordinateur… ;-)
le 12 novembre 2017 à 12:02
Voici le patch. J'ai ajouté deux options à la ligne de commande :
-as qui ajoute les suggestions lorsqu'on utilise le client en mode fichier ;
-ls qui liste les suggestions pour un mot donné (et ne fait que ça).

La première option est très pratique pour avoir les correction d'un fichier, mais elle ralenti fortement l'analyse du fichier, c'est pour cela que j'ai fait la deuxième, pour avoir les suggestions mot par mot.

J'ai autorisé l'option -j pour -ls de manière à ce que ce soit plus simple à analyser par un programme externe.

EDIT: Hum, ça ne marche pas, l'éditeur ici supprime les espaces, ce qui est embêtant pour un fichier Python. Il vaut mieux que je joigne le fichier de diff autrement.
le 12 novembre 2017 à 14:55
Il y a Pastebin ou mon e-mail sur la page Contact.
le 12 novembre 2017 à 15:19
Envoi effectué. Sinon, j'ai remarqué que les suggestions n'étaient pas toujours les même pour une même erreur.
le 12 novembre 2017 à 16:13
Merci. Patch intégré : code.grammalecte.net…
J’ai seulement renommé le nom des options pour quelque chose qui me paraît moins ambigu.

En ce qui concerne les suggestions, il peut en effet y avoir des variations dans certains cas, notamment lorsque les distances des suggestions avec le mot originel sont égales. En effet, le nombre de suggestions est trié selon la distance, mais toujours tronqué. Comme les types <set> dans lesquels sont stockés les mots à distance égale ne sont pas triés/fixes en Python, il peut résulter des divergences au moment de couper la longue liste des suggestions possibles.
Mais ce n’est plus le cas avec Python 3.6 et c’est aussi moins vrai avec la nouvelle méthode.
le 12 novembre 2017 à 19:40
Préversion à tester : www.dicollecte.org…
le 12 novembre 2017 à 19:42
Très bien, merci…
le 12 novembre 2017 à 21:21

Notification par e-mail    0