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

Problème d'intégration de Yasnippet dans le code Lisp.

1 view
Skip to first unread message

NoSpam Valrik

unread,
Nov 29, 2022, 3:19:37 PM11/29/22
to
Bonjour à tous,

j'essaie sans succès d'intégrer des snippets enveloppés dans une
fonction Lisp, mais je bute sur un problème insoluble, enfin pour moi.

Il semblerait que le snippet soit exécuté une fois tout le code Lisp
de la fonction le soit d'abord. Par exemple, dans l'exemple suivant,
j'insère un lien html, puis la chaîne "Débeugue !!!". Mais le résultat
est mauvais, puisque la chaîne de caractères se retrouve dans le champ
« 10 » du snippet alors que je la souhaiterais _après_ de ce snippet.

(progn
(yas-expand-snippet "<a
href=\"${10:URL ou lien relatif.}\"
title=\"${20:Titre du lien}\">${30:Libellé du lien}</a>")
(insert "Débeugue !!!\n"))

=>

<a
href="Débeugue !!!
"
title="Titre du lien">Libellé du lien</a>

Y a-t-il moyen de forcer l'exécution du snippet puis d'écrire la
chaîne de caractères ?

Merci pour l'attention que vous porterez à ma demande.

NoSpam Valrik

unread,
Dec 12, 2022, 3:28:33 PM12/12/22
to
En fait, c'est un problème d'exécution asynchrone de la fonction, alors
qu'il faudrait l'exécuter de manière synchrone. je crois que la
solution se trouve dans la page info, chapitre « 21 Command Loop
». Quelqu'un connaît il le sujet ?

NoSpam Valrik

unread,
Dec 19, 2022, 5:22:06 PM12/19/22
to
Bon, pour ceux que cela intéresse, j'ai fini par trouver la solution
au problème de l'exécution asynchrone du « snippet ».

Dans la « page info », au paragraphe « 21.13 Recursive Editing », il
est mentionné la commande « recursive-edit », qui si j'ai bien
compris, boucle tant que la précédente commande n'est pas terminée. Et
en faisant des recherches pour trouver des exemples plus causants que
la « page info », j'ai trouvé cette perle :

https://www.emacswiki.org/emacs/yasnippet-config.el

et en particulier la fonction « yas-expand-snippet-sync » qui résout
complètement le problème.

Voilà donc, une affaire réglée.

NoSpam Valrik

unread,
Dec 19, 2022, 5:22:59 PM12/19/22
to
On Mon, 12 Dec 2022 21:28:33 +0100,
NoSpam Valrik wrote:
>

Claudia Cardilane

unread,
Dec 19, 2022, 5:47:32 PM12/19/22
to
Le 19/12/2022 à 23:22, NoSpam Valrik a écrit :

> yasnippet

Y en a qui s'la pètent.

Claoudia (prononcez Clahoudia Carldilaaané)

0 new messages