Yeah, that's a pain. And I don't like the double spacing on the [ code ] tag either. It's ok for a very small snippet, but useless for anything longer.
The problem here is that the backend is replacing all linefeeds with <BR> tags, thus creating the doublespace issue. I remember looking at it when I added the [q] tags, and decided it was too much of a pain to fix at the time. I am going to do some limited testing hopefully in the next few weeks to migrate the BBS to the 6.x codebase.
What I really want is a [ code=x ] tag where x can be any of {perl, php, c, sh, java, ...}, that will color and space syntactically.
I'll adopt Mark's policy on Hijack addons here. Send me the code, and I'll look at implementing it