Hello,

On Sat, Jun 28, 2014 at 03:50:10PM +0200, Bram Moolenaar wrote:
> Jens-Wolfhard Schicke-Uffmann wrote:
> > On Thu, Jun 26, 2014 at 11:08:30PM +0200, Bram Moolenaar wrote:
> > > You need to take care of authentication, for example.
> > Good point, thanks.
> > > One thing would be awesome: To have a cross-platform collaboration edit
> > > mechanism that works will several editors.  One that only works with Vim
> > > will be limited in worldwide acceptance.
> > >=20
> > > Google Drive offers something that might work. The mechanism is working
> > > very well, at least for Google documents.  Problem is that the library
> > > is only available for JavaScript.  So it would require embedding a
> > > JavaScript interpreter in Vim.  It's not impossible...
> > > https://developers.google.com/drive/realtime/
> > This would bind VIm to an API which has a proprietary server
> > implementation, something I'd rather avoid.
> > However, I think that EtherpadLite offers a protocol I could implement
> > and which should work well. Unless someone stops me, that would be the
> > one I'll be aiming for then.
> There is a Python implementation for etherpad lite, so that would make
> things much simpler.
> I have no idea how well etherpad lite works and how good the security
> is.  It does appear to be possible to run your own server or use an
> existing one on the Internet.

    I have prototyped an etherpadlite python library and a vim plugin as
an example of how to use it, I've sent a mail on the list  about  a year
ago about that, so I guess that's what you're talking about, Bram:

    https://github.com/guyzmo/PyEtherpadLite
    https://github.com/guyzmo/vim-etherpad

    As far as I've gone, it's working perfectly well as "read-only", and
it sometimes work  when  sending  changesets,  but  fails  too  often to
consider the code base stable.

    I've tried making it as good as I could, but failed  in  my attempts
to make it actually *good*. The main  problem  is  that  the  OT library
being  used  by  EPL  is  unpacking  the  changeset  and  rebuilding the
changeset, even if valid, if the rebuilt changeset is  not  the  same as
the unpacked changeset, it will refuse the changeset.

    Another thing is  that  EPL  is  not  a  text  editor,  it's  a text
processor, because  it  implements  rich  text  features  that  we don't
want to see exist in vim. Bold, Italic,  underlined…  and  I  don't even
talk about how messy are the bullet points.

    I've been considering to actually load that JS  library  from python
to build the changesets… But  honestly,  what  stopped  me  was thinking
the level of complexity  I'd  then  be  creating,  JS  over  Python over
Vim… Then could we still joke  about  emacs  being  heavyweight?  :-) Or
maybe, there's a way to convert JS code into python bytecode? (Pyjon?)

    Anyway, please fork  and  improve  on  my  code!  I'm  always around
(mail, Jabber, IRC – zmo on freenode, just  ask!)  to  help,  and always
happy to accept patches! If we all join  forces,  we  may  make actually
vim  connecting to EPL a reality for everyday use.

Cheers,

-- 
Guyzmo

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui