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