[squeak-dev] The Trunk: Monticello-eem.786.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jan 13 20:14:02 UTC 2023


Eliot Miranda uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-eem.786.mcz

==================== Summary ====================

Name: Monticello-eem.786
Author: eem
Time: 13 January 2023, 12:13:59.928653 pm
UUID: 3b994383-de8a-4b74-8ea0-a356c1fb2631
Ancestors: Monticello-eem.785

Refactor MCCodeTool>>fileOutDefinition/fileOutMessage so the save dialog can exclude ignored items.

=============== Diff against Monticello-eem.785 ===============

Item was changed:
  ----- Method: MCCodeTool>>fileOutDefinition (in category 'menus') -----
  fileOutDefinition
  	"Put a description of the selected definition(s) on a file.
  	 Output the version(s) corresponding to the incoming definition(s), not the versions in this system."
  
  	| index fileName itemsToFileOut |
  	itemsToFileOut := (index := self selection) ~= 0
  							ifTrue: [{items at: index}]
+ 							ifFalse: [items select: [:item| self shouldIncludeInFileOut: item]].
- 							ifFalse: [items].
  	items isEmpty ifTrue:
  		[^self].
  	fileName := UIManager default
  					saveFilenameRequest: 'File out on which file?'
  					initialAnswer: (index ~= 0
  										ifTrue: [itemsToFileOut first summary]
  										ifFalse: ['definitions']).
  	fileName isEmptyOrNil ifTrue: [^self].
  	Cursor write showWhile:
  		[| definitionStream |
  		definitionStream := WriteStream on: (String new: 1000).
  		definitionStream header; timeStamp.
  		itemsToFileOut
  			do: [:patchOp|
  				(patchOp isRemoval ifTrue: [patchOp] ifFalse: [patchOp definition]) fileOutOn: definitionStream]
  			separatedBy: [definitionStream cr; cr].
  		FileStream writeSourceCodeFrom: definitionStream baseName: fileName isSt: true useHtml: false]!

Item was changed:
  ----- Method: MCCodeTool>>fileOutMessage (in category 'menus') -----
  fileOutMessage
  	"Put a description of the selected definition(s) on a file.
  	 Output the version(s) corresponding to this system, not the incoming definition."
  
  	| index fileName itemsToFileOut |
  	itemsToFileOut := (index := self selection) ~= 0
  							ifTrue: [{items at: index}]
+ 							ifFalse: [items select: [:item| self shouldIncludeInFileOut: item]].
- 							ifFalse: [items].
  	items isEmpty ifTrue:
  		[^self].
  	fileName := UIManager default
  					saveFilenameRequest: 'File out on which file?'
  					initialAnswer: (index ~= 0
  										ifTrue: [itemsToFileOut first summary]
  										ifFalse: ['definitions']).
  	fileName isEmptyOrNil ifTrue: [^self].
  	Cursor write showWhile:
  		[| definitionStream removalInitStream |
  		definitionStream := WriteStream on: (String new: 1000).
  		removalInitStream := WriteStream on: (String new: 100).
  		definitionStream header; timeStamp.
  		itemsToFileOut do:
  			[:patchOp| | def |
  			def := patchOp definition.
  			def isMethodDefinition ifTrue:
  				[(def actualClass notNil
  				  and: [def actualClass includesSelector: def selector])
  					ifTrue:
  						[def actualClass
  							printMethodChunk: def selector
  							withPreamble: true
  							on: definitionStream
  							moveSource: false
  							toFile: nil.
  						(def selector == #initialize and: [def classIsMeta]) ifTrue:
  							[removalInitStream nextChunkPut: def className, ' initialize'; cr]]
  					ifFalse:
  						[removalInitStream nextChunkPut: def className, (def classIsMeta ifTrue: [' class'] ifFalse: ['']), ' removeSelector: ', def selector printString; cr]].
  			def isClassDefinition ifTrue:
  				[def actualClass
  					ifNotNil:
  						[definitionStream nextChunkPut: def actualClass definition.
  						 def comment ifNotNil:
  							[def actualClass organization
  								putCommentOnFile: definitionStream
  								numbered: 1
  								moveSource: false
  								forClass: def actualClass]]
  					ifNil:
  						[removalInitStream nextChunkPut: def className, ' removeFromSystem'; cr]]].
  		definitionStream nextPutAll: removalInitStream contents.
  		FileStream writeSourceCodeFrom: definitionStream baseName: fileName isSt: true useHtml: false]!

Item was added:
+ ----- Method: MCCodeTool>>shouldIncludeInFileOut: (in category 'menus') -----
+ shouldIncludeInFileOut: item
+ 	"This is a hook to allow the MCSaveVersionDialog to exclude ignored items"
+ 	^true!

Item was added:
+ ----- Method: MCSaveVersionDialog>>shouldIncludeInFileOut: (in category 'menus') -----
+ shouldIncludeInFileOut: item
+ 	^(ignore includes: item) not!



More information about the Squeak-dev mailing list