Tabs And Indentation

From K-3D

Jump to: navigation, search

The traditional K-3D style has been to indent twice on if-statements and loops, once for the braces (on their own lines, of course), and once for the body of the block.

Surprisingly (not least of all to me), I had a recent contract where I actually liked a different style guideline, which is to align the braces (still on their own lines, goddammit!) with the if-statement / loop. Three things about it that I appreciated:

  • The indentation is the same whether you follow a conditional with a single statement or a block, e.g if you move from:
   if(foo)
       bar();

to:

   if(foo)
   {
       bar();
       baz();
   }

... you don't have to change the indentation. Even if you aren't changing back-or-forth, identical nesting levels have identical indentation.

  • Consistent indentation WRT methods and classes, e.g, the old style is a mixture of single- and double-tabs that align in some cases and not others:
   class foo
   {
       void bar()
       {
           if(baz)
               {
                   buz();
               }
       }
   };

... while the new style is much more consistent:

   class foo
   {
       void bar()
       {
           if(baz)
           {
               buz();
           }
       }
   };
  • Uses-up less screen real-estate, which wasn't a revelation to me of course, but I seem to appreciate it more than I used-to.
Personal tools