Je ne pense pas que rajouter (interactive) dans ma fonction rct() soit nécessaire car si j'utilise define-derived-mode je suppose que l'appel de cette fonction est déjà gérée tout comme le sont (add-hooks) et (use-local-map) par exemple. Depuis le début je fonctionne sans le (interactive) et lors du premier lancement d'Emacs je peux bien lancer mon mode majeur par M-x rct-mode.
Je viens de faire un saut à nouveau sur le site de mu4e pour relire son code et dans le fichier mu4e.el on voit bien que dans sa fonction appelant le define-derived-mode il fait bien appel, comme tu le préconise, à la fonction (interactive). Donc ma question est si je n'utilise pas la fonction (interactive) pour quelle(s) raison(s) puis-je quand même démarrer mon mode avec M-x ?
Ce qu'il se passe lorsque je démarre mon mode c'est que je reste sur le buffer présent et ne passe pas au buffer du mode "rct". Je vois bien dans la barre que le nom du mode actuel est "rct:main" (le buffer reste "GNU Emacs). De toute façon mes touches fonctionne donc cela veux bien dire aussi quelque part que mon mode est correctement lancé.
Je voudrais à nouveau préciser que je débute tout juste en LISP et aussi à utiliser (re-découvrir) Emacs.
ps: j'ai également essayé en rajoutant la fonction (interactive) dans ma fonction rct() mais je ne note aucun changement. J'ai aussi affiché les buffers ouverts par (C-x b + <TAB>) et seulement deux buffers sont "ouverts" : Message et scratch. J'en déduis donc que mon buffer rct-main est créé mais qu'il n'efface pas le contenu du buffer courant (d'ailleurs ni son nom n'est affiché).
[^] # Re: Le mode est changé dans le buffer dans lequel tu as lancé ta commande
Posté par iOops . En réponse au message [Emacs.Lisp] Définition des touches pour un mode majeur. Évalué à 0.
Renaud, est-ce que mon code fonctionne chez toi?
Je ne pense pas que rajouter
(interactive)dans ma fonctionrct()soit nécessaire car si j'utilisedefine-derived-modeje suppose que l'appel de cette fonction est déjà gérée tout comme le sont(add-hooks)et(use-local-map)par exemple. Depuis le début je fonctionne sans le(interactive)et lors du premier lancement d'Emacs je peux bien lancer mon mode majeur parM-x rct-mode.Je viens de faire un saut à nouveau sur le site de mu4e pour relire son code et dans le fichier mu4e.el on voit bien que dans sa fonction appelant le
define-derived-modeil fait bien appel, comme tu le préconise, à la fonction(interactive). Donc ma question est si je n'utilise pas la fonction(interactive)pour quelle(s) raison(s) puis-je quand même démarrer mon mode avec M-x ?Ce qu'il se passe lorsque je démarre mon mode c'est que je reste sur le buffer présent et ne passe pas au buffer du mode "rct". Je vois bien dans la barre que le nom du mode actuel est "rct:main" (le buffer reste "GNU Emacs). De toute façon mes touches fonctionne donc cela veux bien dire aussi quelque part que mon mode est correctement lancé.
Je voudrais à nouveau préciser que je débute tout juste en LISP et aussi à utiliser (re-découvrir) Emacs.
ps: j'ai également essayé en rajoutant la fonction
(interactive)dans ma fonctionrct()mais je ne note aucun changement. J'ai aussi affiché les buffers ouverts par(C-x b + <TAB>)et seulement deux buffers sont "ouverts" : Message et scratch. J'en déduis donc que mon buffer rct-main est créé mais qu'il n'efface pas le contenu du buffer courant (d'ailleurs ni son nom n'est affiché).