Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Paquet(s) gérant le pliage et le dépliage de listes dans un tampon.

2 views
Skip to first unread message

Valrik

unread,
Dec 21, 2021, 12:35:38 PM12/21/21
to

Déjà paru dans :
Newsgroups: fr.comp.lang.lisp
Date: Tue, 21 Dec 2021 01:24:27 +0100 (17 hours, 5 minutes, 53 seconds ago)


Bonjour à tous,

je souhaiterais développer une petite application permettant l'écoute
des antennes de Radio France.

je dispose pour cela d'une clé afin de me connecter sur leur serveur
GRAPHQL grâce à une API. j'ai effectué des essais, et j'ai pu afficher
quelques informations telles que la liste des antennes, l'adresse des
flux et une présentation pour chacune.

Mon premier reflex a été d'utiliser org-mode et cela donne un résultat,
moyennant quelques « regex », tout à fait convenable. Voilà ce que cela
donne :

* France Inter
- description : Joyeuse, savante et populaire, France Inter est la
radio généraliste de service public
- liveStream : https://icecast.radiofrance.fr/franceinter-midfi.mp3?id=radiofrance
* franceinfo

* France Bleu
- description:
- liveStream : null


Mais je me demande s'il n'existe pas un mode équivalent plus
générique. J'ai effectué une recheche sur Internet, mais je n'ai pas
trouvé, pour l'instant, d'explication claire… Enfin pour moi ;-)

Merci pour votre attention.

yves

unread,
Dec 21, 2021, 1:37:17 PM12/21/21
to
Valrik <nos...@valrik.invalid> writes:

> Mais je me demande s'il n'existe pas un mode équivalent plus
> générique. J'ai effectué une recheche sur Internet, mais je n'ai pas
> trouvé, pour l'instant, d'explication claire… Enfin pour moi ;-)

Peux-tu mieux définir ce qui te pose problème avec org-mode ?

Mode plus générique, pour qui ?

Par exemple, je pense que beaucoup d'utilisateurs d'emacs sont familiers
d'org-mode (et l'apprécient beaucoup).

Damien Wyart

unread,
Dec 27, 2021, 3:51:34 AM12/27/21
to
* Valrik <nos...@valrik.invalid> in fr.comp.applications.emacs:
> Bonjour à tous,

> je souhaiterais développer une petite application permettant l'écoute
> des antennes de Radio France.

> je dispose pour cela d'une clé afin de me connecter sur leur serveur
> GRAPHQL grâce à une API. j'ai effectué des essais, et j'ai pu afficher
> quelques informations telles que la liste des antennes, l'adresse des
> flux et une présentation pour chacune.

> Mon premier reflex a été d'utiliser org-mode et cela donne un résultat,
> moyennant quelques « regex », tout à fait convenable. Voilà ce que cela
> donne :

> [...]

> Mais je me demande s'il n'existe pas un mode équivalent plus
> générique. J'ai effectué une recheche sur Internet, mais je n'ai pas
> trouvé, pour l'instant, d'explication claire
> Enfin pour moi ;-)

Voici quelques pistes qui me viennent en tête :

Pour la partie écoute radio, peut-être s'inspirer de :

https://github.com/olavfosse/eradio
https://git.savannah.gnu.org/cgit/emms.git/tree/emms-streams.el

Pour le fait de plier et déplier, il existe Hideshow (plutôt pour du
code) et Outline (plutôt pour du texte) :

https://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html
https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html

Yafolding était également réputé mais ne semble plus vraiment évoluer :

https://github.com/zenozeng/yafolding.el

Si les réponses de l'API sont en Json, cela vaut sans doute la peine
d'essayer ces trois modes afin d'évaluer leur comportement. On peut
aussi tester une conversion en Yaml (par exemple avec l'outil yq,
https://mikefarah.gitbook.io/yq/usage/convert), mais il y aura
sans doute besoin d'ajustements manuels :
https://github.com/yoshiki/yaml-mode/issues/25

--
DW

yves

unread,
Dec 27, 2021, 5:37:30 AM12/27/21
to
Valrik <nos...@valrik.invalid> writes:

> Mais je me demande s'il n'existe pas un mode équivalent plus
> générique. J'ai effectué une recheche sur Internet, mais je n'ai pas
> trouvé, pour l'instant, d'explication claire… Enfin pour moi ;-)

Peux-tu mieux définir ce qui te pose problème avec org-mode ?

Mode plus générique, pour qui ?

Par exemple, je pense que beaucoup d'utilisateurs d'emacs sont familiers
d'org-mode (et l'apprécient beaucoup).

Désolé pour les non-utilisateurs de Free, cet article est un doublon pour
eux.

@+
--
Yves

Valrik

unread,
Dec 27, 2021, 5:36:35 PM12/27/21
to
Bonjour Damien,

Merci pour cette réponse très fournie. Je vais investiguer de ce pas… Et
essayer de faire un choix pertinent ! :-)

Valrik

unread,
Dec 27, 2021, 5:38:33 PM12/27/21
to
Hello Yves, merci pour ta réponse.

> Peux-tu mieux définir ce qui te pose problème avec org-mode ?
>
> Mode plus générique, pour qui ?

Ben en fait, je tâtonne un peu… je voulais juste connaître toutes les
possibilités offertes et me lancer d'emblée avec la bonne technologie.
Le serveur semble répondre en « Json » (j'aurais du le préciser), mais
je ne connais pas bien cette technologie. Je me demandais donc si un
paquet était plus adapté pour cette situation.


> Par exemple, je pense que beaucoup d'utilisateurs d'emacs sont familiers
> d'org-mode (et l'apprécient beaucoup).

Effectivement et, moi-même, je l'utilise beaucoup. Ce serait donc un
choix sans doute pertinent.


Sinon, il y a Damien qui propose d'autres choix : à creuser donc.

Damien Wyart

unread,
Dec 28, 2021, 2:02:30 AM12/28/21
to
> > Pour le fait de plier et déplier, il existe Hideshow (plutôt pour du
> > code) et Outline (plutôt pour du texte) :
> > https://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html
> > https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html

> > Yafolding était également réputé mais ne semble plus vraiment évoluer :
> > https://github.com/zenozeng/yafolding.el

> > Si les réponses de l'API sont en Json, cela vaut sans doute la peine
> > d'essayer ces trois modes afin d'évaluer leur comportement. [...]

* Valrik <nos...@valrik.invalid> in fr.comp.applications.emacs:
> Bonjour Damien,

> Merci pour cette réponse très fournie. Je vais investiguer de ce pas. Et
> essayer de faire un choix pertinent ! :-)

Bonjour,

Entre temps j'ai également repensé à Origami, qui devrait sans doute
être mieux adapté à du contenu au format JSON.

https://github.com/gregsexton/origami.el

--
DW

Valrik

unread,
Dec 28, 2021, 6:12:58 PM12/28/21
to
Damien Wyart <damien...@free.fr> writes:
>
> Entre temps j'ai également repensé à Origami, qui devrait sans doute
> être mieux adapté à du contenu au format JSON.
>
> https://github.com/gregsexton/origami.el

J'ai regardé sur Github. Cela semble très complet et adaptable. Par
contre, il n'y a pas de support natif annoncé de « Json ». Mais le
nombre de fonctions est conséquent et je devrais pouvoir adapter le
code. Enfin je l'espère, car je suis un codeur Elisp du dimanche. ;-)

Et puis, il y a un effet de bord : c'est intéressant au sujet de mon
travail avec Python et Elisp !

Merci encore pour tes utiles renseignements. :-)



Damien Wyart

unread,
Dec 29, 2021, 2:47:57 AM12/29/21
to
> > Entre temps j'ai également repensé à Origami, qui devrait sans doute
> > être mieux adapté à du contenu au format JSON.
> > https://github.com/gregsexton/origami.el

* Valrik <nos...@valrik.invalid> in fr.comp.applications.emacs:
> J'ai regardé sur Github. Cela semble très complet et adaptable. Par
> contre, il n'y a pas de support natif annoncé de « Json ».

Le sujet est vraiment très vaste, j'ai encore trouvé de nouvelles
informations ;-)

- Json (Javascript Object Notation) est très lié à Javascript et comme
Origami annonce un support Javascript, j'avais supposé que cela
fonctionnerait peut-être, éventuellement en activant le mode JS
(intégré à Emacs) ou JS2 (plus complet) ; mais ça n'est effectivement
sans doute pas le cas d'après ce j'ai lu ensuite (j'ai eu un peu la
flemme de tester, je n'utilise pas JS ni Json dans Emacs)

- il existe un "fork" du mode origami avec un support additionnel pour
Json :
https://github.com/elp-revive/origami.el
https://github.com/elp-revive/origami.el/blob/master/origami-parsers.el#L926

- j'ai également trouvé sur un vieux forum ceci qui améliore la prise en
charge de Json par le mode hideshow :

(setcdr (assoc 'js-mode hs-special-modes-alist) '("[{[]" "[}\\]]" "/[*/]" nil))

(par défaut, seules les {} sont prises en compte, ici on ajoute [])

- puisque l'on parle de Json, le mode le plus connu pour ça est
https://github.com/joshwnj/json-mode mais il n'y a rien concernant le
masquage d'éléments, il s'agit uniquement d'améliorer la visualisation ;
cet autre mode a bien cette fonctionnalité mais il n'est plus
maintenu : https://github.com/UwUnyaa/json-mode

- il existe un mode dédié à la "navigation" Json mais qui travaille avec
un buffer additionnel donc sans doute pas adapté au besoin initial ;
je le cite juste pour être complet :-)
https://github.com/DamienCassou/json-navigator

--
DW

Valrik

unread,
Dec 29, 2021, 7:01:34 PM12/29/21
to
Et bien, tu as sacrément bien travaillé !
J'ai fait une copie locale de ton message.

Pour ma modeste part, en compulsant l'outil de paquets (que je ne
connais pas du tout), j'ai trouvé un peu par hasard les choses
suivantes:

- allout : built-in
- foldout : built-in
- loccur : available, recherche d'occurrences.

Les deux premiers ont l'avantage d'être installés sur ma distribution
(Debian). On les retrouve d'ailleurs mentionnés dans les pages info
d'Emacs. Pfff… Lorsque on ne veut pas voir !

Quant au troisième, c'est original et à garder sous le coude.

Encore merci pour ton aide efficace. :-)

Damien Wyart

unread,
Dec 30, 2021, 2:38:24 AM12/30/21
to
* Valrik <nos...@valrik.invalid> in fr.comp.applications.emacs:
> Et bien, tu as sacrément bien travaillé !

;-)

> Pour ma modeste part, en compulsant l'outil de paquets (que je ne
> connais pas du tout), j'ai trouvé un peu par hasard les choses
> suivantes:

> - allout : built-in
> - foldout : built-in
> - loccur : available, recherche d'occurrences.

Je ne connaissais pas, c'est impressionnant le nombre de modules/paquets
différents qui ont été cité dans cette discussion ! Le monde Emacs est
vraiment d'une grande richesse !

--
DW

Valrik

unread,
Dec 31, 2021, 11:34:33 AM12/31/21
to
Damien Wyart <damien...@free.fr> writes:
>
> Je ne connaissais pas, c'est impressionnant le nombre de modules/paquets
> différents qui ont été cité dans cette discussion ! Le monde Emacs est
> vraiment d'une grande richesse !

C'est d'ailleurs un peu pour cela que je l'utilise massivement !
Quelques fois on sue un peu, mais ça en vaut souvent la peine.

Avec tout cela, si je n'arrive pas fournir un travail quelque peu
correct. Reste le temps disponible à y consacrer… Pas toujours simple
cette affaire ! ;-)

Merci encore pour le coup de main et bon réveillon a tous ! *



* Cotillons et pas écouvillon (enfin, si possible) ! ;-)
0 new messages