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 C. Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : [email protected]
New Zealand

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

John C. wrote:

New Zealand

I think vim syntax coloring highlights xx-end pairs, and Komodo’s
auto-indent cleans them up nicely as well.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG3yxa8fKMegVjSM8RAr13AKCMwMxxNxYp/bbQH7reUZG2ey00nQCgx3p2
yOIZh817XZU1pc8B3Xbaa7k=
=8AgP
-----END PGP SIGNATURE-----

Hi,

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

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 classesend’ 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

On 9/5/07, Bertram S. [email protected] wrote:

Hi,

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

John C. 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.

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.


Rick DeNatale

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

On 9/6/07, Rick DeNatale [email protected] wrote:

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.

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 Thu, 6 Sep 2007, John C. wrote:

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

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 C. Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : [email protected]
New Zealand