[OT] Auto code reformating / one coding style enforcment.
kris
foo at bar.com
Mon Aug 14 20:48:02 PDT 2006
pragma wrote:
> kris wrote:
>
>> Pragma wrote:
>>
>>> Unknown W. Brackets wrote:
>>>
>>>> In my code, I use hard tabs for everything and set my tab-width to 4
>>>> spaces.
>>>>
>>>> I've never had trouble with printing code (something I do less often
>>>> than have birthdays, mind you) nor any text editor displaying my
>>>> code weirdly.
>>>>
>>>> Some people hate hard tabs, because they just have to line things up
>>>> after a non-tab character with tabs. I think this is a Bad Thing
>>>> (TM), but if you have to do it, I understand using spaces.
>>>>
>>>> But I've never seen a case where a program would misbehave if the
>>>> tab width was not set to 8.... I just can't wrap my head around the
>>>> benefit of using both tabs *and* spaces.
>>>>
>>>> -[Unknown]
>>>>
>>>>
>>>>> Unknown W. Brackets wrote:
>>>>>
>>>>>> Uh-huh, sure.
>>>>>>
>>>>>> You're usually right, but I don't like having to hit backspace
>>>>>> four times or 1 time alternatively based on my indentation level.
>>>>>> That's just bizarre. I've never seen someone mix tabs like that
>>>>>> before...
>>>>>>
>>>>>> Why do you prefer it, if I may ask?
>>>>>>
>>>>>> -[Unknown]
>>>>>>
>>>>>>
>>>>>>> It works just fine when you set tabs to be 8 characters, as god
>>>>>>> intended them to be.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Because it isn't screwed up when you type it to the screen or the
>>>>> printer.
>>>
>>>
>>>
>>> For what it's worth, I think Sean is talking about code like this:
>>>
>>> switch(x){
>>> case 'foo': break; // 2 tabs
>>> case 'something': break; // 1 tab
>>> }
>>>
>>> On my display, with tab=8 spaces in Thunderbird, the 'break'
>>> statements all line up perfectly. If your viewer has it set to
>>> something else (say 4 spaces), it doesn't look right. So its the
>>> /internal/ indentation that fails here, as the left column will
>>> always look clean.
>>>
>>> IMO, this is what code beautifiers are for. I'm not going to worry
>>> about inconsistent tabbing and spacing in any of my projects until
>>> release time comes around anyway. ;)
>>
>>
>>
>>
>> Yes ~ I vote that all D code should strictly avoid the use of *any*
>> indentation :D
>
>
> Better yet, why don't we just make 'indent' a keyword? Then there'll be
> no mistaking exactly how much whitespace there is supposed to be!
>
> void main(){
> indent uint x;
> indent writefln("X is: %d",x);
> }
>
> Hrm... carriage returns can be kind of inconsistent between platforms
> too. Let's fix that with 'newline' while we're at it.
>
> newline;
> class Foobar{ newline
> indent this(){ newline;
> indent(2) /*do nothing*/ newline;
> indent } newline
> } newline;
>
> Better, but spacing could wind up inconsistent too. That's easy enough
> to fix: the spec says that '__' is reserved, so we'll just use that
> instead of space:
>
> uint__factorial(uint__x){__newline
> indent()if(x__<=__1){newline
> indent(2)__return__1__newline;
> indent}newline
> indent()else{newline
> indent(2)return__x__*__factorial(x-1)__newline;
> indent}newline
> }newline;
>
> There, much better! :-P
>
Hrm. Too many darned Returns ....
uint__factorial(uint__x){__newline__indent()if(x__<=__1){newline__indent(2)__return__1__newline;indent}newline__indent()else{newline__indent(2)return__x__*__factorial(x-1)__newline;indent}newline__}newline;
There ~ even better!
More information about the Digitalmars-d
mailing list