relancer yasnippet

La question :

Bonjour,

J'utilise régulièrement yasnippet et je suis amené à le relancer (après
avoir modifié ou défini un «snippet»).
Pour cela, je fais:
M-x yas-recompile-all
M-x yas-reload-all

j'ai alors l'affichage:

[yas] Reloaded everything...

et je peux utiliser mes modifications.

J'aimerais pouvoir lancer ces deux commandes plus facilement.
J'ai donc essayé de définir une fonction de la façon suivante afin de
pouvoir ensuite lui attribuer un raccourci:

;; ----------------------------------------------------
;; relancer yasnippet
(defun relancer-yasnippet ()
(interactive)
(yas-recompile-all)
(yas-reload-all))
;; ----------------------------------------------------

Lorsque je fais:
M-x relancer-yasnippet

j'ai alors l'affichage:

[yas] Reloaded everything (snippets will load just-in-time)

et yasnippet ne fonctionne plus.

L'un d'entre vous peut-il me dire ce qui ne fonctionne pas?
Merci d'avance,
Stéphane Dutailly

Poser votre question sur le forum OS alternatifs

Les 5 réponses :

Stéphane Dutailly a écrit :


Bonjour,

J'utilise régulièrement yasnippet et je suis amené à le relancer
(après avoir modifié ou défini un «snippet»).
Pour cela, je fais:
M-x yas-recompile-all
M-x yas-reload-all

j'ai alors l'affichage:

[yas] Reloaded everything...

et je peux utiliser mes modifications.

J'aimerais pouvoir lancer ces deux commandes plus facilement.
J'ai donc essayé de définir une fonction de la façon suivante afin de
pouvoir ensuite lui attribuer un raccourci:

;; ----------------------------------------------------
;; relancer yasnippet
(defun relancer-yasnippet ()
(interactive)
(yas-recompile-all)
(yas-reload-all))
;; ----------------------------------------------------

Lorsque je fais:
M-x relancer-yasnippet

j'ai alors l'affichage:

[yas] Reloaded everything (snippets will load just-in-time)

et yasnippet ne fonctionne plus.

L'un d'entre vous peut-il me dire ce qui ne fonctionne pas?
Merci d'avance,
Stéphane Dutailly


Aucune idée --- et d'ailleurs je ne sais pas ce que c'est que yas ---
mais peut-être faut-il appeler ces fonctions avec call-interactively
pour leur faire croire qu'elles ont été appélée avec M-x ...

Vincent.

Le Thu, 12 May 2016 12:47:27 +0200,
Stéphane Dutailly a écrit :


M-x yas-recompile-all
M-x yas-reload-all

j'ai alors l'affichage:

[yas] Reloaded everything...

et je peux utiliser mes modifications.

J'aimerais pouvoir lancer ces deux commandes plus facilement.



;; ----------------------------------------------------
;; relancer yasnippet
(defun relancer-yasnippet ()
(interactive)
(yas-recompile-all)
(yas-reload-all))
;; ----------------------------------------------------

Lorsque je fais:
M-x relancer-yasnippet

j'ai alors l'affichage:

[yas] Reloaded everything (snippets will load just-in-time)

et yasnippet ne fonctionne plus.


J'ai essayé votre fonction et je n'ai pas de problème à utiliser
Yasnippet ensuite. Pouvez-vous nous montrer votre configuration
personnalisée de Emacs? Comment chargez vous Yasnippet au démarrage?

Note: Il est possible d'éditer les fragments de code (snippets) avec
`snippet-mode`. Cela permet de charger un fragment avec les touches `C-c
C-l`, `C-c C-c` permet de charger un fragment et de quitter la fenêtre
et `C-c C-t` permet d'essayer un fragment.

Pour activer ce mode, je recommande d'ajouter la ligne


# -*- mode: snippet -*-


Au début du fichier. Cela permet de charger `snippet-mode` lors de
l'ouverture du fichier. On peut aussi ajouter une directive de
répertoire:


(add-to-list 'auto-mode-alist '("chemin/vers/snippets/" .
snippet-mode))


mais la première solution permet une meilleure portabilité.

Etienne

Bonjour,

Merci pour vos réponses.
Vincent, j'ai essayé ceci mais cela ne donne rien...

(defun relancer-yasnippet ()
(call-interactively 'yas-recompile-all)
(call-interactively 'yas-reload-all)
)
Est-ce ainsi qu'il faut l'utiliser? (j'avoue ne pas avoir tout compris à
la documentation...)

Étienne, j'ai ceci dans mon .emacs:

;; yasnippet

(add-to-list 'load-path
"~/.emacs.d/elpa/yasnippet-0.8.0")
(require 'yasnippet)

(setq yas-snippet-dirs
'(
;; "~/.emacs.d/snippets" ;; repertoire par defaut
"~/Dropbox/Divers_boulot/Emacs/plugins/yasnippet_perso"
))

(yas-global-mode 1) ;; or M-x yas-reload-all if you've started YASnippet
already.

(setq yas/triggers-in-field t) ;; pour "enchainer" les snippets (cf
ligne 296 dans yasnippet.el)
(setq yas/visit-from-menu t) ;; pour acceder aux fichiers de
definition des snippets depuis le menu

Merci pour tout.
Stéphane



;; ----------------------------------------------------
;; relancer yasnippet
(defun relancer-yasnippet ()
(interactive)
(yas-recompile-all)
(yas-reload-all))
;; ----------------------------------------------------

Lorsque je fais:
M-x relancer-yasnippet

j'ai alors l'affichage:

[yas] Reloaded everything (snippets will load just-in-time)

et yasnippet ne fonctionne plus.


J'ai essayé votre fonction et je n'ai pas de problème à utiliser
Yasnippet ensuite. Pouvez-vous nous montrer votre configuration
personnalisée de Emacs? Comment chargez vous Yasnippet au démarrage?

Mardi le 17 mai 2016 23:10:53 +0200,
Stéphane Dutailly a écrit :


(add-to-list 'load-path
"~/.emacs.d/elpa/yasnippet-0.8.0")
(require 'yasnippet)


Je peux voir qu'il s'agit d'une version assez ancienne de Yasnippet.
ELPA avait une version assez vieille (août 2012) jusqu'à récemment.
Plusieurs variables sont maintenant obsolètes et certaines
fonctionnalités ont étés ajoutées depuis.

Vous est-il possible de mettre à jour Yasnippet pour une version plus
récente?

Si vous avez modifié des fragments de code (snippets) du répertoire
principal, c'est-à-dire `~/emacs.d/elpa/yasnippet-0.8.0/snippets` il
faudra faire une copie de sauvegarde puisque qu'il sera supprimé.

| M-x list-packages
| U (Sélectionner les paquets à mettre à jour)
| x (Éxécuter l'action)

Le minibuffer vous demandera ensuite si vous voulez supprimer les
anciens paquets. Je le suggère fortement.

Puisque `load-path` est utilisé, il faudra changer le chemin vers la
nouvelle version.

Note: placer

| (package-initialize)

au début de votre fichier de configuration vous évitera de devoir
charger les chemins des paquets avec `load-path`. Emacs chargera les
paquets téléchargés automatiquement.

Sinon, on peut toujours essayer avec l'ancienne version, mais ça risque
d'être plus compliqué.

Etienne

Bonjour,

J'ai mis à jour et cela fonctionne désormais très bien.
Merci beaucoup!
Stéphane Dutailly

Poser votre question sur le forum OS alternatifs

Questions similaires :

yasnippet

Bonsoir, Je viens de me mettre à yasnippet et je trouve cela très pratique. Je me suis fais un certains nombres de bout de codes, maintenant dans certains j'aimerais savoir si dans certaines variables, je pourrais faire des listes de choix. Disons que j'ai le snippet suivant...

Problèmes avec yasnippet

Bonjour Je profite d'une légère accalmie pour polir mes outils. J'ai trouvé un site proposant des outils pour écrire des fichiers LaTeX qui me semblent intéressants ( ) J'ai copié tous ces snippets dans le directory kivabien. Malheureusement quand j'essaie d'utiliser ces snippets j'ai une erreur...

yasnippet

Bonjour à tous, J'essaie yasnippet qui me semble offrir des possibilités intéressantes pour définir des raccourcis mais je rencontre deux problèmes (un petit et un gros...): - (le gros) j'ai deux snippets (je ne sais pas trop quel terme convient en français...) pour les fractions et les...

[CODE]: Relancer une fonction après un certain temps

Bonjour, Je cherche un moyen de relancer un traitement controler par une sentinelle en emacs-lisp. En gros, après un certain temps (disons 15secondes) je veux que le process se relance. Est-ce possible ? (je n'ai pas bien cherché ou l'information n'est pas disponible). Ca ne me semble pas bien...

charger de nouvelles bibliothèques sans relancer emacs

Bonjour à tous, lorsque l'on programme en elisp pour tester le nouveau code écrit il faut fermer puis réouvrir emacs. Existe t il une méthode pour charger les nouvelles fonctions écrites sans fermer emacs ? merci.