[TxMt] Ruby (Un)Comment command
Chris Thomas
chris at m-audio.com
Wed Dec 22 18:48:52 UTC 2004
On Dec 22, 2004, at 11:15 AM, William D. Neumann wrote:
> On Wed, 22 Dec 2004, Chris Thomas wrote:
>
>
>> If Ruby 1.8 isn't installed in /usr/bin, you'll need to specify the
>> full path to it. Ruby's default install location is /usr/local, so
>> I'd guess that you need:
>>
>> /usr/local/bin/ruby -s ...
>>
> OK, that fixed the first problem... The ruby in /usr/bin was v1.6.8,
> and TextMate was using that version instead of the 1.8.1 installed via
> Fink. However, now that I'm using the correct version, I'm having new,
> exciting issues...
>
> /Users/wneuman/Library/Dev/TextMate/comment.rb:23: invalid regular
> expression; there's no previous pattern, to which '*' would define
> cardinality at 6: /^\s*(*(.*)*)/ (RegexpError)
>
> Im guessing that this problem is stemming from the OCaml comment
> delimiters being "(*" and "*)", which seem to be messing up the regexp
> created in line 24 of the script. I'm guessing that they're not being
> escaped when comment_expr is created, however, escaping them up when
> they're defined in line 16 (either manually or via Regexp.escape)
> wraps the block with escaped delimiters "\(\*" and "\*\)" -- this also
> breaks uncommenting.
>
> Any Ruby speakers have a fix for this?
Replace the line:
comment_expr =
/^\s*#{regexp_quoted_comments[0]}(.*)#{regexp_quoted_comments[1]}/
With:
# Quote any regexp characters
regexp_quoted_comments = comment_strings.map {|string|
Regexp.quote(string)}
comment_expr =
/^\s*#{regexp_quoted_comments[0]}(.*)#{regexp_quoted_comments[1]}/
Chris
More information about the textmate
mailing list