[slim-vim] Slim vim design review

Brad Beveridge brad.beveridge at gmail.com
Mon May 22 15:58:24 CDT 2006


Hi all,
Up until now I've just been hacking on the slime-vim code with little
regard for consistency, design or big picture stuff.  Hopefully it
isn't too horrible, but now is definitely the time to get some design
goals down on paper.  I know you're all dying to start helping, but
you'll just have to hold off for a bit until we do some refactoring :)

So here are some thoughts I have on our goals:
 - Primarily we are here to develop Slime support in Vim
 - Secondarily our code ought to be easy to pick up and put into other
like-minded projects (ie, they want to use Swank for whatever reason)

With these goals in mind I think we ought to logically partition the
code into 3 segments
 - A Vim specific part
 - An ECL specific part (sockets, etc)
 - The majority in plain Common Lisp

Any Vim script parts fall under the Vim specific part.  I think that
CLOS is the obvious answer, but IMHO that is really a runtime
solution.  Swank's definterface/defimplementation (see
swank-backend.lisp) appeals to me, it also uses generic functions, but
really all you do is specify an interface that the pure Lisp code can
rely on.  I'm leaning toward this approach.

I'm not sure what the answer is, but for the next week I am going to
take a break from "real" development and try to clean the code up.
All suggestions are welcome.

Cheers
Brad


More information about the slim-vim mailing list