Missing "end" and My least favourite ruby error message

"syntax error, unexpected $end, expecting kEND"

With the line number pointing to the last line of the file.

So I was busy doing something when I was interrupted and I dropped an
"end" somewhere.

No idea where.

Sigh! Time for a binary chop search.

I wish I could think of an easier way, like the highlighting emacs
does for '(; and '{'

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

John Carter wrote:

"syntax error, unexpected $end, expecting kEND"

With the line number pointing to the last line of the file.

So I was busy doing something when I was interrupted and I dropped an
"end" somewhere.

No idea where.

Sigh! Time for a binary chop search.

I wish I could think of an easier way, like the highlighting emacs
does for '(; and '{'

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

I think vim syntax coloring highlights xx-end pairs, and Komodo's
auto-indent cleans them up nicely as well.

Binary chop was useless. Wherever I put an "end", it would compile!

It took me ages to review it line by line and spot it....

blah.each do |line|
   foo.bah( line)
   foo.blech
   foo.
end

Ruby helpfully thought I was invoking the "end" method on the object in the foo variable.

Sigh!

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

···

On Thu, 6 Sep 2007, John Carter wrote:

"syntax error, unexpected $end, expecting kEND"

With the line number pointing to the last line of the file.

So I was busy doing something when I was interrupted and I dropped an
"end" somewhere.

No idea where.

Sigh! Time for a binary chop search.

I wish I could think of an easier way, like the highlighting emacs
does for '(; and '{'

Hi,

···

Am Donnerstag, 06. Sep 2007, 07:23:36 +0900 schrieb M. Edward (Ed) Borasky:

John Carter wrote:
> "syntax error, unexpected $end, expecting kEND"
>
> With the line number pointing to the last line of the file.
>
> So I was busy doing something when I was interrupted and I dropped an
> "end" somewhere.
>
> I wish I could think of an easier way, like the highlighting emacs
> does for '(; and '{'

I think vim syntax coloring highlights xx-end pairs, and Komodo's
auto-indent cleans them up nicely as well.

The newest Vim highlights module's `end' underlined and
classes `end' non-underlined. Moving the module's end
through the file I find them quite easy.

The only thing I have to do is to update my old
sub-highlighting that features SQL and TeX strings. Sigh.

Bertram

--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de

I find that the best way to find these in (g)vim is

  ggVG=

ggVG selects all the lines in the file and then = re-formats the indentation.

In most cases this will point out the problem, although there are a
few cases where vims ruby formatter got confused.

I had one today which had me scratching my head for a few moments, I'd
inadvertantly put in a line something like

    x .y unless unless a.b

Took me a bit of effort to find that one.

···

On 9/5/07, Bertram Scharpf <lists@bertram-scharpf.de> wrote:

Hi,

Am Donnerstag, 06. Sep 2007, 07:23:36 +0900 schrieb M. Edward (Ed) Borasky:
> John Carter wrote:
> > "syntax error, unexpected $end, expecting kEND"
> >
> > With the line number pointing to the last line of the file.

> > I wish I could think of an easier way, like the highlighting emacs
> > does for '(; and '{'
>
> I think vim syntax coloring highlights xx-end pairs,

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

gg=G
move to start of file, initiate indent-action, move to end of file :slight_smile:

and yeah, that's how i find 99.5% of missing ends, unless i use some
regexps that mess up the indentation :expressionless:

^ manveru

···

On 9/6/07, Rick DeNatale <rick.denatale@gmail.com> wrote:

On 9/5/07, Bertram Scharpf <lists@bertram-scharpf.de> wrote:
> Hi,
>
> Am Donnerstag, 06. Sep 2007, 07:23:36 +0900 schrieb M. Edward (Ed) Borasky:
> > John Carter wrote:
> > > "syntax error, unexpected $end, expecting kEND"
> > >
> > > With the line number pointing to the last line of the file.

> > > I wish I could think of an easier way, like the highlighting emacs
> > > does for '(; and '{'
> >
> > I think vim syntax coloring highlights xx-end pairs,

I find that the best way to find these in (g)vim is

  ggVG=

ggVG selects all the lines in the file and then = re-formats the indentation.