Hi, I've just posted refinements to the inbox for pretty-print to
provide Rectangular Block and Indented Control Flow as suggested by Ward Cunningham at: http://c2.com/ppr/formatting.html#2 These formatting rules maximize readability while balancing screen space (and methods should be short anyway). However, I did only push these to the inbox for now, due to the potentially combustible nature of this sort of change. Unless there are major objections, I'd like to copy these to the trunk so we can all enjoy gorgeous Rectangular Block formatting. - Chris |
Hi Chris,
Chris Muller wrote: > Hi, I've just posted refinements to the inbox for pretty-print to > provide Rectangular Block and Indented Control Flow as suggested by > Ward Cunningham at: > > http://c2.com/ppr/formatting.html#2 > > These formatting rules maximize readability while balancing screen > space (and methods should be short anyway). However, I did only push > these to the inbox for now, due to the potentially combustible nature > of this sort of change. > > Unless there are major objections, I'd like to copy these to the trunk > so we can all enjoy gorgeous Rectangular Block formatting. > > - Chris > Thanks! I love it! I did a couple of tweaks I hope you'll like: 1) Separate lines for block a) if block has arguments (as if it had temps) b) if the single statement is complex (as if it had many statements) 2) Brace arrays formatted as rectangluar blocks !BlockNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 09:09'! printOn: aStream indent: level | separateLines | aStream nextPut: $[ ; space. self printArgumentsOn: aStream indent: level. separateLines := (self printTemporaries: temporaries on: aStream doPrior: [ ] ) or: [ arguments size > 0 ]. separateLines ifTrue: [ "If args+temps > 0 and statements > 1 (or just one complex statement), put all statements on separate lines" (statements size > 1 or: [ statements size = 1 and: [statements first isComplex]]) ifTrue: [ aStream crtab: level ] ifFalse: [ aStream space] ] . self printStatementsOn: aStream indent: level. aStream space ; nextPut: $]! ! !BraceNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 08:58'! printOn: aStream indent: level aStream crtab: level+1. aStream nextPut: ${. 1 to: elements size do: [ : i | (elements at: i) printOn: aStream indent: level. i < elements size ifTrue: [ aStream nextPutAll: '. ' ; crtab: level+1 ] ]. aStream nextPut: $}! ! BTW, according to http://c2.com/ppr/formatting.html#2, the author is Kent Beck. Cheers, Juan Vuletich |
Great so that's one vote for. But I am not seeing your tweaks, did
you update the inbox? On Wed, Mar 3, 2010 at 6:32 AM, Juan Vuletich <[hidden email]> wrote: > Hi Chris, > > Chris Muller wrote: >> >> Hi, I've just posted refinements to the inbox for pretty-print to >> provide Rectangular Block and Indented Control Flow as suggested by >> Ward Cunningham at: >> >> http://c2.com/ppr/formatting.html#2 >> >> These formatting rules maximize readability while balancing screen >> space (and methods should be short anyway). However, I did only push >> these to the inbox for now, due to the potentially combustible nature >> of this sort of change. >> >> Unless there are major objections, I'd like to copy these to the trunk >> so we can all enjoy gorgeous Rectangular Block formatting. >> >> - Chris >> > > Thanks! I love it! I did a couple of tweaks I hope you'll like: > > 1) Separate lines for block > a) if block has arguments (as if it had temps) > b) if the single statement is complex (as if it had many statements) > > 2) Brace arrays formatted as rectangluar blocks > > !BlockNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 09:09'! > printOn: aStream indent: level > | separateLines | > aStream > nextPut: $[ ; > space. > self > printArgumentsOn: aStream > indent: level. > separateLines := (self > printTemporaries: temporaries > on: aStream > doPrior: [ ] ) or: [ arguments size > 0 ]. > separateLines ifTrue: > [ "If args+temps > 0 and statements > 1 (or just one complex > statement), put all statements on separate lines" > (statements size > 1 or: [ statements size = 1 and: [statements first > isComplex]]) > ifTrue: [ aStream crtab: level ] > ifFalse: [ aStream space] ] . > self > printStatementsOn: aStream > indent: level. > aStream > space ; > nextPut: $]! ! > > > !BraceNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 08:58'! > printOn: aStream indent: level > aStream > crtab: level+1. > aStream nextPut: ${. > 1 > to: elements size > do: > [ : i | > (elements at: i) > printOn: aStream > indent: level. > i < elements size ifTrue: > [ aStream > nextPutAll: '. ' ; > crtab: level+1 ] ]. > aStream nextPut: $}! ! > > BTW, according to http://c2.com/ppr/formatting.html#2, the author is Kent > Beck. > > Cheers, > Juan Vuletich > > |
Chris Muller wrote:
> Great so that's one vote for. But I am not seeing your tweaks, did > you update the inbox? > > They are right there in the body of the message. In case there's a problem with your mail client, see http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.general/143213 . Cheers, Juan Vuletich > On Wed, Mar 3, 2010 at 6:32 AM, Juan Vuletich <[hidden email]> wrote: > >> Hi Chris, >> >> Chris Muller wrote: >> >>> Hi, I've just posted refinements to the inbox for pretty-print to >>> provide Rectangular Block and Indented Control Flow as suggested by >>> Ward Cunningham at: >>> >>> http://c2.com/ppr/formatting.html#2 >>> >>> These formatting rules maximize readability while balancing screen >>> space (and methods should be short anyway). However, I did only push >>> these to the inbox for now, due to the potentially combustible nature >>> of this sort of change. >>> >>> Unless there are major objections, I'd like to copy these to the trunk >>> so we can all enjoy gorgeous Rectangular Block formatting. >>> >>> - Chris >>> >>> >> Thanks! I love it! I did a couple of tweaks I hope you'll like: >> >> 1) Separate lines for block >> a) if block has arguments (as if it had temps) >> b) if the single statement is complex (as if it had many statements) >> >> 2) Brace arrays formatted as rectangluar blocks >> >> !BlockNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 09:09'! >> printOn: aStream indent: level >> | separateLines | >> aStream >> nextPut: $[ ; >> space. >> self >> printArgumentsOn: aStream >> indent: level. >> separateLines := (self >> printTemporaries: temporaries >> on: aStream >> doPrior: [ ] ) or: [ arguments size > 0 ]. >> separateLines ifTrue: >> [ "If args+temps > 0 and statements > 1 (or just one complex >> statement), put all statements on separate lines" >> (statements size > 1 or: [ statements size = 1 and: [statements first >> isComplex]]) >> ifTrue: [ aStream crtab: level ] >> ifFalse: [ aStream space] ] . >> self >> printStatementsOn: aStream >> indent: level. >> aStream >> space ; >> nextPut: $]! ! >> >> >> !BraceNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 08:58'! >> printOn: aStream indent: level >> aStream >> crtab: level+1. >> aStream nextPut: ${. >> 1 >> to: elements size >> do: >> [ : i | >> (elements at: i) >> printOn: aStream >> indent: level. >> i < elements size ifTrue: >> [ aStream >> nextPutAll: '. ' ; >> crtab: level+1 ] ]. >> aStream nextPut: $}! ! >> >> BTW, according to http://c2.com/ppr/formatting.html#2, the author is Kent >> Beck. >> >> Cheers, >> Juan Vuletich >> >> >> |
I saw them, I just thought it would be easier to merge/compare your
changes (and maintain your initials) via MC rather than cut-and-paste.. I'll check them out.. On Wed, Mar 3, 2010 at 10:21 AM, Juan Vuletich <[hidden email]> wrote: > Chris Muller wrote: >> >> Great so that's one vote for. But I am not seeing your tweaks, did >> you update the inbox? >> >> > > They are right there in the body of the message. In case there's a problem > with your mail client, see > http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.general/143213 . > > Cheers, > Juan Vuletich > >> On Wed, Mar 3, 2010 at 6:32 AM, Juan Vuletich <[hidden email]> wrote: >> >>> >>> Hi Chris, >>> >>> Chris Muller wrote: >>> >>>> >>>> Hi, I've just posted refinements to the inbox for pretty-print to >>>> provide Rectangular Block and Indented Control Flow as suggested by >>>> Ward Cunningham at: >>>> >>>> http://c2.com/ppr/formatting.html#2 >>>> >>>> These formatting rules maximize readability while balancing screen >>>> space (and methods should be short anyway). However, I did only push >>>> these to the inbox for now, due to the potentially combustible nature >>>> of this sort of change. >>>> >>>> Unless there are major objections, I'd like to copy these to the trunk >>>> so we can all enjoy gorgeous Rectangular Block formatting. >>>> >>>> - Chris >>>> >>>> >>> >>> Thanks! I love it! I did a couple of tweaks I hope you'll like: >>> >>> 1) Separate lines for block >>> a) if block has arguments (as if it had temps) >>> b) if the single statement is complex (as if it had many statements) >>> >>> 2) Brace arrays formatted as rectangluar blocks >>> >>> !BlockNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 09:09'! >>> printOn: aStream indent: level >>> | separateLines | >>> aStream >>> nextPut: $[ ; >>> space. >>> self >>> printArgumentsOn: aStream >>> indent: level. >>> separateLines := (self >>> printTemporaries: temporaries >>> on: aStream >>> doPrior: [ ] ) or: [ arguments size > 0 ]. >>> separateLines ifTrue: >>> [ "If args+temps > 0 and statements > 1 (or just one complex >>> statement), put all statements on separate lines" >>> (statements size > 1 or: [ statements size = 1 and: [statements >>> first >>> isComplex]]) >>> ifTrue: [ aStream crtab: level ] >>> ifFalse: [ aStream space] ] . >>> self >>> printStatementsOn: aStream >>> indent: level. >>> aStream >>> space ; >>> nextPut: $]! ! >>> >>> >>> !BraceNode methodsFor: 'printing' stamp: 'jmv 3/3/2010 08:58'! >>> printOn: aStream indent: level >>> aStream >>> crtab: level+1. >>> aStream nextPut: ${. >>> 1 >>> to: elements size >>> do: >>> [ : i | >>> (elements at: i) >>> printOn: aStream >>> indent: level. >>> i < elements size ifTrue: >>> [ aStream >>> nextPutAll: '. ' ; >>> crtab: level+1 ] ]. >>> aStream nextPut: $}! ! >>> >>> BTW, according to http://c2.com/ppr/formatting.html#2, the author is Kent >>> Beck. >>> >>> Cheers, >>> Juan Vuletich >>> >>> >>> > > > |
Free forum by Nabble | Edit this page |