Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.253.mcz
==================== Summary ====================
Name: ST80-mt.253
Author: mt
Time: 27 April 2020, 10:10:03.42034 am
UUID: 4c5e810c-df68-3e46-b9cc-f84546547355
Ancestors: ST80-dtl.252
Remove explicit class reference and rely on #inspectorClass. Avoid message send to object-under-inspector to not discard references to proxies.
=============== Diff against ST80-dtl.252 ===============
Item was changed:
----- Method: FormInspectView class>>openOn:withLabel: (in category 'instance creation') -----
openOn: aFormDictionary withLabel: aLabel
"open a graphical dictionary in a window having the label aLabel.
aFormDictionary should be a dictionary containing as value a form."
+ ^ aFormDictionary inspectWithLabel: aLabel
- ^ DictionaryInspector
- openOn: aFormDictionary
- withLabel: aLabel
!
Item was changed:
----- Method: ParagraphEditor>>inspectIt (in category 'do-its') -----
inspectIt
+ self evaluateSelectionAndDo: [:result | ToolSet inspect: result].
- self evaluateSelectionAndDo: [:result | result inspect].
!
Marcel Taeumel uploaded a new version of KernelTests to project The Trunk:
http://source.squeak.org/trunk/KernelTests-mt.379.mcz
==================== Summary ====================
Name: KernelTests-mt.379
Author: mt
Time: 27 April 2020, 9:54:41.95034 am
UUID: fc3b629e-c81d-ee49-afe9-9de723098aff
Ancestors: KernelTests-nice.378
Removes a dependency from KernelTests to Tools package.
=============== Diff against KernelTests-nice.378 ===============
Item was changed:
----- Method: ClassTest>>testChangeClassOf (in category 'tests') -----
testChangeClassOf
"Exercise primitiveChangeClass (primitive 115) for a common use case. This should pass
for any Squeak image format (but failed for image format 68002 prior to VM fix)"
+ self shouldnt: [Exception new primitiveChangeClassTo: Error new] raise: Error!
- self shouldnt: [Inspector new primitiveChangeClassTo: CompiledMethodInspector new] raise: Error!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1652.mcz
==================== Summary ====================
Name: Morphic-mt.1652
Author: mt
Time: 27 April 2020, 9:31:57.493264 am
UUID: d23bbde5-4e42-3547-960d-39994fc21f56
Ancestors: Morphic-ct.1651
Fixes regression #browseIt in TraceMessages, too. Now all recent hick-ups with TraceMessages are gone. There are still some hooks missing such as #browseAllAccessTo:from:.
However, I think we should push down those backstops from Object to Model.
Note that I already backported this fix to Squeak 5.3.
=============== Diff against Morphic-ct.1651 ===============
Item was changed:
----- Method: TextEditor>>browseIt (in category 'menu messages') -----
browseIt
"Launch a browser for the current selection, if appropriate."
Preferences alternativeBrowseIt ifTrue: [^ self browseClassFromIt].
self lineSelectAndEmptyCheck: [^ morph flash].
"First, try to show all accesses to instance or class variables."
self selectedInstanceVariable ifNotNil:
[:nameToClass | self systemNavigation
browseAllAccessesTo: nameToClass key
from: nameToClass value].
self selectedClassVariable ifNotNil:
+ [:binding | self model browseAllCallsOn: binding].
- [:binding | self systemNavigation browseAllCallsOn: binding].
"Then, either browse the class (from a binding) or all implementors of a selector."
self selectedBinding ifNotNil:
[:binding | ^ self systemNavigation browseClass: binding].
self selectedSelector ifNotNil:
+ [:selector | ^ self model browseAllImplementorsOf: selector].
- [:selector | ^ self systemNavigation browseAllImplementorsOf: selector].
morph flash!
Marcel Taeumel uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-mt.889.mcz
==================== Summary ====================
Name: Collections-mt.889
Author: mt
Time: 26 April 2020, 6:45:20.736934 pm
UUID: 2f716cfd-4552-b54e-bfe3-43ac798f8087
Ancestors: Collections-mt.888
Makes BitSet's printString more informative.
=============== Diff against Collections-mt.888 ===============
Item was added:
+ ----- Method: Bitset>>printElementsOn:separatedBy: (in category 'printing') -----
+ printElementsOn: aStream separatedBy: delimiter
+ "Overridden to always inform about the entire set of bits."
+
+ (0 to: self capacity-1)
+ do: [:index | aStream print: (self bitAt: index)]
+ separatedBy: [aStream nextPutAll: delimiter asString].!
David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.252.mcz
==================== Summary ====================
Name: ST80-dtl.252
Author: dtl
Time: 25 April 2020, 11:33:47.596261 am
UUID: 1ffa2601-fb84-480f-9e22-f3bd1961caeb
Ancestors: ST80-mt.251, ST80-nice.249
Merge
=============== Diff against ST80-mt.251 ===============
Item was changed:
----- Method: TestIndenting>>testCR (in category 'tests') -----
testCR
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 7 to: 7 with: (String with: Character cr) displaying: false.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 8.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testCR3 (in category 'tests') -----
testCR3
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 11 to: 11 with: (Text string: (String with: Character cr) attribute: (TextIndent tabs: 1)) displaying: false.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 12.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineAndTabProvidesDoubleIndent (in category 'tests') -----
testNewLineAndTabProvidesDoubleIndent
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 11 to: 11 with: (Text string: (String with: Character cr) attribute: (TextIndent tabs: 1)) displaying: false.
-
cb := para characterBlockForIndex: 12.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineStartsIndented (in category 'tests') -----
testNewLineStartsIndented
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 7 to: 7 with: (String with: Character cr) displaying: false.
+ leftMargin := para textStyle leftMarginTabAt: 1.
-
cb := para characterBlockForIndex: 8.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineStartsIndentedWhenWrapped (in category 'tests') -----
testNewLineStartsIndentedWhenWrapped
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para compositionRectangle: (0@0 extent: para width - 24@100); updateCompositionHeight.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 8.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testSetUp (in category 'tests') -----
testSetUp
"just reminding us all what the paragraph looks like to begin with. assuming Accuny12 font "
+ | cb firstTabStop |
+ firstTabStop := para textStyle nextTabXFrom: 1 leftMargin: 0 rightMargin: 200.
- | cb |
-
cb := para characterBlockForIndex: 1. "p"
self assert: cb top = 0.
self assert: cb left = 0.
self assert: cb right = 7.
-
cb := para characterBlockForIndex: 2. "the tab"
self assert: cb top = 0.
self assert: cb left = 7.
+ self assert: cb right = firstTabStop.
- self assert: cb right = 24.
-
cb := para characterBlockForIndex: 3. "w"
self assert: cb top = 0.
+ self assert: cb left = firstTabStop.
+ self assert: cb right = (firstTabStop + 10).
- self assert: cb left = 24.
- self assert: cb right = 34.
cb := para characterBlockForIndex: 7. " " "between word and word"
self assert: cb top = 0.
+ self assert: cb left = (firstTabStop + 28).
+ self assert: cb right = (firstTabStop + 33).
- self assert: cb left = 52.
- self assert: cb right = 57.
cb := para characterBlockForIndex: 11. "d" "last char"
self assert: cb top = 0.
+ self assert: cb left = (firstTabStop + 55).
+ self assert: cb right = (firstTabStop + 61).
- self assert: cb left = 79.
- self assert: cb right = 85.
!
David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-nice.249.mcz
==================== Summary ====================
Name: ST80-nice.249
Author: nice
Time: 7 March 2020, 10:15:56.235551 pm
UUID: ab4fcf8c-acb9-4cde-83e0-57846e89aa42
Ancestors: ST80-mt.248
Let TestIndenting pass whatever custom tab stops.
In some image, I have set the tab stops like that:
(TextConstants at: #DefaultTabsArray) becomeForward: (32 to: 1536 by: 32) asArray.
(TextConstants at: #DefaultMarginTabsArray) becomeForward: ((32 to: 768 by: 32) collect: [:i | {i. i}]).
=============== Diff against ST80-mt.248 ===============
Item was changed:
----- Method: TestIndenting>>testCR (in category 'tests') -----
testCR
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 7 to: 7 with: (String with: Character cr) displaying: false.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 8.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testCR3 (in category 'tests') -----
testCR3
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 11 to: 11 with: (Text string: (String with: Character cr) attribute: (TextIndent tabs: 1)) displaying: false.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 12.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineAndTabProvidesDoubleIndent (in category 'tests') -----
testNewLineAndTabProvidesDoubleIndent
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 11 to: 11 with: (Text string: (String with: Character cr) attribute: (TextIndent tabs: 1)) displaying: false.
-
cb := para characterBlockForIndex: 12.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineStartsIndented (in category 'tests') -----
testNewLineStartsIndented
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para replaceFrom: 7 to: 7 with: (String with: Character cr) displaying: false.
+ leftMargin := para textStyle leftMarginTabAt: 1.
-
cb := para characterBlockForIndex: 8.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testNewLineStartsIndentedWhenWrapped (in category 'tests') -----
testNewLineStartsIndentedWhenWrapped
"Checks whether the beginning of a new line starts at the indented position"
+ | cb leftMargin |
- | cb |
para compositionRectangle: (0@0 extent: para width - 24@100); updateCompositionHeight.
para clippingRectangle: (0@0 extent: 200@200).
cb := para characterBlockForIndex: 8.
+ leftMargin := para textStyle leftMarginTabAt: 1.
self assert: cb top > 0.
+ self assert: cb left = leftMargin!
- self assert: cb left = 24!
Item was changed:
----- Method: TestIndenting>>testSetUp (in category 'tests') -----
testSetUp
"just reminding us all what the paragraph looks like to begin with. assuming Accuny12 font "
+ | cb firstTabStop |
+ firstTabStop := para textStyle nextTabXFrom: 1 leftMargin: 0 rightMargin: 200.
- | cb |
-
cb := para characterBlockForIndex: 1. "p"
self assert: cb top = 0.
self assert: cb left = 0.
self assert: cb right = 7.
-
cb := para characterBlockForIndex: 2. "the tab"
self assert: cb top = 0.
self assert: cb left = 7.
+ self assert: cb right = firstTabStop.
- self assert: cb right = 24.
-
cb := para characterBlockForIndex: 3. "w"
self assert: cb top = 0.
+ self assert: cb left = firstTabStop.
+ self assert: cb right = (firstTabStop + 10).
- self assert: cb left = 24.
- self assert: cb right = 34.
cb := para characterBlockForIndex: 7. " " "between word and word"
self assert: cb top = 0.
+ self assert: cb left = (firstTabStop + 28).
+ self assert: cb right = (firstTabStop + 33).
- self assert: cb left = 52.
- self assert: cb right = 57.
cb := para characterBlockForIndex: 11. "d" "last char"
self assert: cb top = 0.
+ self assert: cb left = (firstTabStop + 55).
+ self assert: cb right = (firstTabStop + 61).
- self assert: cb left = 79.
- self assert: cb right = 85.
!