[armedbear-devel] Embedding ABCL into IntelliJ IDEA and writing plugins

Anton Vodonosov avodonosov at yandex.ru
Wed Aug 19 21:24:07 UTC 2009


Hello,

I created IntelliJ IDEA plugin that embeds ABCL, allows to connect
from SLIME and extend IDEA using Common Lisp.

I haven't contrived any useful functionality (that is easy
to implement), therefore, for the sake of example, the plugin
ads to IDEA commands yank and yank-pop, like in Emacs.

Source may be found here: http://github.com/avodonosov/abcl-idea/tree/master
Binary distro: http://cloud.github.com/downloads/avodonosov/abcl-idea/abcl-idea.zip

There is a readme, check it for more details.

Some conclusions from my experience:

- it is absolutely possible to create IDEA plugins using ABCL.
- Jfli interface to java is currently more convenient than
  native ABCL's
- ABCL's performance of slime fuzzy-completion is still
  unsatisfying (it is the only little unsatisfying thing
  for me)
- ABCL is more suited to be embedded into J editor, than
  into something else. For example Interpreter.kill method
  stops ABCL like:
  
     if (jlisp) {
        ... close input output streams
     }
     else
         System.exit(status);
         
  I.e. if we call Interpretter.kill() in IDEA plugin, it will
  exit whose IDEA process
         
  This is not a big problem, because with having Interpreter
  source code we may But having source code we can copy/past
  desirable kill behavior - closing streams. But it would
  make sense to reactor it a little to be more embedding friendly.

If somebody is interested to write IDEA plugins in Lisp,
my plugin may be used as a basis for further extension.

Best regards,
- Anton





More information about the armedbear-devel mailing list