On Wed, Aug 19, 2009 at 11:24 PM, Anton Vodonosovavodonosov@yandex.ru wrote:
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.
Very nice! I happen to have a copy of IDEA available, so I'll do some experiments :)
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
The native ABCL interface to Java is indeed very verbose; I consider it to be a low-level api on which more user-friendly FFIs can be implemented.
- 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
Keep in mind that, in general, the ABCL interpreter is a singleton, and "killing" it is not that easy: besides open streams, other data is kept around so reverting the interpreter to a clean state is quite complicated. Why are you trying to kill it in the first place?
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
armedbear-devel mailing list armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel