On 2/17/2014 9:54 PM, Manu wrote:
On 18 February 2014 06:00, Walter Bright <[email protected]> wrote:


I tend to format such like this:


          int difficulty;
          switch(e.note.note)
          {
            case 60: .. case 71:  difficulty = 0;  break;
            case 72: .. case 83:  difficulty = 1;  break;
            case 84: .. case 95:  difficulty = 2;  break;
            case 96: .. case 107: difficulty = 3;  break;
            default:              difficulty = -1; break;
          }

By lining things up, it takes on a tabular appearance. People are good at
inferring patterns, and such tabular arrangements make it easy to spot
squeaky wheels.


Me too, but you don't feel this is basically a hack?
About half of that text is repeated cruft, and there's no precedent for
formatting well-structured code like that anywhere else in the language.
How long would you say you spend on average fiddling with the tabulation?

I use the formatting posted above, and it takes me very, very little time.

I am known to spend minutes pressing the space bar, trying to make it line
up and look nice. And then invariably, some other case comes along, with a
slightly longer identifier name, and you have to work your way up shifting
everything around against with a bunch more spaces.. pollutes source
control history, etc.

Sounds like you need elastic tabstops:

http://nickgravgaard.com/elastictabstops/

I don't use them personally since PN2 doesn't support them yet, but they're a brilliant idea and they do solve that re-aligning issue. Word processors figured out how tabstops are supposed to work ages ago. Elastic tabstops really just amount to bringing code editors' ancient tab-handling up-to-date with the 90's.

And then that case with the REALLY long identifier name comes along, and
you end out with so many spaces surrounding all the other cases, that it
becomes difficult to associate which line matches which case, so then you
think to yourself, "this one long case is ruining my code, maybe I should
break the pattern and fall this long one onto it's own line below...", and
then you're just wasting time, pushing the spacebar key, trying to work
around something that shouldn't have been an issue in the first place.
Often enough the break statements end up far off the right hand side of the
screen due to that one long statement in the sequence; do you line them all
up religiously far to the right? Or do you make an exception for that one
long line, allowing it to span beyond the 'break' line, and keep the rest
lined up nearer to the code they terminate?
Tell me this doesn't happen to you? Surely I'm not the only one that faces
this sort of conundrum frequently when I try and use switch? :)

Erm, between all of that, plus your strong objection to "default: break;", I really do get the impression you're just simply being very OCD about this stuff. I don't mean that as an insult, I just think it's all a bit "Adrian Monk of source code", if you're familiar with the reference.

Reply via email to