Existe-t-il un moyen d'utiliser python au lieu d'Elisp pour étendre emacs?


11

Je suis intéressé à utiliser des langages autres qu'elisp pour écrire des extensions emacs, est-ce possible? Si python n'est pas pris en charge, quelles sont les langues?

Réponses:


10

Comme l'a dit Tephra, Pymacs est un package conçu pour cela.

C'est une interface entre Python et Emacs Lisp. Le projet n'est pas très actif mais d'après ce que je comprends, il est entièrement fonctionnel avec la dernière version d'Emacs. Quelques packages Python l'utilisent (par exemple, Ropemacs ), donc toute modification d'Emacs qui le casse est susceptible d'être corrigée.

Le lien GitHub vers la documentation en ligne semble être mort, mais vous pouvez toujours le trouver sur la Wayback Machine . La documentation Wayback n'est disponible que pour la version 0.23 - la version actuelle est 0.25. Les changements sont cependant assez mineurs. Le code source de Ropemacs est un bon endroit pour chercher des exemples, tout comme les autres projets implémentés avec Pymacs.

Le problème avec Pymacs est qu'il enlève beaucoup de ce qui rend Elisp utile comme langue pour un éditeur de texte extensible. Vous devez modifier le code source directement si vous souhaitez modifier le comportement. Vous ne pouvez pas facilement conseiller les fonctions et vous ne pouvez pas parcourir Elisp en mémoire. Étant donné que votre implémentation Python est abstraite d'Elisp normal, cela supprime une grande partie du comportement d'auto-documentation qui rend Emacs génial, et les erreurs deviennent moins informatives. Les langages d'extension comme celui-ci sont principalement utiles pour l'interfaçage avec des packages externes écrits dans une autre langue.


Il y a maintenant une fourchette mise à jour (il s'avère que l'auteur original est décédé): github.com/dgentry/Pymacs
braham-snyder

7

Vous pouvez étendre Emacs dans d'autres langues, comme Haskell et OCaml .

Il y a une discussion sur Reddit sur les avantages et les inconvénients de le faire. En bref, je ne pense pas que ce soit une bonne idée d'utiliser d'autres langages (sauf éventuellement C pour les performances) en raison de la nécessité d'un runtime supplémentaire et du manque de connaissances communes par d'autres membres de la communauté Emacs sur les langages d'extension non Elisp.


4

Il y a quelque chose appelé Pymacs qui est une interface python vers emacs-lisp. Bien que le projet ne semble pas aussi actif. Le wiki conserve une liste d'autres modules qui vous permettent d'étendre emacs dans autre chose qu'elisp.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.