[squeak-dev] The Inbox: Morphic-ct.1586.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Nov 10 15:06:26 UTC 2019


A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1586.mcz

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

Name: Morphic-ct.1586
Author: ct
Time: 10 November 2019, 4:06:17.228559 pm
UUID: d752eb23-2116-0945-b043-aff08fed94fd
Ancestors: Morphic-mt.1584

Proposal: Style printIt results as a pluggable link that can be clicked to inspect the result.

To enable this behavior, this commit also extends #insertAndSelect:at: to allow for inserting both strings and texts.

=============== Diff against Morphic-mt.1584 ===============

Item was changed:
  ----- Method: PluggableTextMorph>>printIt (in category 'menu commands') -----
  printIt
  	| oldEditor |
  	textMorph editor selectFrom: selectionInterval first to: selectionInterval last;
  						model: model.  "For, eg, evaluateSelection"
  	textMorph handleEdit: [(oldEditor := textMorph editor) evaluateSelectionAndDo:
  		[:result |
  		selectionInterval := oldEditor selectionInterval.
  		textMorph installEditorToReplace: oldEditor.
+ 		textMorph handleEdit: [ oldEditor afterSelectionInsertAndSelect:
+ 			(oldEditor printTextFor: result)].
- 		textMorph handleEdit: [oldEditor afterSelectionInsertAndSelect: result printString].
  		selectionInterval := oldEditor selectionInterval.
  	
  		textMorph editor selectFrom: selectionInterval first to: selectionInterval last.
  		self scrollSelectionIntoView]]!

Item was changed:
  ----- Method: TextEditor>>afterSelectionInsertAndSelect: (in category 'new selection') -----
+ afterSelectionInsertAndSelect: aStringOrText
- afterSelectionInsertAndSelect: aString
  
+ 	self insertAndSelect: aStringOrText at: self stopIndex !
- 	self insertAndSelect: aString at: self stopIndex !

Item was changed:
  ----- Method: TextEditor>>insertAndSelect:at: (in category 'new selection') -----
+ insertAndSelect: aStringOrText at: anInteger
- insertAndSelect: aString at: anInteger
  
+ 	aStringOrText isString ifTrue: [
+ 		^ self
+ 			insertAndSelect: (Text string: aStringOrText attributes: emphasisHere)
+ 			at: anInteger].
- 	self closeTypeIn.
  	
+ 	self closeTypeIn.
  	self selectInvisiblyFrom: anInteger to: anInteger - 1.
  	self openTypeIn.
  
  	self
  		replace: self selectionInterval
+ 		with: (Text string: ' ' attributes: emphasisHere), aStringOrText
- 		with: (Text string: (' ', aString) attributes: emphasisHere)
  		and: [].
- 
  	self closeTypeIn.!

Item was changed:
  ----- Method: TextEditor>>printIt (in category 'do-its') -----
  printIt
  
  	self evaluateSelectionAndDo: [:result |
  		(model respondsTo: #printIt:result:)
  			ifTrue: [model
  				perform: #printIt:result:
  				with: self selection
  				with: result]
+ 			ifFalse: [self afterSelectionInsertAndSelect: (self printTextFor: result)]]!
- 			ifFalse: [self afterSelectionInsertAndSelect: result printString]]!

Item was added:
+ ----- Method: TextEditor>>printTextFor: (in category 'do-its') -----
+ printTextFor: anObject
+ 
+ 	^ Text
+ 		string: anObject printString
+ 		attributes: {PluggableTextAttribute evalBlock: [anObject inspect]}!



More information about the Squeak-dev mailing list