Would one of you nice people on this thread please explain what the "problem" 
is that you are all trying to solve?  I have read every post and I still 
don't understand what it is that needs to be fixed.  Matz's comment on 
"roles" [16120] came close, but I thought a block was a proc, that 
occasionally, behind the scenes one was converted to the other.  You change 
the syntax and you don't just highlight a mode, you create a new thing.  I 
would really like to understand the problem.