This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Vim ENSIME Thingy

7 replies
Derek Wyatt 2
Joined: 2011-02-12,
User offline. Last seen 42 years 45 weeks ago.

I've decided to try and follow in Daniel's footsteps and get ENSIME
working for Vim. My previous attempt to pull Scala into Vim was a sad
- basically functional, but I want more.

It looks like Marc Weber (https://github.com/MarcWeber/ensime)
starting hacking this together but hasn't touched it in a while. It
also looks like he's ignored the swank protocol and made a fork that
does JSON; I'd rather just speak swank.

This email has two purposes:

1) Canvassing for help - if you're a Vim guy and want to help,
please... please do :)
2) I haven't been able to see if ENSIME would solve my indent-woes.
It looks like it's the elisp code that calculates the current indent
level, not the ENSIME server. True?

I haven't been able to get a solid indent calculator yet and I was
hoping that ENSIME would be the silver bullet to solve that problem.
I could port the elisp, of course, but I'd rather not - I just want to
stand on the shoulders of the ENSIME server, and be lazy :)

Aemon Cannon
Joined: 2010-03-21,
User offline. Last seen 1 year 24 weeks ago.
Re: Vim ENSIME Thingy
Hey Derek,
Sounds great! I agree that speaking swank will be better in the long run.
You are correct that ENSIME's line-at-a-time indentation is handled in elisp. The method I use is the one that Steve Yegge cooked up forhis javascript mode. It depends on a little-known elisp function that counts open,close parens/braces/brackets. It's by no means perfect,  but it's good enough to tide me over between calls to the full-file formatter(scalariform) in the server. 

-Aemon




On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt <derek [at] derekwyatt [dot] org> wrote:
I've decided to try and follow in Daniel's footsteps and get ENSIME
working for Vim.  My previous attempt to pull Scala into Vim was a sad
- basically functional, but I want more.

It looks like Marc Weber (https://github.com/MarcWeber/ensime)
starting hacking this together but hasn't touched it in a while.  It
also looks like he's ignored the swank protocol and made a fork that
does JSON; I'd rather just speak swank.

This email has two purposes:

1) Canvassing for help - if you're a Vim guy and want to help,
please... please do :)
2) I haven't been able to see if ENSIME would solve my indent-woes.
It looks like it's the elisp code that calculates the current indent
level, not the ENSIME server.  True?

I haven't been able to get a solid indent calculator yet and I was
hoping that ENSIME would be the silver bullet to solve that problem.
I could port the elisp, of course, but I'd rather not - I just want to
stand on the shoulders of the ENSIME server, and be lazy :)

Derek Wyatt 2
Joined: 2011-02-12,
User offline. Last seen 42 years 45 weeks ago.
Re: Vim ENSIME Thingy

So, let me get this straight... an operating system / editor with a
strong bent toward a lisp dialect already has code to match up
braces??? Awesome!

Actually Vim has the same thing, but like Emacs, the Vim scala
indenter leaves me wanting... I'm the maintainer of it, and I don't
want to be anymore :) Figuring out a cheap function to assess the
Scala indent level is painful.

Assuming I can get this going, it would possibly be beneficial to have
the indenter in ENSIME - I've already contacted the Scalariform author
to see if I could rip off his code to do it but, not surprisingly,
it's not designed for that - it croaks on "incomplete" code, which is
the state that the file will be in most of the time.

I'm going to poke at ENSIME with a stick for the next few days and see
what I can get out of it without having to modify the server. The
fact that Daniel's managed to get it going noninvasively has spurred
me on to give it a go myself.

Thanks for all the hard work! (Could this be the first time that Vim
makes use of code that was largely written for Emacs? Could there be a
scandal?)

On Aug 29, 2:38 pm, Aemon Cannon wrote:
> Hey Derek,
>
> Sounds great!
> I agree that speaking swank will be better in the long run.
>
> You are correct that ENSIME's line-at-a-time indentation is handled
> in elisp. The method I use is the one that Steve Yegge cooked up for
> his javascript mode. It depends on a little-known elisp function that
> counts open,close parens/braces/brackets. It's by no means perfect,
> but it's good enough to tide me over between calls to the full-file
> formatter
> (scalariform) in the server.
>
> -Aemon
>
>
>
>
>
>
>
> On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt wrote:
> > I've decided to try and follow in Daniel's footsteps and get ENSIME
> > working for Vim.  My previous attempt to pull Scala into Vim was a sad
> > - basically functional, but I want more.
>
> > It looks like Marc Weber (https://github.com/MarcWeber/ensime)
> > starting hacking this together but hasn't touched it in a while.  It
> > also looks like he's ignored the swank protocol and made a fork that
> > does JSON; I'd rather just speak swank.
>
> > This email has two purposes:
>
> > 1) Canvassing for help - if you're a Vim guy and want to help,
> > please... please do :)
> > 2) I haven't been able to see if ENSIME would solve my indent-woes.
> > It looks like it's the elisp code that calculates the current indent
> > level, not the ENSIME server.  True?
>
> > I haven't been able to get a solid indent calculator yet and I was
> > hoping that ENSIME would be the silver bullet to solve that problem.
> > I could port the elisp, of course, but I'd rather not - I just want to
> > stand on the shoulders of the ENSIME server, and be lazy :)

Andrey Popp
Joined: 2010-07-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Vim ENSIME Thingy

Hi, Derek,

do you already have code repo (github or something) with work in progress ENSIME integration w/ Vim?

On Aug 29, 2011, at 11:56 PM, Derek Wyatt wrote:

>
> So, let me get this straight... an operating system / editor with a
> strong bent toward a lisp dialect already has code to match up
> braces??? Awesome!
>
>
> Actually Vim has the same thing, but like Emacs, the Vim scala
> indenter leaves me wanting... I'm the maintainer of it, and I don't
> want to be anymore :) Figuring out a cheap function to assess the
> Scala indent level is painful.
>
> Assuming I can get this going, it would possibly be beneficial to have
> the indenter in ENSIME - I've already contacted the Scalariform author
> to see if I could rip off his code to do it but, not surprisingly,
> it's not designed for that - it croaks on "incomplete" code, which is
> the state that the file will be in most of the time.
>
> I'm going to poke at ENSIME with a stick for the next few days and see
> what I can get out of it without having to modify the server. The
> fact that Daniel's managed to get it going noninvasively has spurred
> me on to give it a go myself.
>
> Thanks for all the hard work! (Could this be the first time that Vim
> makes use of code that was largely written for Emacs? Could there be a
> scandal?)
>
> On Aug 29, 2:38 pm, Aemon Cannon wrote:
>> Hey Derek,
>>
>> Sounds great!
>> I agree that speaking swank will be better in the long run.
>>
>> You are correct that ENSIME's line-at-a-time indentation is handled
>> in elisp. The method I use is the one that Steve Yegge cooked up for
>> his javascript mode. It depends on a little-known elisp function that
>> counts open,close parens/braces/brackets. It's by no means perfect,
>> but it's good enough to tide me over between calls to the full-file
>> formatter
>> (scalariform) in the server.
>>
>> -Aemon
>>
>>
>> On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt wrote:
>>> I've decided to try and follow in Daniel's footsteps and get ENSIME
>>> working for Vim. My previous attempt to pull Scala into Vim was a sad
>>> - basically functional, but I want more.
>>> It looks like Marc Weber (https://github.com/MarcWeber/ensime)
>>> starting hacking this together but hasn't touched it in a while. It
>>> also looks like he's ignored the swank protocol and made a fork that
>>> does JSON; I'd rather just speak swank.
>>> This email has two purposes:
>>> 1) Canvassing for help - if you're a Vim guy and want to help,
>>> please... please do :)
>>> 2) I haven't been able to see if ENSIME would solve my indent-woes.
>>> It looks like it's the elisp code that calculates the current indent
>>> level, not the ENSIME server. True?
>>> I haven't been able to get a solid indent calculator yet and I was
>>> hoping that ENSIME would be the silver bullet to solve that problem.
>>> I could port the elisp, of course, but I'd rather not - I just want to
>>> stand on the shoulders of the ENSIME server, and be lazy :)

Derek Wyatt 2
Joined: 2011-02-12,
User offline. Last seen 42 years 45 weeks ago.
Re: Vim ENSIME Thingy

I don't have a repo yet - I've forked it but I'm still tinkering so
much that it's not worth checking in yet. I'm still figuring out how
to speak properly and I'm using Marc's async code to do it, which I'm
not familiar with (or really happy with yet... might just be
ignorance).

But if you're thinking about pitching in, I'm sure we can work
something out really soon! :)

On Aug 29, 4:09 pm, Andrey Popp <8may [dot] [dot] [dot] [at] gmail [dot] com> wrote:
> Hi, Derek,
>
> do you already have code repo (github or something) with work in progress ENSIME integration w/ Vim?
>
> On Aug 29, 2011, at 11:56 PM, Derek Wyatt wrote:
>
>
>
>
>
>
>
> >
> > So, let me get this straight... an operating system / editor with a
> > strong bent toward a lisp dialect already has code to match up
> > braces??? Awesome!
> >
>
> > Actually Vim has the same thing, but like Emacs, the Vim scala
> > indenter leaves me wanting... I'm the maintainer of it, and I don't
> > want to be anymore :)  Figuring out a cheap function to assess the
> > Scala indent level is painful.
>
> > Assuming I can get this going, it would possibly be beneficial to have
> > the indenter in ENSIME - I've already contacted the Scalariform author
> > to see if I could rip off his code to do it but, not surprisingly,
> > it's not designed for that - it croaks on "incomplete" code, which is
> > the state that the file will be in most of the time.
>
> > I'm going to poke at ENSIME with a stick for the next few days and see
> > what I can get out of it without having to modify the server.  The
> > fact that Daniel's managed to get it going noninvasively has spurred
> > me on to give it a go myself.
>
> > Thanks for all the hard work!  (Could this be the first time that Vim
> > makes use of code that was largely written for Emacs? Could there be a
> > scandal?)
>
> > On Aug 29, 2:38 pm, Aemon Cannon wrote:
> >> Hey Derek,
>
> >> Sounds great!
> >> I agree that speaking swank will be better in the long run.
>
> >> You are correct that ENSIME's line-at-a-time indentation is handled
> >> in elisp. The method I use is the one that Steve Yegge cooked up for
> >> his javascript mode. It depends on a little-known elisp function that
> >> counts open,close parens/braces/brackets. It's by no means perfect,
> >> but it's good enough to tide me over between calls to the full-file
> >> formatter
> >> (scalariform) in the server.
>
> >> -Aemon
>
> >> On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt wrote:
> >>> I've decided to try and follow in Daniel's footsteps and get ENSIME
> >>> working for Vim.  My previous attempt to pull Scala into Vim was a sad
> >>> - basically functional, but I want more.
> >>> It looks like Marc Weber (https://github.com/MarcWeber/ensime)
> >>> starting hacking this together but hasn't touched it in a while.  It
> >>> also looks like he's ignored the swank protocol and made a fork that
> >>> does JSON; I'd rather just speak swank.
> >>> This email has two purposes:
> >>> 1) Canvassing for help - if you're a Vim guy and want to help,
> >>> please... please do :)
> >>> 2) I haven't been able to see if ENSIME would solve my indent-woes.
> >>> It looks like it's the elisp code that calculates the current indent
> >>> level, not the ENSIME server.  True?
> >>> I haven't been able to get a solid indent calculator yet and I was
> >>> hoping that ENSIME would be the silver bullet to solve that problem.
> >>> I could port the elisp, of course, but I'd rather not - I just want to
> >>> stand on the shoulders of the ENSIME server, and be lazy :)

daniel
Joined: 2008-08-20,
User offline. Last seen 44 weeks 14 hours ago.
Re: Re: Vim ENSIME Thingy
+1 on speaking swank.  I've only been working with ENSIME for a little while and emulating the emacs mode's semantics has already paid dividends.

Regarding indentation, I agree that simple brace counting isn't even remotely sufficient.  My jEdit mode actually does a pretty decent job of auto-indentation (note: not the same as the jEdit mode included in the Scala distro, which is actually quite awful).  The main thing it gets wrong are multi-line case expressions without curly braces.  For example:

case foo =>
  bar
  baz

Context sensitivity is a horrible thing.

The nice thing about it is the indentation mode is entirely specified in terms of regular expressions and brace matching (which jEdit has built-in).  So, the auto-indent specification is quite concise and fairly easy to adapt to other languages with similar edit mode specification capabilities (like Vim).

Daniel

On Mon, Aug 29, 2011 at 2:56 PM, Derek Wyatt <derek [at] derekwyatt [dot] org> wrote:
<good natured sarcasm>
So, let me get this straight... an operating system / editor with a
strong bent toward a lisp dialect already has code to match up
braces??? Awesome!
</good natured sarcasm>

Actually Vim has the same thing, but like Emacs, the Vim scala
indenter leaves me wanting... I'm the maintainer of it, and I don't
want to be anymore :)  Figuring out a cheap function to assess the
Scala indent level is painful.

Assuming I can get this going, it would possibly be beneficial to have
the indenter in ENSIME - I've already contacted the Scalariform author
to see if I could rip off his code to do it but, not surprisingly,
it's not designed for that - it croaks on "incomplete" code, which is
the state that the file will be in most of the time.

I'm going to poke at ENSIME with a stick for the next few days and see
what I can get out of it without having to modify the server.  The
fact that Daniel's managed to get it going noninvasively has spurred
me on to give it a go myself.

Thanks for all the hard work!  (Could this be the first time that Vim
makes use of code that was largely written for Emacs? Could there be a
scandal?)

On Aug 29, 2:38 pm, Aemon Cannon <aemoncan [dot] [dot] [dot] [at] gmail [dot] com> wrote:
> Hey Derek,
>
> Sounds great!
> I agree that speaking swank will be better in the long run.
>
> You are correct that ENSIME's line-at-a-time indentation is handled
> in elisp. The method I use is the one that Steve Yegge cooked up for
> his javascript mode. It depends on a little-known elisp function that
> counts open,close parens/braces/brackets. It's by no means perfect,
> but it's good enough to tide me over between calls to the full-file
> formatter
> (scalariform) in the server.
>
> -Aemon
>
>
>
>
>
>
>
> On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt <de [dot] [dot] [dot] [at] derekwyatt [dot] org> wrote:
> > I've decided to try and follow in Daniel's footsteps and get ENSIME
> > working for Vim.  My previous attempt to pull Scala into Vim was a sad
> > - basically functional, but I want more.
>
> > It looks like Marc Weber (https://github.com/MarcWeber/ensime)
> > starting hacking this together but hasn't touched it in a while.  It
> > also looks like he's ignored the swank protocol and made a fork that
> > does JSON; I'd rather just speak swank.
>
> > This email has two purposes:
>
> > 1) Canvassing for help - if you're a Vim guy and want to help,
> > please... please do :)
> > 2) I haven't been able to see if ENSIME would solve my indent-woes.
> > It looks like it's the elisp code that calculates the current indent
> > level, not the ENSIME server.  True?
>
> > I haven't been able to get a solid indent calculator yet and I was
> > hoping that ENSIME would be the silver bullet to solve that problem.
> > I could port the elisp, of course, but I'd rather not - I just want to
> > stand on the shoulders of the ENSIME server, and be lazy :)

Derek Wyatt 2
Joined: 2011-02-12,
User offline. Last seen 42 years 45 weeks ago.
Re: Vim ENSIME Thingy

That's awesome... I'm sure I could port it to Vim but I'd really
rather not. Do you think there'd be any value in one (or both) of us
porting it to ENSIME? Do you think it's possible, or is it necessary
to use the context that's already known to the editor?

On Aug 29, 4:18 pm, Daniel Spiewak wrote:
> +1 on speaking swank.  I've only been working with ENSIME for a little while
> and emulating the emacs mode's semantics has already paid dividends.
>
> Regarding indentation, I agree that simple brace counting isn't even
> remotely sufficient.  My jEdit mode actually does a pretty decent job of
> auto-indentation (note: *not* the same as the jEdit mode included in the
> Scala distro, which is actually quite awful).  The main thing it gets wrong
> are multi-line case expressions without curly braces.  For example:
>
> case foo =>
>   bar
>   baz
>
> Context sensitivity is a horrible thing.
>
> The nice thing about it is the indentation mode is entirely specified in
> terms of regular expressions and brace matching (which jEdit has built-in).
> So, the auto-indent specification is quite concise and fairly easy to adapt
> to other languages with similar edit mode specification capabilities (like
> Vim).
>
> Daniel
>
>
>
>
>
>
>
> On Mon, Aug 29, 2011 at 2:56 PM, Derek Wyatt wrote:
> >
> > So, let me get this straight... an operating system / editor with a
> > strong bent toward a lisp dialect already has code to match up
> > braces??? Awesome!
> >
>
> > Actually Vim has the same thing, but like Emacs, the Vim scala
> > indenter leaves me wanting... I'm the maintainer of it, and I don't
> > want to be anymore :)  Figuring out a cheap function to assess the
> > Scala indent level is painful.
>
> > Assuming I can get this going, it would possibly be beneficial to have
> > the indenter in ENSIME - I've already contacted the Scalariform author
> > to see if I could rip off his code to do it but, not surprisingly,
> > it's not designed for that - it croaks on "incomplete" code, which is
> > the state that the file will be in most of the time.
>
> > I'm going to poke at ENSIME with a stick for the next few days and see
> > what I can get out of it without having to modify the server.  The
> > fact that Daniel's managed to get it going noninvasively has spurred
> > me on to give it a go myself.
>
> > Thanks for all the hard work!  (Could this be the first time that Vim
> > makes use of code that was largely written for Emacs? Could there be a
> > scandal?)
>
> > On Aug 29, 2:38 pm, Aemon Cannon wrote:
> > > Hey Derek,
>
> > > Sounds great!
> > > I agree that speaking swank will be better in the long run.
>
> > > You are correct that ENSIME's line-at-a-time indentation is handled
> > > in elisp. The method I use is the one that Steve Yegge cooked up for
> > > his javascript mode. It depends on a little-known elisp function that
> > > counts open,close parens/braces/brackets. It's by no means perfect,
> > > but it's good enough to tide me over between calls to the full-file
> > > formatter
> > > (scalariform) in the server.
>
> > > -Aemon
>
> > > On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt
> > wrote:
> > > > I've decided to try and follow in Daniel's footsteps and get ENSIME
> > > > working for Vim.  My previous attempt to pull Scala into Vim was a sad
> > > > - basically functional, but I want more.
>
> > > > It looks like Marc Weber (https://github.com/MarcWeber/ensime)
> > > > starting hacking this together but hasn't touched it in a while.  It
> > > > also looks like he's ignored the swank protocol and made a fork that
> > > > does JSON; I'd rather just speak swank.
>
> > > > This email has two purposes:
>
> > > > 1) Canvassing for help - if you're a Vim guy and want to help,
> > > > please... please do :)
> > > > 2) I haven't been able to see if ENSIME would solve my indent-woes.
> > > > It looks like it's the elisp code that calculates the current indent
> > > > level, not the ENSIME server.  True?
>
> > > > I haven't been able to get a solid indent calculator yet and I was
> > > > hoping that ENSIME would be the silver bullet to solve that problem.
> > > > I could port the elisp, of course, but I'd rather not - I just want to
> > > > stand on the shoulders of the ENSIME server, and be lazy :)

daniel
Joined: 2008-08-20,
User offline. Last seen 44 weeks 14 hours ago.
Re: Re: Vim ENSIME Thingy
Actually, the way that Vim does auto-indentation (by default) is very, very close to the way that jEdit does it.  You could probably just copy/paste my regular expressions, change the declaration syntax a shade and call it a day.  Neither editor actually uses parse context to determine auto-indentation.  In fact, jEdit doesn't really have an accessible notion of parse context (which is why my hack to get XML literals highlighted is so cool).  This lack of context also makes auto-completion nearly impossible, since ENSIME requires the editor to supply the parse context, and neither jEdit nor Vim actually have it.

So anyway, you should take a look!  I've written some basic Vim modes in the past, and the way things like auto-indentation are handled is very, very close to how jEdit does it.  If anything, it might be slightly easier for you since you won't have to deal with some of the more annoying bugs in jEdit's parser (generally relating to line delimiters).

Daniel

On Mon, Aug 29, 2011 at 3:23 PM, Derek Wyatt <derek [at] derekwyatt [dot] org> wrote:
That's awesome... I'm sure I could port it to Vim but I'd really
rather not.  Do you think there'd be any value in one (or both) of us
porting it to ENSIME?  Do you think it's possible, or is it necessary
to use the context that's already known to the editor?

On Aug 29, 4:18 pm, Daniel Spiewak <djspie [dot] [dot] [dot] [at] gmail [dot] com> wrote:
> +1 on speaking swank.  I've only been working with ENSIME for a little while
> and emulating the emacs mode's semantics has already paid dividends.
>
> Regarding indentation, I agree that simple brace counting isn't even
> remotely sufficient.  My jEdit mode actually does a pretty decent job of
> auto-indentation (note: *not* the same as the jEdit mode included in the
> Scala distro, which is actually quite awful).  The main thing it gets wrong
> are multi-line case expressions without curly braces.  For example:
>
> case foo =>
>   bar
>   baz
>
> Context sensitivity is a horrible thing.
>
> The nice thing about it is the indentation mode is entirely specified in
> terms of regular expressions and brace matching (which jEdit has built-in).
> So, the auto-indent specification is quite concise and fairly easy to adapt
> to other languages with similar edit mode specification capabilities (like
> Vim).
>
> Daniel
>
>
>
>
>
>
>
> On Mon, Aug 29, 2011 at 2:56 PM, Derek Wyatt <de [dot] [dot] [dot] [at] derekwyatt [dot] org> wrote:
> > <good natured sarcasm>
> > So, let me get this straight... an operating system / editor with a
> > strong bent toward a lisp dialect already has code to match up
> > braces??? Awesome!
> > </good natured sarcasm>
>
> > Actually Vim has the same thing, but like Emacs, the Vim scala
> > indenter leaves me wanting... I'm the maintainer of it, and I don't
> > want to be anymore :)  Figuring out a cheap function to assess the
> > Scala indent level is painful.
>
> > Assuming I can get this going, it would possibly be beneficial to have
> > the indenter in ENSIME - I've already contacted the Scalariform author
> > to see if I could rip off his code to do it but, not surprisingly,
> > it's not designed for that - it croaks on "incomplete" code, which is
> > the state that the file will be in most of the time.
>
> > I'm going to poke at ENSIME with a stick for the next few days and see
> > what I can get out of it without having to modify the server.  The
> > fact that Daniel's managed to get it going noninvasively has spurred
> > me on to give it a go myself.
>
> > Thanks for all the hard work!  (Could this be the first time that Vim
> > makes use of code that was largely written for Emacs? Could there be a
> > scandal?)
>
> > On Aug 29, 2:38 pm, Aemon Cannon <aemoncan [dot] [dot] [dot] [at] gmail [dot] com> wrote:
> > > Hey Derek,
>
> > > Sounds great!
> > > I agree that speaking swank will be better in the long run.
>
> > > You are correct that ENSIME's line-at-a-time indentation is handled
> > > in elisp. The method I use is the one that Steve Yegge cooked up for
> > > his javascript mode. It depends on a little-known elisp function that
> > > counts open,close parens/braces/brackets. It's by no means perfect,
> > > but it's good enough to tide me over between calls to the full-file
> > > formatter
> > > (scalariform) in the server.
>
> > > -Aemon
>
> > > On Mon, Aug 29, 2011 at 1:50 PM, Derek Wyatt <de [dot] [dot] [dot] [at] derekwyatt [dot] org>
> > wrote:
> > > > I've decided to try and follow in Daniel's footsteps and get ENSIME
> > > > working for Vim.  My previous attempt to pull Scala into Vim was a sad
> > > > - basically functional, but I want more.
>
> > > > It looks like Marc Weber (https://github.com/MarcWeber/ensime)
> > > > starting hacking this together but hasn't touched it in a while.  It
> > > > also looks like he's ignored the swank protocol and made a fork that
> > > > does JSON; I'd rather just speak swank.
>
> > > > This email has two purposes:
>
> > > > 1) Canvassing for help - if you're a Vim guy and want to help,
> > > > please... please do :)
> > > > 2) I haven't been able to see if ENSIME would solve my indent-woes.
> > > > It looks like it's the elisp code that calculates the current indent
> > > > level, not the ENSIME server.  True?
>
> > > > I haven't been able to get a solid indent calculator yet and I was
> > > > hoping that ENSIME would be the silver bullet to solve that problem.
> > > > I could port the elisp, of course, but I'd rather not - I just want to
> > > > stand on the shoulders of the ENSIME server, and be lazy :)

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland