On Apr 18, 2006, at 6:15 PM, Allan Odgaard wrote:
[ switch/case ] I believe this is a pretty standard formatting convention.
Yes, along with putting brackets around the code,
I don't see why that should be a problem. In Xcode, for instance, if you open a C file and start typing a switch/case block, it will indent after you type the case clause and hit Return. Then, if you type an open brace, it will automatically *unindent* for you. Couldn't TextMate do the same thing?
keeping the break at same indent as the case,
Hmm, I've never seen that one. Do people actually do that? (Xcode doesn't handle it, either.)
putting the break inside the brackets, etc. :)
This is handled correctly by Xcode. It automatically unindents the closing brace when you type it.
[...] I was hoping it could be smart about indenting switch/case blocks, too. Is that possible? Perhaps there is something I could add to the language definition?
While the indenting rules can be controlled [1], it does not have enough flexibility to work with switch/case statements.
[1] http://macromates.com/textmate/manual/appendix#indentation_rules
Hmm, maybe increaseIndentPattern isn't powerful enough to give Xcode- like behavior to switch/case blocks, but I think it can be hacked enough to make me happy. I went to the C bundle's Indentation Rules and appended this to increaseIndentPattern:
|case.*:
That seems to give exactly the behavior I want. (I never need to put braces in my case blocks.) I also added source.java to the Scope Selector so that this would work in Java files.
Trevor