On another subject what do you guys think of only coloring decleared variables instead of all variables?

Interesting idea. You won't be able to catch all of them - GLOBALs declared in a parent script for instance.

You will also have to be very aware of scope. Take the following example:
If "FOO" <> "BAR"
Dim $s
End If
"Answer: "+$s

In this case the $s inside the IF construct is declared, the one outside is not.

Variables may also be declared later in the script from the point that they are used, so you cannot rely on the variable declaration being at a physically earlier point in the script.

As an even more useful solution, perhaps you could offer:
  • Jump to next undeclared variable
  • Automatically declare undeclared variables here
  • A meta-tag to ignore variables which are falsely detected as undeclared.