Jak używać SLIME jako proxy między programem Common Lisp a Emacs Lisp?

15

Chciałbym wykonać następujące czynności: Mam program napisany w Common Lisp, który chcę móc komunikować się z Emacsem. Program zajmuje się parsowaniem języka naturalnego, więc do Emacsa potrzebowałbym dostępu do zawartości bufora i minimalnego wstępnego parsowania wymaganego do utworzenia wiadomości do wysłania do programu Common Lisp. Program Common Lisp przetworzy następnie wiadomości i odpowie na program Emacs Lisp, aby wyświetlić wyniki.

Rozumiem, że SLIME byłby dobrym narzędziem do osiągnięcia tego celu, głównie dlatego, że już to robi, ale patrząc na dokumentację, uważam, że jest to rodzaj „dokumentacji użytkownika”, a nie „dokumentacji programisty”. Zasadniczo chciałbym wiedzieć, jakie jest minimum, którego mógłbym użyć po stronie Emacsa Lispa, aby rozpocząć komunikację (z pewnością nie potrzebuję introspekcji lub REPL w tym przypadku, wszystko czego potrzebuję, to wysłać wiadomości do i z mojego programu działającego w SWANK).

wvxvw
źródło

Odpowiedzi:

7

Po stronie CL funkcja, której szukasz swank::eval-in-emacs, przekazuje kod, który chcesz ocenić w emacsie. Możesz zobaczyć tutaj przykład , aby emacs uruchomił polecenie graphivz i otworzył wynikowy png w buforze. Od strony emacsa szukasz funkcji slime-eval (znalezionej w slime.el)

PuercoPop
źródło
Przepraszam, zajęło mi to trochę czasu, aby wrócić do tego.
wvxvw