Oh. Yeah Geany read shebangs and use those over the extension to determine the file type. In your example it's indeed impractical because there is actually 2 different syntax in the same file, but I'm afraid it's a little too complex to deal with, as it measn actually understanding what the shell script *does*.
Also, the `env` technique mentioned in your link is really better unless it actually has a drawback for you, because it's simpler, spawns a simpler intermediate program (`env` is a lot lighter than `sh` -- let alone `bash`), and is common in other languages too, like Python (which commonly uses `#!/usr/bin/env python`). And it won't confuse tools parsing the shebang line either, because they will either not know about the language `env` uses, or they will understand the construct and read the name of the next argument (so here that would be `wish`) and base a guess on that.