Comment utiliser SLIME comme proxy entre le programme Common Lisp et Emacs Lisp?

15

Je cherche à faire ce qui suit: J'ai un programme écrit en Common Lisp, que je veux pouvoir communiquer avec Emacs. Le programme traite de l'analyse en langage naturel, donc les éléments auxquels j'aurais besoin d'accéder dans Emacs seraient le contenu du tampon et une analyse préliminaire minimale requise pour créer des messages à envoyer au programme Common Lisp. Le programme Common Lisp traitera ensuite les messages et répondra au programme Emacs Lisp, afin qu'il affiche les résultats.

Je comprends que SLIME serait un bon outil à utiliser pour y parvenir, principalement parce qu'il en fait déjà la plupart, mais en regardant la documentation, je trouve que c'est une sorte de "documentation utilisateur", pas une "documentation développeur". Essentiellement, j'aimerais savoir quel est le minimum que je pourrais utiliser du côté d'Emacs Lisp pour lancer la communication (je n'ai certainement pas besoin de l'introspection, ou de REPL dans ce cas, tout ce dont j'ai besoin est d'envoyer des messages à et de mon programme exécuté dans SWANK).

wvxvw
la source

Réponses:

7

Du côté CL, la fonction que vous recherchez est celle swank::eval-in-emacsà laquelle vous passez un code que vous souhaitez évaluer dans emacs. Vous pouvez voir un exemple ici , pour que emacs exécute la commande graphivz et ouvre le png résultant dans un tampon. Du côté emacs, la fonction que vous recherchez est slime-eval (trouvée dans slime.el)

PuercoPop
la source
Désolé, il m'a fallu un certain temps pour y revenir.
wvxvw