[slim-vim] Slim-vim, future and milestones. (V0.1!!!)
Brad Beveridge
brad.beveridge at gmail.com
Fri Jul 14 10:36:02 CDT 2006
On 14/07/06, Larry Clapp <larry at theclapp.org> wrote:
> On Fri, Jul 14, 2006 at 05:46:46AM -0400, Larry Clapp wrote:
> > On Thu, Jul 13, 2006 at 03:37:32PM -0700, Brad Beveridge wrote:
> > > I remember this bug now - the issue is in Vim7. It if_ecl.c there
> > > is a call to eval_to_string, which calls into Vim's eval.c module.
> > > If you look at eval_to_string, you can either get back a Vim List
> > > (which at the moment our FFI can't parse), or a string that uses
> > > \n as an item seperator. I changed if_ecl.c to output the later.
> > > I don't have the code in front of me as a complete unit, so I
> > > can't really be more specific, sorry.
> >
> > I found it. I'd like to make it return a Lisp list.
> >
> > > Hope that helps. If it does, can you please check the change in
> > > to the Vim7 repo?
> >
> > I will when I make them. :)
>
> VIM:EXPR used to return only strings. I've fixed it to return a
> number for a number, a string for a string, and a Lisp list for a Vim
> list.
>
> In particular, (vim:funcall "tabpagebuflist") now returns a Lisp list
> of Lisp numbers:
>
> % vim
> :sb
> :ecl (print (vim:funcall "tabpagebuflist"))
> => (1 1)
> :ecl (print (vim:tabpagebuflist))
> => (0 0)
>
> VIM:VAR assumed that VIM:EXPR would return only a string; I fixed it
> too. Now if VIM:EXPR returns a string, but it looks like a number,
> VIM:VAR will parse it and return the number; if it's not a string,
> VIM:VAR just returns it.
>
> Since VIM:VAR now knows the difference between numbers and strings, I
> removed VIM:VAR-S and VIM:VAR-N. If you want a numeric variable as a
> string use PRIN1-TO-STRING or whatever; if you want a string variable
> as a number, use PARSE-INTEGER.
>
> Here's the changelog, which I'll also CC to the Changelog for July
> thread.
>
> > Fri Jul 14 11:04:34 EDT 2006 Larry Clapp <larry at theclapp.org>
> > * Added Vim FFI for tabpagenr and tabpagebuflist
> >
> > vim:tabpagenr takes an optional argument, but if you provide it,
> > it must be NIL or string= "$", or it's silently ignored.
> >
> > Fri Jul 14 10:03:56 EDT 2006 Larry Clapp <larry at theclapp.org>
> > * Make VIM:VAR work with the new VIM:EXPR; delete VAR-S and VAR-N
> >
> > Fri Jul 14 09:26:55 EDT 2006 Larry Clapp <larry at theclapp.org>
> > * Make VIM:EXPR work with more types of Vim data: numbers, strings, lists
> >
> > Doesn't work with Dictionaries yet.
> >
> > - A Vim number may become a fixnum or a bignum.
> > - A Vim string becomes a Lisp string.
> > - A Vim list becomes a Lisp list (recursively).
> > - A Vim dictionary displays an error ("E685: Internal error:
> > vim_type_to_cl_object(VAR_DICT)")
> >
> > Changed vim:funcall to only call parse-integer on the returned
> > value if the returned type is STRING *and* the given function is
> > supposed to return an integer. (Previously vim:expr *always*
> > returned strings.)
> >
> > Also added some comments and docstrings.
>
> -- Larry
Fantastic. I'll do a pull and fix up Slim-vim tonight, unless you
beat me to it :)
As a side note, having a full strength Lisp built into Vim really
makes me want to do other things in the Vim+ECL environment. Was it
JWZ who said "All programs expand until they can read mail"? :)
Cheers
Brad
--
Go and see "An Inconvenient Truth"
http://www.climatecrisis.net/
More information about the slim-vim
mailing list