nannerpus
nannerpus

Reputation: 1445

TextMate toggle comment macro is broken

My laptop crashed and when it rebooted, "cmd /" (toggle comment) was broken. When I try to toggle comments on a line that only contains "foo", I get this output in my code instead of "# foo":

/tmp/temp_textmate.2erfLj:68:in /bin/bash: -c: line 0: unexpected EOF while looking for matching '' /bin/bash: -c: line 1: syntax error: unexpected end of filemap' for " foo":String (NoMethodError) from /tmp/temp_textmate.2erfLj:48:in /bin/bash: -c: line 0: unexpected EOF while looking for matching'' /bin/bash: -c: line 2: syntax error: unexpected end of file'

This is driving me nuts

Upvotes: 8

Views: 1534

Answers (4)

Dan S.
Dan S.

Reputation: 177

If you're using ruby 2.0 or you recently upgraded to Mavericks (system ruby in Mavericks is now 2.0), edit abovementioned command and add "-Ku" to the first line, like so: #!/usr/bin/env ruby -Ku

Worked for me.

Upvotes: 1

20man
20man

Reputation: 1449

Matt Hayes' answer pointed me to the trouble spot.

Bundles -> Bundle Editor -> Edit Commands --> Source --> Comment Line / Selection

change line 139:

- lines = text.to_a
+ lines = text.split(/$/).map(&:chomp)

#to_a is no longer a string method.

http://ruby-doc.org/core-1.9.3/String.html

Upvotes: 25

Matt Hayes
Matt Hayes

Reputation: 71

I ran into the same issue and figured out a workaround. Reinstalling TextMate did not help in my case.

Bundles -> Bundle Editor -> Edit Commands --> Source --> Comment Line / Selection

At the top of the script you should see this:

#!/usr/bin/env ruby

I changed this to use another installation of Ruby. In my case I'm using RVM to manage different Ruby versions, so I have:

#!/Users/_username_/.rvm/rubies/ruby-1.8.7-p334/bin/ruby

So it seems something got screwed up with the default system Ruby.

Upvotes: 7

codr
codr

Reputation: 914

I had this same problem. Reinstalling TextMate seems to have solved the problem.

This problem appeared after migrating from one Mac to another. I'm not sure if thats the cause though. They where both MacBook Pro's running snow leopard.

Upvotes: 2

Related Questions