Hi,
Thanks for a great job!!!
But I found a minor bug:
Highlight broken when variable surrounded by {}, see the code after the "foreach" block
proc test {blocks {output ""}} {
set a 1
array set done [list]
foreach broken [list a b c] {
if {![info exists done(${broken})]} {
puts "done"
}
}
set b 1 #Highlight broken
puts "bad" #Highlight broken
}
#Highlight broken
proc another_proc {} {
puts "Inside of another block is ok"
}

Thanks,
Alex.