Hi peeps. I was told this was the best place to put this. I've had a hunt round the mailing list archives and dug up an elegant solution here or there for Vim-style comment block behaviour, but nothing obsessive-compulsive enough to quite satisfy me. So here's mine! I hope you find it useful.
#!/usr/bin/env ruby
# TextMate command to continue block comment # Preserves whitespace before and after asterisk
# Save: Nothing # Input: Selected Text / Line # Output: Insert as Snippet # Activation: Key Equivalent # Scope: comment.block
line = ENV['TM_CURRENT_LINE'] caret = ENV['TM_LINE_INDEX'].to_i
before = (caret > 0) ? line[0..caret-1] : '' after = line[caret..-1]
before =~ /^(\s*)(/)?*(\s*)/
if $& spc = $2 ? ' ' : '' printf before + "\n#{$1}#{spc}*#{$3}$0" + after else before =~ /^(\s*)/ printf before + "\n#{$1}$0" + after end
This is also my first ever custom command, so it might look a bit rough. Also, it doesn't insert the space after the asterisk by default, but by its very indentation-preserving nature will happily add it after you type one out on the first line.
I guess if there IS a way to do this with a snippet after all, I'm going to look a bit silly.