Come usare SLIME come proxy tra il programma Common Lisp e Emacs Lisp?


15

Sto cercando di fare quanto segue: Ho un programma scritto in Common Lisp, che voglio poter comunicare con Emacs. Il programma si occupa dell'analisi del linguaggio naturale, quindi le cose di cui avrei bisogno di accedere in Emacs sarebbero i contenuti del buffer e alcune analisi preliminari minime necessarie per creare messaggi da inviare al programma Common Lisp. Il programma Common Lisp elaborerà quindi i messaggi e risponderà al programma Emacs Lisp, in modo da visualizzare i risultati.

Capisco che SLIME sarebbe un buon strumento da utilizzare per raggiungere questo obiettivo, principalmente perché lo fa già per la maggior parte, ma esaminando la documentazione trovo che sia un tipo di "documentazione per l'utente", non una "documentazione per sviluppatori". In sostanza, vorrei sapere qual è il minimo che potrei usare sul lato Emacs Lisp per avviare la comunicazione (di certo non ho bisogno dell'introspezione, o REPL in questo caso, tutto ciò di cui ho bisogno è inviare messaggi a e dal mio programma in esecuzione in SWANK).

Risposte:


7

Dal lato CL la funzione che stai cercando è quella swank::eval-in-emacsa cui passi un codice che vuoi valutare in emacs. Puoi vedere un esempio qui , per fare in modo che emacs esegua il comando graphivz e apra il png risultante in un buffer. Dal punto di vista di emacs, la funzione che stai cercando è slime-eval (presente in slime.el)


Scusa, mi ci è voluto un po 'per tornare.
wvxvw,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.