digitalmars.D - indent style for D
- Gour (13/13) Jan 29 2012 Hello!
- =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= (4/12) Jan 29 2012 Phobos generally uses 4-space indentation.
- Gour (11/12) Jan 29 2012 That is mentioned in the style-guide, but I'm curious about bracing,
- Trass3r (3/8) Jan 29 2012 Some people seem to use that godawful BSD KNF style.
- Jonathan M Davis (9/16) Jan 29 2012 Phobos uses Allman: http://en.wikipedia.org/wiki/Indent_style#Allman_st=
- Trass3r (1/3) Jan 29 2012 Totally agree.
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (16/19) Jan 29 2012 Well, people adapt and values change. :)
- Marco Leise (8/23) Jan 29 2012 've
- Denis Shelomovskij (35/49) Jan 29 2012 I don't think there is the best coding style (personally I like both K&R...
- Iain Buclaw (19/71) Jan 29 2012 :
- Denis Shelomovskij (5/68) Jan 29 2012 Example, please.
- Iain Buclaw (52/137) Jan 29 2012 =82:
- Denis Shelomovskij (4/130) Jan 29 2012 Even worse, it still depends on editor - it can just add N to current
- bearophile (4/6) Jan 29 2012 D2 style guide should *require* D2 to be edited using a mono-spaced font...
- Stewart Gordon (9/14) Jan 29 2012 What do you mean by the "D2 front-end"? The compiler front-end, or some...
- bearophile (4/5) Jan 29 2012 It was one of my first attempts at humor :-)
- Denis Shelomovskij (2/7) Jan 29 2012 Thanks for explicitly defining that! You just saved a lot of my time. )
- Jesse Phillips (2/7) Jan 29 2012 Don't worry I had a good laugh.
- Stewart Gordon (9/14) Jan 29 2012 What do you mean by the "D2 front-end"? The compiler front-end, or some...
- Russel Winder (21/27) Jan 29 2012 and the D2 front-end should enforce this with a "-ms" compiler switch.
- Walter Bright (2/4) Jan 29 2012 What? How could the compiler possibly know what font was used in your ed...
- Denis Shelomovskij (7/13) Jan 29 2012 It's your compiler, Walter!
- Mantis (3/9) Jan 29 2012 This can be passed by user as a compiler switch, something like:
- bearophile (4/5) Jan 29 2012 Sorry Walter, this time I wasn't serious :-)
- Walter Bright (2/5) Jan 29 2012 All I can say is, I'm glad. That was a heluva WTF!
- H. S. Teoh (11/22) Jan 29 2012 I always code with tab stops set to 8 and line wrapping set to 80
- Kagamin (2/5) Jan 29 2012 Tried many monospaced fonts, none is more readable than verdana.
- =?UTF-8?B?QWxpIMOHZWhyZWxp?= (4/8) Jan 29 2012 Proudly, me too! I want to look at monospaced code with to tabs anywhere...
- Iain Buclaw (6/12) Jan 29 2012 I think D should go even further than that and drop those horrid curly
- Sean Cavanaugh (9/21) Jan 29 2012 There are huge swaths of unused unicode values, including a rather
- Stewart Gordon (5/10) Jan 29 2012 It's already been tried (APL). OK, so maybe the "that make sense" aspec...
- H. S. Teoh (16/22) Jan 29 2012 [...]
-
Stewart Gordon
(6/9)
Jan 30 2012
- H. S. Teoh (10/20) Jan 30 2012 [...]
- H. S. Teoh (12/14) Jan 29 2012 [...]
- Artur Skawina (5/19) Jan 29 2012 http://delight.sourceforge.net/
- Daniel Murphy (1/1) Jan 29 2012 http://media.comicvine.com/uploads/6/67698/1595201-oh_look_its_this_thre...
- a (4/5) Jan 29 2012 That's nothing. If you want to see a truly great bikeshedding
- Trass3r (8/12) Jan 29 2012 There wouldn't be any problem if people were able to use tabs for
- David (4/8) Jan 29 2012 Where's the problem, you can configure most editors to insert N-spaces
- deadalnix (5/14) Jan 29 2012 So, the point is saving spaces and programing many many tricks in the
- Stewart Gordon (14/23) Jan 29 2012 Some editors (Notepad++ included), when configured to do tabs as spaces,...
- Marco Leise (8/17) Jan 29 2012 If it cheers you up, I use that style. Once you get used to 'smart tabs'...
- Timon Gehr (2/21) Jan 29 2012 *Real* editors can be configured to support smart tabs.
- Marco Leise (2/27) Jan 29 2012 I sense a hint to some obscure Unix tool like vim or emacs.
- Zardoz (4/30) Jan 31 2012 So a butterfly.
- Stewart Gordon (18/20) Jan 29 2012 But when alignment spaces begin at the beginning of the line, or immedia...
- Russel Winder (15/18) Jan 29 2012 Isn't that the whole point: using spaces causes conflict over
- Stewart Gordon (5/13) Jan 29 2012 It is. But mishmashing tab and space indentation causes far worse confl...
- Russel Winder (17/18) Jan 29 2012 ct.
- Denis Shelomovskij (5/9) Jan 29 2012 Looks the reason against tabs is: mixed tabs and spaces is bad. So we
- H. S. Teoh (10/21) Jan 29 2012 [...]
- Denis Shelomovskij (6/14) Jan 29 2012 No, it isn't. Spaces aren't comfortable to use in existed editors. In
- Walter Bright (7/8) Jan 29 2012 Right, and I use tabs in my editor.
- Denis Shelomovskij (5/13) Jan 29 2012 I will be happy once I will find a working tool for reverse operation.
- Kagamin (2/3) Jan 29 2012 AFAIK, only windows notepad can't handle lf nowadays. That's it?
- Walter Bright (2/5) Jan 29 2012 So far, I've seen no issues with standardizing on LF line endings.
- Kagamin (3/12) Jan 29 2012 Ermm... I mean, if you use tolf, then your editor uses something
- Derek (8/10) Jan 29 2012 This works ok for editors, but I can't work out how to configure my
- Marco Leise (18/25) Jan 29 2012 If you are the web-master, you use the corresponding CSS3 attribute
- Walter Bright (6/7) Jan 29 2012 Because it works, changing it would be a vast waste of time for a non-ex...
- Denis Shelomovskij (18/25) Jan 30 2012 OK, the major advantage of spaces is because my approach (tabs for
- Walter Bright (3/9) Jan 30 2012 Problems crop up when people check in stuff with tabs in it. I run every...
- Kagamin (4/5) Jan 30 2012 Poor topicstarter. His topic is hijacked and buried if flame, and
- Trass3r (1/4) Jan 29 2012 Everyone thinks his way is the best.
- deadalnix (4/8) Jan 29 2012 I would say that the most important is to be consistent accros a project...
- Manfred Nowak (6/8) Jan 29 2012 If it is indead important, then the project shoud have a tool that can
- Mirko Pilger (1/2) Jan 29 2012 http://golang.org/cmd/gofmt/
- =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= (8/20) Jan 29 2012 http://uncrustify.sourceforge.net/
- Sean Cavanaugh (11/15) Jan 29 2012 Thats because it is :)
- Timon Gehr (20/38) Jan 29 2012 makefile-mode in GNU emacs highlights leading spaces and points out
- H. S. Teoh (79/84) Jan 29 2012 You know, I'm starting to take seriously bearophile's (I think it was
- bearophile (4/7) Jan 29 2012 It wasn't me.
- Matej Nanut (8/8) Jan 29 2012 I like the look of 8-space indents, but I don't see how I could pull
- Iain Buclaw (6/14) Jan 29 2012 The answer to that is that if you need more than 3 levels of
- deadalnix (4/16) Jan 29 2012 Well, not to mention that this sentence first apply to C. Because if you...
- Timon Gehr (8/8) Jan 29 2012 More practical than requiring all source files to be saved without
- H. S. Teoh (10/22) Jan 29 2012 The problem with autoformatting on save is that it interacts badly with
- Iain Buclaw (6/25) Jan 29 2012 The flip side is that if you put everything on one line, no one will
- H. S. Teoh (16/32) Jan 29 2012 [...]
- Jonathan M Davis (15/28) Jan 29 2012 That's not going to work very well with D. You tend to get far too many ...
- H. S. Teoh (28/47) Jan 29 2012 I used to use 2-space indentation for this very reason. I've written
- Jonathan M Davis (9/22) Jan 29 2012 That doesn't hold for D. There are too many ways to legitimately end up ...
Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, Gour --=20 What is night for all beings is the time of awakening=20 for the self-controlled; and the time of awakening for=20 all beings is night for the introspective sage. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 29 2012
On 29-01-2012 10:15, Gour wrote:Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, GourPhobos generally uses 4-space indentation. -- - Alex
Jan 29 2012
On Sun, 29 Jan 2012 12:21:35 +0100 Alex R=C3=B8nne Petersen <xtzgzorex gmail.com> wrote:Phobos generally uses 4-space indentation.That is mentioned in the style-guide, but I'm curious about bracing, iow, GNUstyle, K&R, ANSI...? Sincerely, Gour --=20 The working senses are superior to dull matter; mind is higher=20 than the senses; intelligence is still higher than the mind;=20 and he [the soul] is even higher than the intelligence. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 29 2012
Am 29.01.2012, 12:34 Uhr, schrieb Gour <gour atmarama.net>:On Sun, 29 Jan 2012 12:21:35 +0100 Alex R=C3=B8nne Petersen <xtzgzorex gmail.com> wrote:Some people seem to use that godawful BSD KNF style. But I've also seen lots of Allman (ANSI)-style code.Phobos generally uses 4-space indentation.That is mentioned in the style-guide, but I'm curious about bracing, iow, GNUstyle, K&R, ANSI...?
Jan 29 2012
On Sunday, January 29, 2012 12:34:22 Gour wrote:On Sun, 29 Jan 2012 12:21:35 +0100 =20 Alex R=C3=B8nne Petersen <xtzgzorex gmail.com> wrote:Phobos uses Allman: http://en.wikipedia.org/wiki/Indent_style#Allman_st= yle But everyone is free to format their code how they like. Personally, I'= ve=20 never understood how anyone can stand anything other than Allman, but t= o each=20 their own, I suppose. - Jonathan M DavisPhobos generally uses 4-space indentation.=20 That is mentioned in the style-guide, but I'm curious about bracing, iow, GNUstyle, K&R, ANSI...?
Jan 29 2012
Personally, I've never understood how anyone can stand anything other than Allman.Totally agree.
Jan 29 2012
On 01/29/2012 06:54 AM, Trass3r wrote:Well, people adapt and values change. :) I've always used Allman style (although learning its name just now), until I started to work at my current job more than 4 years ago. We use a modified 1TBS by adding an extra empty line before the else: if (x < 0) { puts("Negative"); negative(x); // <-- added } else { puts("Non-negative"); nonnegative(x); } I know there isn't one perfect style, but to me, that's the most recognizable one. Of course I can rationalize it too. :) AliPersonally, I've never understood how anyone can stand anything other than Allman.Totally agree.
Jan 29 2012
Am 29.01.2012, 12:43 Uhr, schrieb Jonathan M Davis <jmdavisProg gmx.com>= :On Sunday, January 29, 2012 12:34:22 Gour wrote:On Sun, 29 Jan 2012 12:21:35 +0100 Alex R=C3=B8nne Petersen <xtzgzorex gmail.com> wrote:Phobos uses Allman: =Phobos generally uses 4-space indentation.That is mentioned in the style-guide, but I'm curious about bracing, iow, GNUstyle, K&R, ANSI...?http://en.wikipedia.org/wiki/Indent_style#Allman_style But everyone is free to format their code how they like. Personally, I='venever understood how anyone can stand anything other than Allman, but =to =each their own, I suppose. - Jonathan M DavisI have 31 visible lines of code in Eclipse, I need to conserve some spac= e. = Otherwise I like that style and use it for top-level struct/class = declarations.
Jan 29 2012
29.01.2012 15:21, Alex Rønne Petersen пишет:On 29-01-2012 10:15, Gour wrote:I don't think there is the best coding style (personally I like both K&R and Allman styles). IMHO things are different with indention. Why does Phobos use 4-space indentation? The following article (IMHO) completely covers tabs vs spaces problem: http://www.emacswiki.org/cgi-bin/wiki/TabsAreEvil It shows that tabs (in spite of the article title) are really good and should be used always (and only) for indention. Looks like Allman style doesn't prevent this (if it does, what is the reason?). So: * Such tab using shows respect to a programmer allowing him to configure tab size as he prefer. * Sometimes indention should be changed for a particular using. * Worst of all, sometimes same code is used in different places where different indention levels are expected. * Using spaces guarantee that code will look same in every editor but it is the simplest and not the most convenient way, the code should look _good for every editor user_, not _same_, so it tears down our community. * It's less comfortable to use spaces for indention in every editor I use (at least because spaces allows caret position in the middle of indention and pressing <one of delete one char keys> deletes one space instead of the indention level, so it's easy to accidentally broke indention and use, e.g. 7 instead of 8 spaces). And this isn't only a theory. In practice: * I've never liked 8-chars indention, so I feels myself bad in d-p-l.org sources. Probably I'm not the only one. * I accidentally brake spaces indention sometimes. Probably I'm not the less-trained-in-printing one. * Some time ago a ebook version of d-p-l.org has been created. Walter had to change every 4-spaces indention in examples to 2-spaces indention for convenience reading on small PPC screen. * Now everyone see 2-spaces indented examples in d-p-l.org instead of his, probably, preferred 4-spaces indented. Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, GourPhobos generally uses 4-space indentation.
Jan 29 2012
On 29 January 2012 14:04, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:29.01.2012 15:21, Alex R=C3=B8nne Petersen =D0=BF=D0=B8=D1=88=D0=B5=D1=82=:eOn 29-01-2012 10:15, Gour wrote:Hello! It was mentioned in #D that gdc will probably adapt its code to GNU cod=andI don't think there is the best coding style (personally I like both K&R =style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, GourPhobos generally uses 4-space indentation.Allman styles). IMHO things are different with indention. Why does Phobos use 4-space indentation? The following article (IMHO) completely covers tabs vs spaces problem: http://www.emacswiki.org/cgi-bin/wiki/TabsAreEvil It shows that tabs (in spite of the article title) are really good and should be used always (and only) for indention. Looks like Allman style doesn't prevent this (if it does, what is the reason?). So: * Such tab using shows respect to a programmer allowing him to configure =tabsize as he prefer. * Sometimes indention should be changed for a particular using. * Worst of all, sometimes same code is used in different places where different indention levels are expected. * Using spaces guarantee that code will look same in every editor but it =isthe simplest and not the most convenient way, the code should look _good =forevery editor user_, not _same_, so it tears down our community. * It's less comfortable to use spaces for indention in every editor I use (at least because spaces allows caret position in the middle of indention and pressing <one of delete one char keys> deletes one space instead of t=heindention level, so it's easy to accidentally broke indention and use, e.=g.7 instead of 8 spaces). And this isn't only a theory. In practice: * I've never liked 8-chars indention, so I feels myself bad in d-p-l.org sources. Probably I'm not the only one. * I accidentally brake spaces indention sometimes. Probably I'm not the less-trained-in-printing one. * Some time ago a ebook version of d-p-l.org has been created. Walter had=tochange every 4-spaces indention in examples to 2-spaces indention for convenience reading on small PPC screen. * Now everyone see 2-spaces indented examples in d-p-l.org instead of his=,probably, preferred 4-spaces indented. Am I mistaken? If no, am I missing some major spaces advantages? If no, l=etsuse tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8? --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Jan 29 2012
29.01.2012 18:09, Iain Buclaw пишет:On 29 January 2012 14:04, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:Example, please. P.S. Have you read the article? (I'm asking that just because I can't imagine an example or I don't clearly understand what do you mean)29.01.2012 15:21, Alex Rønne Petersen пишет:The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?On 29-01-2012 10:15, Gour wrote:I don't think there is the best coding style (personally I like both K&R and Allman styles). IMHO things are different with indention. Why does Phobos use 4-space indentation? The following article (IMHO) completely covers tabs vs spaces problem: http://www.emacswiki.org/cgi-bin/wiki/TabsAreEvil It shows that tabs (in spite of the article title) are really good and should be used always (and only) for indention. Looks like Allman style doesn't prevent this (if it does, what is the reason?). So: * Such tab using shows respect to a programmer allowing him to configure tab size as he prefer. * Sometimes indention should be changed for a particular using. * Worst of all, sometimes same code is used in different places where different indention levels are expected. * Using spaces guarantee that code will look same in every editor but it is the simplest and not the most convenient way, the code should look _good for every editor user_, not _same_, so it tears down our community. * It's less comfortable to use spaces for indention in every editor I use (at least because spaces allows caret position in the middle of indention and pressing<one of delete one char keys> deletes one space instead of the indention level, so it's easy to accidentally broke indention and use, e.g. 7 instead of 8 spaces). And this isn't only a theory. In practice: * I've never liked 8-chars indention, so I feels myself bad in d-p-l.org sources. Probably I'm not the only one. * I accidentally brake spaces indention sometimes. Probably I'm not the less-trained-in-printing one. * Some time ago a ebook version of d-p-l.org has been created. Walter had to change every 4-spaces indention in examples to 2-spaces indention for convenience reading on small PPC screen. * Now everyone see 2-spaces indented examples in d-p-l.org instead of his, probably, preferred 4-spaces indented. Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, GourPhobos generally uses 4-space indentation.
Jan 29 2012
On 29 January 2012 18:11, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:29.01.2012 18:09, Iain Buclaw =D0=BF=D0=B8=D1=88=D0=B5=D1=82:=82:On 29 January 2012 14:04, Denis Shelomovskij <verylonglogin.reg gmail.com> =C2=A0wrote:29.01.2012 15:21, Alex R=C3=B8nne Petersen =D0=BF=D0=B8=D1=88=D0=B5=D1=eOn 29-01-2012 10:15, Gour wrote:Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practic=RI don't think there is the best coding style (personally I like both K&=for it within D community? Sincerely, GourPhobos generally uses 4-space indentation.osand Allman styles). IMHO things are different with indention. Why does Phob=euse 4-space indentation? The following article (IMHO) completely covers tabs vs spaces problem: http://www.emacswiki.org/cgi-bin/wiki/TabsAreEvil It shows that tabs (in spite of the article title) are really good and should be used always (and only) for indention. Looks like Allman style doesn't prevent this (if it does, what is the reason?). So: * Such tab using shows respect to a programmer allowing him to configur=ttab size as he prefer. * Sometimes indention should be changed for a particular using. * Worst of all, sometimes same code is used in different places where different indention levels are expected. * Using spaces guarantee that code will look same in every editor but i=dis the simplest and not the most convenient way, the code should look _goo=sefor every editor user_, not _same_, so it tears down our community. * It's less comfortable to use spaces for indention in every editor I u=on(at least because spaces allows caret position in the middle of indenti=ad ofand pressing<one of delete one char keys> =C2=A0deletes one space inste=gthe indention level, so it's easy to accidentally broke indention and use, e.g. 7 instead of 8 spaces). And this isn't only a theory. In practice: * I've never liked 8-chars indention, so I feels myself bad in d-p-l.or=adsources. Probably I'm not the only one. * I accidentally brake spaces indention sometimes. Probably I'm not the less-trained-in-printing one. * Some time ago a ebook version of d-p-l.org has been created. Walter h=otto change every 4-spaces indention in examples to 2-spaces indention for convenience reading on small PPC screen. * Now everyone see 2-spaces indented examples in d-p-l.org instead of his, probably, preferred 4-spaces indented. Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, n=anExample, please. P.S. Have you read the article? (I'm asking that just because I can't imagine =somehow, see article) tabs<->spaces in D code.The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?example or I don't clearly understand what do you mean)eg: { ...->test1(); ->test2(); ..->test3(); } If someone has their tabs aligned to 4 characters or higher, they will see the above as if they are indented to the same offset, any less, and things get interesting: tabstop=3D4;' { test(); test2(); test3(); } tabstop=3D3; { test1(); test2(); test3(); } tabstop=3D2; { test1(); test2(); test3(); } tabstop=3D1; { test1(); test2(); test3(); } --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Jan 29 2012
29.01.2012 23:02, Iain Buclaw пишет:On 29 January 2012 18:11, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:Even worse, it still depends on editor - it can just add N to current position instead of moving to the next tab stop. But in spite of everything I will quote my post:29.01.2012 18:09, Iain Buclaw пишет:eg: { ...->test1(); ->test2(); ..->test3(); } If someone has their tabs aligned to 4 characters or higher, they will see the above as if they are indented to the same offset, any less, and things get interesting: tabstop=4;' { test(); test2(); test3(); } tabstop=3; { test1(); test2(); test3(); } tabstop=2; { test1(); test2(); test3(); } tabstop=1; { test1(); test2(); test3(); }On 29 January 2012 14:04, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:Example, please. P.S. Have you read the article? (I'm asking that just because I can't imagine an example or I don't clearly understand what do you mean)29.01.2012 15:21, Alex Rønne Petersen пишет:The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?On 29-01-2012 10:15, Gour wrote:I don't think there is the best coding style (personally I like both K&R and Allman styles). IMHO things are different with indention. Why does Phobos use 4-space indentation? The following article (IMHO) completely covers tabs vs spaces problem: http://www.emacswiki.org/cgi-bin/wiki/TabsAreEvil It shows that tabs (in spite of the article title) are really good and should be used always (and only) for indention. Looks like Allman style doesn't prevent this (if it does, what is the reason?). So: * Such tab using shows respect to a programmer allowing him to configure tab size as he prefer. * Sometimes indention should be changed for a particular using. * Worst of all, sometimes same code is used in different places where different indention levels are expected. * Using spaces guarantee that code will look same in every editor but it is the simplest and not the most convenient way, the code should look _good for every editor user_, not _same_, so it tears down our community. * It's less comfortable to use spaces for indention in every editor I use (at least because spaces allows caret position in the middle of indention and pressing<one of delete one char keys> deletes one space instead of the indention level, so it's easy to accidentally broke indention and use, e.g. 7 instead of 8 spaces). And this isn't only a theory. In practice: * I've never liked 8-chars indention, so I feels myself bad in d-p-l.org sources. Probably I'm not the only one. * I accidentally brake spaces indention sometimes. Probably I'm not the less-trained-in-printing one. * Some time ago a ebook version of d-p-l.org has been created. Walter had to change every 4-spaces indention in examples to 2-spaces indention for convenience reading on small PPC screen. * Now everyone see 2-spaces indented examples in d-p-l.org instead of his, probably, preferred 4-spaces indented. Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.Hello! It was mentioned in #D that gdc will probably adapt its code to GNU code style and I wonder, seeing no recemmendation in http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community? Sincerely, GourPhobos generally uses 4-space indentation.Looks the reason against tabs is: mixed tabs and spaces is bad. So we should use spaces. Khm... Will it be in tab's favour if I rewrite the reason as "mixed spaces and tabs is bad"?
Jan 29 2012
Denis Shelomovskij:Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch. Bye, bearophile
Jan 29 2012
On 29/01/2012 14:17, bearophile wrote:Denis Shelomovskij:What do you mean by the "D2 front-end"? The compiler front-end, or some IDE? If you're talking about the compiler, how will it determine what font was set in the program used to edit the file? Are you planning to make this work even if the file has been edited in more than one editor and/or font over the course of time? If you mean an IDE, what use would a compiler switch be? Just set up the font selection UI to allow only monospaced fonts to be selected. In Windows at least, the font common dialog has a flag to do this. Stewart.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.
Jan 29 2012
Stewart Gordon:What do you mean by the "D2 front-end"?It was one of my first attempts at humor :-) Bye and sorry, bearophile
Jan 29 2012
29.01.2012 20:48, bearophile ïèøåò:Stewart Gordon:Thanks for explicitly defining that! You just saved a lot of my time. )What do you mean by the "D2 front-end"?It was one of my first attempts at humor :-) Bye and sorry, bearophile
Jan 29 2012
On Sunday, 29 January 2012 at 16:48:18 UTC, bearophile wrote:Stewart Gordon:Don't worry I had a good laugh.What do you mean by the "D2 front-end"?It was one of my first attempts at humor :-) Bye and sorry, bearophile
Jan 29 2012
On 29/01/2012 14:17, bearophile wrote:Denis Shelomovskij:What do you mean by the "D2 front-end"? The compiler front-end, or some IDE? If you're talking about the compiler, how will it determine what font was set in the program used to edit the file? Are you planning to make this work even if the file has been edited in more than one editor and/or font over the course of time? If you mean an IDE, what use would a compiler switch be? Just set up the font selection UI to allow only monospaced fonts to be selected. In Windows at least, the font common dialog has a flag to do this. Stewart.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.
Jan 29 2012
On Sun, 2012-01-29 at 09:17 -0500, bearophile wrote:Denis Shelomovskij: =20=20Am I mistaken? If no, am I missing some major spaces advantages? If no,=and the D2 front-end should enforce this with a "-ms" compiler switch. Surely this is a level of fascism too far (*). Using monospace fonts is just so 1960s, the era of typewriters and 80x25 terminals. Personally I am living in an era where monitors deal with proportional fonts which every experiment done shows are easier to read. Why do so many programmers hanker for the 1960s and the necessity of monospace fonts, it seems irrational. (*) Go imposes these sorts of rules, well at least brace placement and indentation levels, and it really irritates. =20 --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winderlets use tabs.=20 D2 style guide should *require* D2 to be edited using a mono-spaced font,=
Jan 29 2012
On 1/29/2012 6:17 AM, bearophile wrote:D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.What? How could the compiler possibly know what font was used in your editor?
Jan 29 2012
30.01.2012 0:42, Walter Bright пишет:On 1/29/2012 6:17 AM, bearophile wrote:It's your compiler, Walter! You should be more sensible and keep silence while people praise you instead of acknowledging your own feebleness. More than that, people can use some piratical or even terrorist font to program in D and in our bright future you will answer in law (some modified SOPA, "Genuine Patriot Act" or smth. another).D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.What? How could the compiler possibly know what font was used in your editor?
Jan 29 2012
29.01.2012 22:42, Walter Bright пишет:On 1/29/2012 6:17 AM, bearophile wrote:This can be passed by user as a compiler switch, something like: dmd -ms -font=Courier-i-swear srcfile.dD2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.What? How could the compiler possibly know what font was used in your editor?
Jan 29 2012
Walter:What? How could the compiler possibly know what font was used in your editor?Sorry Walter, this time I wasn't serious :-) Bye, bearophile
Jan 29 2012
On 1/29/2012 2:44 PM, bearophile wrote:Walter:All I can say is, I'm glad. That was a heluva WTF!What? How could the compiler possibly know what font was used in your editor?Sorry Walter, this time I wasn't serious :-)
Jan 29 2012
On Sun, Jan 29, 2012 at 05:33:39PM +0000, Russel Winder wrote:On Sun, 2012-01-29 at 09:17 -0500, bearophile wrote:[...]I always code with tab stops set to 8 and line wrapping set to 80 columns.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.Surely this is a level of fascism too far (*). Using monospace fonts is just so 1960s, the era of typewriters and 80x25 terminals.Personally I am living in an era where monitors deal with proportional fonts which every experiment done shows are easier to read.*Text* is easier to read with proportional fonts. Code is not the same as text.Why do so many programmers hanker for the 1960s and the necessity of monospace fonts, it seems irrational.I am irrational. ;-) T -- I am a consultant. My job is to make your job redundant. -- Mr Tom
Jan 29 2012
On Sunday, 29 January 2012 at 22:25:57 UTC, H. S. Teoh wrote:*Text* is easier to read with proportional fonts. Code is not the same as text.Tried many monospaced fonts, none is more readable than verdana.
Jan 29 2012
On 01/29/2012 02:27 PM, H. S. Teoh wrote:Proudly, me too! I want to look at monospaced code with to tabs anywhere in it; and since I like what came out of the 1960s, 80 columns for me! :) AliWhy do so many programmers hanker for the 1960s and the necessity of monospace fonts, it seems irrational.I am irrational. ;-)
Jan 29 2012
On 29 January 2012 14:17, bearophile <bearophileHUGS lycos.com> wrote:Denis Shelomovskij:I think D should go even further than that and drop those horrid curly braces, handling all code blocks by indentation. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch. Bye, bearophile
Jan 29 2012
On 1/29/2012 5:03 PM, Iain Buclaw wrote:On 29 January 2012 14:17, bearophile<bearophileHUGS lycos.com> wrote:There are huge swaths of unused unicode values, including a rather large chunk reserved for custom user-implementation. Clearly we need to redesign the language to use custom symbols that make sense, instead of the archaic typesetting symbols we use now and have a unique set of programmer symbols. We can even solve the space vs tab problem once and for all, by making a whitespace key and removing the obsolete buttons to make room for all the new ones (which would be tab, spacebar, and enter).Denis Shelomovskij:I think D should go even further than that and drop those horrid curly braces, handling all code blocks by indentation.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch. Bye, bearophile
Jan 29 2012
On 30/01/2012 01:13, Sean Cavanaugh wrote: <snip>Clearly we need to redesign the language to use custom symbols that make sense, instead of the archaic typesetting symbols we use now and have a unique set of programmer symbols.It's already been tried (APL). OK, so maybe the "that make sense" aspect doesn't apply there.We can even solve the space vs tab problem once and for all, by making a whitespace key and removing the obsolete buttons to make room for all the new ones (which would be tab, spacebar, and enter).Having to switch keyboards might have been another reason people hated APL. Stewart.
Jan 29 2012
On Sun, Jan 29, 2012 at 07:13:14PM -0600, Sean Cavanaugh wrote: [...]There are huge swaths of unused unicode values, including a rather large chunk reserved for custom user-implementation. Clearly we need to redesign the language to use custom symbols that make sense, instead of the archaic typesetting symbols we use now and have a unique set of programmer symbols.[...] Why bother with custom symbols? Unicode already gives us entire ranges of mathematical and technical symbols that we could use to our hearts' content. For example, I would love to have new matching pairs of delimiters, such as «» that we could use for, say, template parameters, instead of uglinessess like !. And I'd love to have my integer set class be able to use ∪ and ∩ instead of verbose operations like x.union(y) and x.intersection(y). For that matter, most function names can be reduced to single symbols like ⌹. And we can rename D2 to APL2. ;-) T -- Tell me and I forget. Teach me and I remember. Involve me and I understand. -- Benjamin Franklin
Jan 29 2012
On 30/01/2012 02:24, H. S. Teoh wrote: <snip>And I'd love to have my integer set class be able to use ∪ and ∩ instead of verbose operations like x.union(y) and x.intersection(y).<snip> My utility library uses | and &. Think of the possible values of the type you're creating a set of as being like the bits of a number, and then it makes sense. Stewart.
Jan 30 2012
On Tue, Jan 31, 2012 at 02:43:57AM +0000, Stewart Gordon wrote:On 30/01/2012 02:24, H. S. Teoh wrote: <snip>[...] Funny you should mention that; my integer set class represents set members as bits, and set operations are implemented as bitwise operations. :) Still, though, it'd be nice to have actual set notation. But I was only being half-serious. T -- BREAKFAST.COM halted...Cereal Port Not Responding. -- YHLAnd I'd love to have my integer set class be able to use ∪ and ∩ instead of verbose operations like x.union(y) and x.intersection(y).<snip> My utility library uses | and &. Think of the possible values of the type you're creating a set of as being like the bits of a number, and then it makes sense.
Jan 30 2012
On Sun, Jan 29, 2012 at 11:03:54PM +0000, Iain Buclaw wrote: [...]I think D should go even further than that and drop those horrid curly braces, handling all code blocks by indentation.[...] Yeah, that way D will have much less competition to succeed (only have to beat Python instead of out-competing thousands of other languages). ;-) T -- One reason that few people are aware there are programs running the internet is that they never crash in any significant way: the free software underlying the internet is reliable to the point of invisibility. -- Glyn Moody, from the article "Giving it all away"
Jan 29 2012
On 01/30/12 00:03, Iain Buclaw wrote:On 29 January 2012 14:17, bearophile <bearophileHUGS lycos.com> wrote:http://delight.sourceforge.net/ I was going to suggest making the compiler enforce using black-on-white, instead of white-on-black, for all D soure code, but was afraid somebody would still not get it... :) arturDenis Shelomovskij:I think D should go even further than that and drop those horrid curly braces, handling all code blocks by indentation.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch. Bye, bearophile
Jan 29 2012
http://media.comicvine.com/uploads/6/67698/1595201-oh_look_its_this_th ead_again_super.jpg
Jan 29 2012
On Sunday, 29 January 2012 at 14:42:16 UTC, Daniel Murphy wrote:http://media.comicvine.com/uploads/6/67698/1595201-oh_look_its_this_thread_again_super.jpgThat's nothing. If you want to see a truly great bikeshedding thread, go there: http://www.reddit.com/r/programming/comments/p1j1c/tabs_vs_spaces_vs_both/
Jan 29 2012
Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.There wouldn't be any problem if people were able to use tabs for indentation and spaces for alignment, i.e. in cases like if (cond1 && cond2) But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly. An ever better solution is elastic tabstops, but unfortunately no major editor supports that.
Jan 29 2012
Am 29.01.2012 16:23, schrieb Trass3r:But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly. An ever better solution is elastic tabstops, but unfortunately no major editor supports that.Where's the problem, you can configure most editors to insert N-spaces when pressing the tab-key. Some editors are so smart enough to handle the N-spaces still as tabs but save them as spaces.
Jan 29 2012
Le 29/01/2012 16:39, David a écrit :Am 29.01.2012 16:23, schrieb Trass3r:So, the point is saving spaces and programing many many tricks in the editor to make spaces behave like tabs. I don't see the point of it. It is just like you were asking for a 4 wheeled motobike with a roof and 5 sits because you don't want a car.But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly. An ever better solution is elastic tabstops, but unfortunately no major editor supports that.Where's the problem, you can configure most editors to insert N-spaces when pressing the tab-key. Some editors are so smart enough to handle the N-spaces still as tabs but save them as spaces.
Jan 29 2012
On 29/01/2012 15:39, David wrote:Am 29.01.2012 16:23, schrieb Trass3r:Some editors (Notepad++ included), when configured to do tabs as spaces, only insert _new_ tabs as spaces and leave existing tabs as they are. And when configured do to tabs as tabs, leave existing space indentation alone. And sometimes even more annoyingly, convert spaces to tabs when you block indent/outdent or start a new line. This leads to files that multiple people have worked on being indented with a mishmash of tabs and spaces. Much better would be to: - Preserve the sequence of spaces and tabs when you block indent/outdent - When you insert a line break, copy the sequence of spaces and tabs onto the new line - When you type a tab preceded by only tabs, insert a tab - When you type a tab preceded by characters other than tabs, insert spaces - Attempt to detect the indentation style when opening a file and then follow it - Provide commands to convert tabs to/from spaces separately from block indent/outdent Stewart.But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly. An ever better solution is elastic tabstops, but unfortunately no major editor supports that.Where's the problem, you can configure most editors to insert N-spaces when pressing the tab-key. Some editors are so smart enough to handle the N-spaces still as tabs but save them as spaces.
Jan 29 2012
Am 29.01.2012, 16:23 Uhr, schrieb Trass3r <un known.com>:If it cheers you up, I use that style. Once you get used to 'smart tabs' it is like using spaces. Just now and then I catch myself using tabs on the alignment for local variable comments: int foo; // does something (tabs) int bar; // something else (spaces) Then again "tabs for indentation only" is a simple rule, that would have turned the tabs into spaces in this example - if editors supported it.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.There wouldn't be any problem if people were able to use tabs for indentation and spaces for alignment, i.e. in cases like if (cond1 && cond2) But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly.
Jan 29 2012
On 01/29/2012 08:26 PM, Marco Leise wrote:Am 29.01.2012, 16:23 Uhr, schrieb Trass3r <un known.com>:*Real* editors can be configured to support smart tabs.If it cheers you up, I use that style. Once you get used to 'smart tabs' it is like using spaces. Just now and then I catch myself using tabs on the alignment for local variable comments: int foo; // does something (tabs) int bar; // something else (spaces) Then again "tabs for indentation only" is a simple rule, that would have turned the tabs into spaces in this example - if editors supported it.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.There wouldn't be any problem if people were able to use tabs for indentation and spaces for alignment, i.e. in cases like if (cond1 && cond2) But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly.
Jan 29 2012
Am 29.01.2012, 21:20 Uhr, schrieb Timon Gehr <timon.gehr gmx.ch>:On 01/29/2012 08:26 PM, Marco Leise wrote:I sense a hint to some obscure Unix tool like vim or emacs.Am 29.01.2012, 16:23 Uhr, schrieb Trass3r <un known.com>:*Real* editors can be configured to support smart tabs.If it cheers you up, I use that style. Once you get used to 'smart tabs' it is like using spaces. Just now and then I catch myself using tabs on the alignment for local variable comments: int foo; // does something (tabs) int bar; // something else (spaces) Then again "tabs for indentation only" is a simple rule, that would have turned the tabs into spaces in this example - if editors supported it.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.There wouldn't be any problem if people were able to use tabs for indentation and spaces for alignment, i.e. in cases like if (cond1 && cond2) But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly.
Jan 29 2012
On Sun, 29 Jan 2012 21:20:01 +0100, Timon Gehr wrote:On 01/29/2012 08:26 PM, Marco Leise wrote:So a butterfly. -- Yep, I'm afraid that I have a blog : zardoz.esAm 29.01.2012, 16:23 Uhr, schrieb Trass3r <un known.com>:*Real* editors can be configured to support smart tabs.If it cheers you up, I use that style. Once you get used to 'smart tabs' it is like using spaces. Just now and then I catch myself using tabs on the alignment for local variable comments: int foo; // does something (tabs) int bar; // something else (spaces) Then again "tabs for indentation only" is a simple rule, that would have turned the tabs into spaces in this example - if editors supported it.Am I mistaken? If no, am I missing some major spaces advantages? If no, lets use tabs. Perhaps, there is no tool that will convert (convert right, not somehow, see article) tabs<->spaces in D code.There wouldn't be any problem if people were able to use tabs for indentation and spaces for alignment, i.e. in cases like if (cond1 && cond2) But people are dumb and many project leaders "take no risks" and require spaces everywhere instead of doing it properly.
Jan 31 2012
On 29/01/2012 19:26, Marco Leise wrote: <snip>Then again "tabs for indentation only" is a simple rule, that would have turned the tabs into spaces in this example - if editors supported it.But when alignment spaces begin at the beginning of the line, or immediately after the indentation tabs, they can easily be mistaken by editors for indentation and changed to tabs. It depends on how intelligent the software is. void qwert(int yuiop, string asdfg, immutable(int)[] hjkl, Object zxcvb) Here, the lines of parameters are aligned. However, a naive editor might mistake the alignment spaces for indentation spaces and turn them into tabs. void qwert(int yuiop, string asdfg, immutable(int)[] hjkl, Object zxcvb) Here, there is a fixed indentation. But one possibility for editors is to work on the principle that it's an indentation tab/run of spaces iff the syntactic structure ({}, control statements with a single statement as body, possibility [] used for array initialisers) dictates that there should be an indentation tab there. While not perfect, it would still IMO be better than the current mess many editors are in. Stewart.
Jan 29 2012
On Sun, 2012-01-29 at 14:09 +0000, Iain Buclaw wrote: [...]The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?Isn't that the whole point: using spaces causes conflict over indentation, using tabs, 1 per indent level, allows individuals to choose their indent level. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jan 29 2012
On 29/01/2012 17:29, Russel Winder wrote:On Sun, 2012-01-29 at 14:09 +0000, Iain Buclaw wrote: [...]It is. But mishmashing tab and space indentation causes far worse conflict. Iain - I take it you meant that mishmashing, combined with users having different tab size settings, causes a problem. Correct? Stewart.The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?Isn't that the whole point: using spaces causes conflict over indentation, using tabs, 1 per indent level, allows individuals to choose their indent level.
Jan 29 2012
On Sun, 2012-01-29 at 18:07 +0000, Stewart Gordon wrote: [...]It is. But mishmashing tab and space indentation causes far worse confli=ct. Agreed -- homogeneity of the character used for spacing, especially indentation, is critical . I think this is why Emacs (*) has a way of converting all leading whitespace to either tabs or spaces. (*) The only one true editor (and kitchen sink). --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jan 29 2012
29.01.2012 22:07, Stewart Gordon пишет:It is. But mishmashing tab and space indentation causes far worse conflict. Iain - I take it you meant that mishmashing, combined with users having different tab size settings, causes a problem. Correct? Stewart.Looks the reason against tabs is: mixed tabs and spaces is bad. So we should use spaces. Khm... Will it be in tab's favour if I rewrite the reason as "mixed spaces and tabs is bad"?
Jan 29 2012
On Sun, Jan 29, 2012 at 10:47:55PM +0400, Denis Shelomovskij wrote:29.01.2012 22:07, Stewart Gordon пишет:[...] My opinion is that there is no problem if you indent with tabs, with spaces only added to the end of the run of tabs if necessary. Comments and code never mix on the same line. This way, no matter what how wide you set your tab stops to, things will always line up correctly. (Sadly I don't follow this rule 100% of the time...) T -- Без труда не выловишь и рыбку из пруда.It is. But mishmashing tab and space indentation causes far worse conflict. Iain - I take it you meant that mishmashing, combined with users having different tab size settings, causes a problem. Correct? Stewart.Looks the reason against tabs is: mixed tabs and spaces is bad. So we should use spaces.
Jan 29 2012
29.01.2012 21:29, Russel Winder пишет:On Sun, 2012-01-29 at 14:09 +0000, Iain Buclaw wrote: [...]No, it isn't. Spaces aren't comfortable to use in existed editors. In spite of the fact that they provide a lot of support for N spaces to behave like a tab. And it unnecessary complicates editors (they can implement something more useful instead, like elastic tabstops from Trass3r's post).The problem is lines with mixed tabs and spaces, and different users set their text editors see tabs differently. ie: is your tab-width set to 2, 3, 4, or 8?Isn't that the whole point: using spaces causes conflict over indentation, using tabs, 1 per indent level, allows individuals to choose their indent level.
Jan 29 2012
On 1/29/2012 10:53 AM, Denis Shelomovskij wrote:No, it isn't. Spaces aren't comfortable to use in existed editors.Right, and I use tabs in my editor. I also run all files through the tools: detab to convert my tabs to spaces and: tolf to convert to LF line endings before checkin. Works like a champ.
Jan 29 2012
30.01.2012 0:53, Walter Bright пишет:On 1/29/2012 10:53 AM, Denis Shelomovskij wrote:I will be happy once I will find a working tool for reverse operation. But yes, partially working one is enough for manual editing in the case everything will be converted to spaces at commit. Thanks, an easy partial solution sometimes isn't obvious.No, it isn't. Spaces aren't comfortable to use in existed editors.Right, and I use tabs in my editor. I also run all files through the tools: detab to convert my tabs to spaces ... Works like a champ.
Jan 29 2012
On Sunday, 29 January 2012 at 20:53:51 UTC, Walter Bright wrote:tolfAFAIK, only windows notepad can't handle lf nowadays. That's it?
Jan 29 2012
On 1/29/2012 2:41 PM, Kagamin wrote:On Sunday, 29 January 2012 at 20:53:51 UTC, Walter Bright wrote:So far, I've seen no issues with standardizing on LF line endings.tolfAFAIK, only windows notepad can't handle lf nowadays. That's it?
Jan 29 2012
On Monday, 30 January 2012 at 01:45:40 UTC, Walter Bright wrote:On 1/29/2012 2:41 PM, Kagamin wrote:Ermm... I mean, if you use tolf, then your editor uses something else? I guessed what is this editor.On Sunday, 29 January 2012 at 20:53:51 UTC, Walter Bright wrote:So far, I've seen no issues with standardizing on LF line endings.tolfAFAIK, only windows notepad can't handle lf nowadays. That's it?
Jan 29 2012
On Mon, 30 Jan 2012 01:04:43 +1100, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:* Such tab using shows respect to a programmer allowing him to configure tab size as he prefer.This works ok for editors, but I can't work out how to configure my browser's tab-stops or the console's or printer's either for that matter. The issue is how to /display/ code in a reader-friendly manner. -- Derek Parnell Melbourne, Australia
Jan 29 2012
Am 29.01.2012, 20:32 Uhr, schrieb Derek <ddparnell bigpond.com>:On Mon, 30 Jan 2012 01:04:43 +1100, Denis Shelomovskij <verylonglogin.reg gmail.com> wrote:If you are the web-master, you use the corresponding CSS3 attribute http://www.w3.org/TR/css3-text/#tab-size and make it configurable. If you are the user, create a .css file with the following line, replacing 99 with the width in spaces you prefer: * { -moz-tab-size: 99; -o-tab-size: 99; tab-size: 99; } In Opera: - Press Ctrl+F12 to open the settings dialog - Select the 'Advanced' tab - Click on 'Content' in the list to the left - Click on the 'Style Options...' button - Under 'My style sheet' browse to and select your .css file FireFox: http://www.tweakguides.com/Firefox_12.html Chrome: http://darcyclarke.me/design/skin-your-chrome-inspector/ Use some website like this one as a test: http://www.didihome.de/html/txt-tab.htm* Such tab using shows respect to a programmer allowing him to configure tab size as he prefer.This works ok for editors, but I can't work out how to configure my browser's tab-stops or the console's or printer's either for that matter. The issue is how to /display/ code in a reader-friendly manner.
Jan 29 2012
On 1/29/2012 6:04 AM, Denis Shelomovskij wrote:Why does Phobos use 4-space indentation?Because it works, changing it would be a vast waste of time for a non-existent benefit, and it would become a nuisance to do diffs of source code that cross the re-whitespace boundary. The style for Phobos is 4 space indentation, no tab characters anywhere, and LF line endings (to make github happy).
Jan 29 2012
30.01.2012 0:49, Walter Bright пишет:On 1/29/2012 6:04 AM, Denis Shelomovskij wrote:OK, the major advantage of spaces is because my approach (tabs for indention, spaces for alignment) isn't testable by a tool that doesn't know D semantics. More than that, my approach isn't a full solution too. It's outdated like spaces because of elastic tabstops. By the way, elastic tabstops looks easy auto-testable too so once we will just migrate to it (I hope). But the current situation is still unpleasant because: * There are no suggestions of using some tools for developers to automate conversion, so there is already a wasting of our time (developers and commit reviewers/mergers). * Look's like nobody ever tested Phobos files for tabs. P.S. I started this thread because of wasting my time for conversion/checking and inconsistent situation: druntime/Phobos have both spaces/tabs now (yes, there are significantly more spaces, but it doesn't reduce the problem), e.g. you just broke formatting in std/stream.d: https://github.com/D-Programming-Language/phobos/commit/f3aa58592faed9a418e347090cd614670947fef4Why does Phobos use 4-space indentation?Because it works, changing it would be a vast waste of time for a non-existent benefit, and it would become a nuisance to do diffs of source code that cross the re-whitespace boundary. The style for Phobos is 4 space indentation, no tab characters anywhere, and LF line endings (to make github happy).
Jan 30 2012
On 1/30/2012 2:16 AM, Denis Shelomovskij wrote:P.S. I started this thread because of wasting my time for conversion/checking and inconsistent situation: druntime/Phobos have both spaces/tabs now (yes, there are significantly more spaces, but it doesn't reduce the problem), e.g. you just broke formatting in std/stream.d: https://github.com/D-Programming-Language/phobos/commit/f3aa58592faed9a418e347090cd614670947fef4Problems crop up when people check in stuff with tabs in it. I run everything I check in through detab.
Jan 30 2012
On Monday, 30 January 2012 at 10:16:36 UTC, Denis Shelomovskij wrote:I started this threadPoor topicstarter. His topic is hijacked and buried if flame, and he himself is sent to oblivion.
Jan 30 2012
http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community?Everyone thinks his way is the best.
Jan 29 2012
Le 29/01/2012 12:36, Trass3r a écrit :I would say that the most important is to be consistent accros a project or a code base. The style in itself, execpt for some special tricky case doesn't change a lot.http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community?Everyone thinks his way is the best.
Jan 29 2012
deadalnix wrote:I would say that the most important is to be consistent accros a projectIf it is indead important, then the project shoud have a tool that can enforce that style. And every coder should have a tool that enforces her/his indiviuell style, if she/he cannot cope with that style. Ever heard of any one having such a tool? -manfred
Jan 29 2012
Ever heard of any one having such a tool?http://golang.org/cmd/gofmt/
Jan 29 2012
Manfred Nowak wrote:deadalnix wrote: =20I would say that the most important is to be consistent accros a project=20=20 If it is indead important, then the project shoud have a tool that can =enforce that style. And every coder should have a tool that enforces=20 her/his indiviuell style, if she/he cannot cope with that style. =20 Ever heard of any one having such a tool? =20 -manfredhttp://uncrustify.sourceforge.net/ It even supports D... Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Jan 29 2012
On 1/29/2012 5:36 AM, Trass3r wrote:Thats because it is :) curley braces on the same line as conditionals is a refactoring landmine IMO I've never seen an editor that would enforce only leading characters on a line as tabs, and until all of them do it, spaces is the only thing that makes sense to me, since they are never 'wrong'. The codebase I use at work is full of tabs and I can tolerate them, but not knowing how many times to hit backspace on some chunk of code containing whitespace in the middle of it is really annoying. Yes there is undo but it starts infringing on my flow (replacing zen with anger, the emperor would be pleased . . .)http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community?Everyone thinks his way is the best.
Jan 29 2012
On 01/29/2012 06:52 PM, Sean Cavanaugh wrote:On 1/29/2012 5:36 AM, Trass3r wrote:makefile-mode in GNU emacs highlights leading spaces and points out their existence on saving. But that is not the right behavior for all languages: void main(){ \t auto x = ["abcd", \t .........."defg", \t .......... ... \t .........]; }Thats because it is :) curley braces on the same line as conditionals is a refactoring landmine IMO I've never seen an editor that would enforce only leading characters on a line as tabs,http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community?Everyone thinks his way is the best.and until all of them do it, spaces is the only thing that makes sense to me, since they are never 'wrong'.You mean invisibly wrong for some tab-settings. void main(){ .int i; ..int j = 2; ...for(;i<j;i++){} ....return 0; }The codebase I use at work is full of tabs and I can tolerate them, but not knowing how many times to hit backspace on some chunk of code containing whitespace in the middle of it is really annoying. Yes there is undo but it starts infringing on my flow (replacing zen with anger, the emperor would be pleased . . .)That is an editor-specific problem. In my editor, hitting backspace always deletes one character (and converts the remaining portion of a tab to spaces).
Jan 29 2012
On Sun, Jan 29, 2012 at 12:36:18PM +0100, Trass3r wrote:You know, I'm starting to take seriously bearophile's (I think it was him?) half-joking proposal that all code must be written on a single line, and whatever editor/IDE/what-have-you that you use to code will pretty-print everything for you. That way, everyone will see the code in their own favorite style, and nobody will have pointless flamewars over this subject ever again (thereby giving more time for more important things, such as vim vs. emacs flamewars :P). I mean, if you think about it, at the most fundamental level, whether you use spaces or tabs or what-not, it's all *visual formatting* done in a format that's essentially conveying *semantic information* to the compiler. It's just like the <font> tag in HTML (that we finally got rid of after years of pain). And let's face it. A space character is intended to represent an inter-word space. It's not supposed to represent *indentation*. That privilege is reserved for the tab character. But unfortunately there is no consensus on how wide a tab is supposed to be. But all of this is missing the point. Code is essentially a tree-structured thing, consisting of nested blocks. Why should we use ill-suited representations as tabs and spaces for nesting blocks? There should be a dedicated code-editor (or vim/emacs mode, or IDE configuration, or whatever), that parses the damn code and displays the nesting structure in whatever way the user wants to see it. Whether you want to see your blocks like this: if (a < b) { a = b; } else { b = a; } or if (a < b) { a = b; } else { b = a; } or even if (a < b) { a = b; } else { b = a } or worse: if (a < b) { a = b; } else { b = a; } (I kid you not, I know at least one person who actually writes code like that) ... really shouldn't require painful reformatting of the entire source code. You should be able to load a "style sheet" into your editor that automatically parses the code and pretty-prints (or ugly-prints) it in your favorite style. And not only so, when you type, it automatically formats blocks for you with no further effort. You type "if(a<b){" and it automatically inserts newlines and indents, AND if you hit backspace, it doesn't "erase the tab character" or such nonsense; it removes the current block and moves your cursor back to the end of the "if(a<b)" line. Plus, it automatically inserts spaces after the "if" and around the "<" if your stylesheet specifies so. IOW, you should be able to type your code with absolutely no spaces except where necessary to separate tokens, and the editor should format it appropriately. It should be *impossible* to do any manual formatting whatsoever. The editor should take full responsibility for that. AND if you send your code to somebody else, they will always see it in their own favorite style. Furthermore, moving formatting to the editor will FINALLY let you handle side-by-side comments in a sane way. The editor can display code in two columns, one for code, and one for comments associated with each line of code. You can collapse/expand comments as necessary, or change the widths of the columns, and the editor automatically positions everything correctly (including line-wrapping and paragraph formatting for long comments). The editor takes full responsibility for how to represent comments in the file. There will be dedicated keys for moving between code/comment columns, so that you can edit code freely and have the associated comments automatically flow around it. T -- "Uhh, I'm still not here." -- KD, while "away" on ICQ.http://www.d-programming-language.org/dstyle.html in regard to indent-style, can someone shed some light what is recommended practice for it within D community?Everyone thinks his way is the best.
Jan 29 2012
H. S. Teoh:You know, I'm starting to take seriously bearophile's (I think it was him?) half-joking proposal that all code must be written on a single line,It wasn't me. Bye, bearophile
Jan 29 2012
I like the look of 8-space indents, but I don't see how I could pull it off if I use object-oriented features. I use 8-space indents if I code C, and it seems to work really well. But when you have a class, and then maybe even an inner class, you practically start with 2 levels of indentation, and that's where half your "page" (screen) is blank space! What is a solution to this, apart from using 4-space indentation? To not indent class declarations is kinda one.
Jan 29 2012
On 29 January 2012 23:30, Matej Nanut <matejnanut gmail.com> wrote:I like the look of 8-space indents, but I don't see how I could pull it off if I use object-oriented features. I use 8-space indents if I code C, and it seems to work really well. But when you have a class, and then maybe even an inner class, you practically start with 2 levels of indentation, and that's where half your "page" (screen) is blank space! What is a solution to this, apart from using 4-space indentation? To not indent class declarations is kinda one.The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program. :o) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Jan 29 2012
Le 30/01/2012 00:44, Iain Buclaw a écrit :On 29 January 2012 23:30, Matej Nanut<matejnanut gmail.com> wrote:Well, not to mention that this sentence first apply to C. Because if you apply that in some programming languages, you'll be screwed up pretty quickly (even in D even if it isn't the worse at this game).I like the look of 8-space indents, but I don't see how I could pull it off if I use object-oriented features. I use 8-space indents if I code C, and it seems to work really well. But when you have a class, and then maybe even an inner class, you practically start with 2 levels of indentation, and that's where half your "page" (screen) is blank space! What is a solution to this, apart from using 4-space indentation? To not indent class declarations is kinda one.The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program. :o)
Jan 29 2012
More practical than requiring all source files to be saved without formatting: - Upon opening a file, the editor looks for a style sheet in the same directory. If there is no such style sheet, it automatically deduces the style from the code, falling back to the local preferences. - Then it acts as you propose. - And when saving, it automatically formats the source code in the deduced format.
Jan 29 2012
On Mon, Jan 30, 2012 at 01:57:43AM +0100, Timon Gehr wrote:More practical than requiring all source files to be saved without formatting: - Upon opening a file, the editor looks for a style sheet in the same directory. If there is no such style sheet, it automatically deduces the style from the code, falling back to the local preferences. - Then it acts as you propose. - And when saving, it automatically formats the source code in the deduced format.The problem with autoformatting on save is that it interacts badly with revision control systems. You could end up with lots of noisy diffs mostly involving changes in whitespace. By enforcing a fixed formatting, whether it's everything-on-a-line or delete all unnecessary whitespace but leave newlines intact, you ensure that diffs generated by the revision control system will not include whitespace noise. T -- Debian GNU/Linux: Cray on your desktop.
Jan 29 2012
On 30 January 2012 03:27, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:On Mon, Jan 30, 2012 at 01:57:43AM +0100, Timon Gehr wrote:The flip side is that if you put everything on one line, no one will be able to understand the commits you make. :) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';More practical than requiring all source files to be saved without formatting: - Upon opening a file, the editor looks for a style sheet in the same directory. If there is no such style sheet, it automatically deduces the style from the code, falling back to the local preferences. - Then it acts as you propose. - And when saving, it automatically formats the source code in the deduced format.The problem with autoformatting on save is that it interacts badly with revision control systems. You could end up with lots of noisy diffs mostly involving changes in whitespace. By enforcing a fixed formatting, whether it's everything-on-a-line or delete all unnecessary whitespace but leave newlines intact, you ensure that diffs generated by the revision control system will not include whitespace noise.
Jan 29 2012
On Mon, Jan 30, 2012 at 03:35:03AM +0000, Iain Buclaw wrote:On 30 January 2012 03:27, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:[...]On Mon, Jan 30, 2012 at 01:57:43AM +0100, Timon Gehr wrote:[...] Well, that's no fault of mine; it's a relic of holding on to visually-formatted plaintext format. ;-) If all code was auto-formatted, you won't have this kind of problem, since the diff utility would compare syntax trees instead of lines, and would show you what *actually* changed syntactically. As opposed to diffs where inserting a new function with a similar body to the following adjacent function causes the diff to be a messy interlacing of lines from both functions, 'cos it's "shorter" than a diff which simply inserts the new function. (Which happens a lot with code that has lots of boilerplate. But boilerplates are another issue. :-)) T -- My program has no bugs! Only unintentional features...The flip side is that if you put everything on one line, no one will be able to understand the commits you make. :)- And when saving, it automatically formats the source code in the deduced format.The problem with autoformatting on save is that it interacts badly with revision control systems. You could end up with lots of noisy diffs mostly involving changes in whitespace. By enforcing a fixed formatting, whether it's everything-on-a-line or delete all unnecessary whitespace but leave newlines intact, you ensure that diffs generated by the revision control system will not include whitespace noise.
Jan 29 2012
On Sunday, January 29, 2012 14:27:29 H. S. Teoh wrote:On Sun, Jan 29, 2012 at 05:33:39PM +0000, Russel Winder wrote:That's not going to work very well with D. You tend to get far too many levels of indentation for that to fly. With static if (and potentiall multiple layers of static if), classes, templates, etc. all on top of the normal if statements and while loops and the like, and it can very quickly reach 3 - 4 indentation levels on simple code, let alone what more complex code has. It's that much worse when you use much in the way of functional-style programming and chain function calls, since then not are the lines indented a fair ways, but they tend to get long. I suspect that you'll find 8 character tabs and 80 character columns to be a frustrating combination, but you can do whatever you want. Phobos uses 4 character tabs with a soft limit of 80 characters (on average, a line should fit within 80 characters, but it doesn't have to) and a hard limit of 120 characters (a line should _never_ exceed 120 characters). And that seems to be working fairly well for us. - Jonathan M DavisOn Sun, 2012-01-29 at 09:17 -0500, bearophile wrote:[...]I always code with tab stops set to 8 and line wrapping set to 80 columns.D2 style guide should *require* D2 to be edited using a mono-spaced font, and the D2 front-end should enforce this with a "-ms" compiler switch.Surely this is a level of fascism too far (*). Using monospace fonts is just so 1960s, the era of typewriters and 80x25 terminals.
Jan 29 2012
On Sun, Jan 29, 2012 at 02:32:48PM -0800, Jonathan M Davis wrote:On Sunday, January 29, 2012 14:27:29 H. S. Teoh wrote:[...]I used to use 2-space indentation for this very reason. I've written Perl code with 16 levels of nesting complete with chained maps{} and other such fun stuff. But I've since changed my mind, and have come to believe that if a function requires more than 3-4 levels of nesting, there is a fundamental design problem with it, and it should be split into smaller functions. This also helps you refactor code more easily as well as give you a reason to think about how to better express what you're trying to do, instead of just going on auto-pilot and using 8 levels of nesting just because. Optimizing compilers like gdc will auto-inline single-use functions anyway, so this shouldn't be a problem even on the premature optimization side. ;-) Besides, one of the things I really love about D is closures... with careful use of closures, almost any code can be reduced to 3-4 indents at the most, usually only 2-3.I always code with tab stops set to 8 and line wrapping set to 80 columns.That's not going to work very well with D. You tend to get far too many levels of indentation for that to fly. With static if (and potentiall multiple layers of static if), classes, templates, etc. all on top of the normal if statements and while loops and the like, and it can very quickly reach 3 - 4 indentation levels on simple code, let alone what more complex code has. It's that much worse when you use much in the way of functional-style programming and chain function calls, since then not are the lines indented a fair ways, but they tend to get long. I suspect that you'll find 8 character tabs and 80 character columns to be a frustrating combination, but you can do whatever you want.Phobos uses 4 character tabs with a soft limit of 80 characters (on average, a line should fit within 80 characters, but it doesn't have to) and a hard limit of 120 characters (a line should _never_ exceed 120 characters). And that seems to be working fairly well for us.[...] Well, having worked in many different projects under different managers with different coding styles at my full-time jobs, I've come to accept that when writing code for a particular project, one should simply follow whatever conventions existing code in that project uses, however ugly it may seem. For my own projects, though, I use 8-space tabs and 80-column wrapping. T -- 2+2=4. 2*2=4. 2^2=4. Therefore, +, *, and ^ are the same operation.
Jan 29 2012
On Sunday, January 29, 2012 23:44:25 Iain Buclaw wrote:On 29 January 2012 23:30, Matej Nanut <matejnanut gmail.com> wrote:That doesn't hold for D. There are too many ways to legitimately end up with several levels of indentation. Templates, static ifs, version blocks, struct/class declarations, if/else, while, etc. 3 or 4 levels of indentation is not necessarily uncommon at all. C has so few things that result in new blocks to indent, that the 3 levels of indentation rule has some merit there. But in OO languages (and especially in D with its additional conditional compilation features), that just doesn't fly. - Jonathan M DavisI like the look of 8-space indents, but I don't see how I could pull it off if I use object-oriented features. I use 8-space indents if I code C, and it seems to work really well. But when you have a class, and then maybe even an inner class, you practically start with 2 levels of indentation, and that's where half your "page" (screen) is blank space! What is a solution to this, apart from using 4-space indentation? To not indent class declarations is kinda one.The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program. :o)
Jan 29 2012