Estou interessado em usar outros idiomas além do elisp para escrever extensões emacs, isso é possível? Se o python não for suportado, quais idiomas são?
Como disse Tephra, o Pymacs é um pacote projetado para isso.
É uma interface entre Python e Emacs Lisp. O projeto não é muito ativo, mas pelo que entendi, é totalmente funcional com a versão mais recente do Emacs. Alguns pacotes Python o usam (por exemplo, Ropemacs ); portanto, qualquer alteração no Emacs que o interrompa provavelmente será corrigida.
O link do GitHub para a documentação on - line parece estar morto, mas você ainda pode encontrá-lo na Wayback Machine . A documentação do Wayback está disponível apenas para a versão 0.23 - a versão atual é 0.25. As mudanças são bem pequenas. O código fonte do Ropemacs é um bom lugar para procurar exemplos, assim como os outros projetos implementados com o Pymacs.
O problema com o Pymacs é que ele tira muito do que torna o Elisp útil como linguagem para um editor de texto extensível. Você precisa editar o código-fonte diretamente se quiser alterar o comportamento. Você não pode aconselhar funções facilmente e não pode navegar pelo Elisp na memória. Como a implementação do Python é abstraída do Elisp normal, isso remove grande parte do comportamento de auto-documentação que torna o Emacs excelente e os erros se tornam menos informativos. Idiomas de extensão como este são úteis principalmente para interface com pacotes externos escritos em outro idioma.
Você pode estender o Emacs em outros idiomas, como Haskell e OCaml .
Há uma discussão no Reddit sobre vantagens e desvantagens de fazê-lo. Em resumo, não acho que seja uma boa ideia usar outros idiomas (exceto possivelmente C para desempenho) devido à necessidade de um tempo de execução adicional e à falta de conhecimento comum de outros membros da comunidade Emacs sobre idiomas de extensão não Elisp.
fonte
Existe algo chamado Pymacs, que é uma interface python para o emacs-lisp. Embora o projeto não pareça tão ativo. O wiki mantém uma lista de outros módulos que permitem estender o emacs em algo que não seja o elisp.
fonte