Christoph Thiede uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ct.1173.mcz
==================== Summary ====================
Name: Tools-ct.1173
Author: ct
Time: 8 September 2022, 3:05:12.665836 pm
UUID: f0fe2b64-b27c-6d4b-9670-d920d0580baf
Ancestors: Tools-ct.1171
Fixes package pane browser to actually use the package organizer instead of parsing the system category list. Resolves https://github.com/squeak-smalltalk/squeak-object-memory/issues/28.
=============== Diff against Tools-ct.1171 ===============
Item was changed:
Browser subclass: #PackagePaneBrowser
+ instanceVariableNames: 'packageOrganizer package packageListIndex packageList'
- instanceVariableNames: 'package packageListIndex packageList'
classVariableNames: ''
poolDictionaries: ''
category: 'Tools-Browser'!
+ !PackagePaneBrowser commentStamp: 'ct 9/8/2022 15:05' prior: 0!
+ A package browser represents a hierarchical query path through an organization of class and method information. It nests classes into a two-level hierarchy that consists of the package (e.g., Kernel, FFI-Kernel) and the system category (e.g., Exception, Exceptions-Kernel; Support, empty).
- !PackagePaneBrowser commentStamp: '<historical>' prior: 0!
- A package browser represents a hierarchical query path through an organization of class and method information. It parses class categories into a two-level hierarchy on the first '-' character, giving "packages" (e.g., Magnitude, Collections, Graphics, etc.), and "categories" (e.g., Magnitude-General and Magnitude-Number).
Instance Variables:
+ packageOrganizer <PackageOrganizer> the organizer of packages in the current environment
package <Symbol> the "category header," e.g., #Magnitudes or #Collections
packageListIndex <Integer> The index in the package list
+ packageList <OrderedCollection of String> the list of package names!
- packageList <OrderedCollection of String> the list of package names
- !
Item was added:
+ ----- Method: PackagePaneBrowser>>initialize (in category 'initialize-release') -----
+ initialize
+
+ super initialize.
+
+ self packageOrganizer: self environment packageOrganizer.!
Item was changed:
----- Method: PackagePaneBrowser>>packageList (in category 'package list') -----
packageList
- "Answer a list of the packages in the current system organization."
+ ^ self packageOrganizer packageNames sorted!
- | str stream |
- str := Set new: 100.
- stream := WriteStream on: (Array new: 100).
- systemOrganizer categories do:
- [ :categ | | cats |
- cats := categ asString copyUpTo: $-.
- (str includes: cats) ifFalse:
- [str add: cats.
- stream nextPut: cats]].
- ^stream contents!
Item was added:
+ ----- Method: PackagePaneBrowser>>packageOrganizer (in category 'accessing') -----
+ packageOrganizer
+
+ ^ packageOrganizer!
Item was added:
+ ----- Method: PackagePaneBrowser>>packageOrganizer: (in category 'initialize-release') -----
+ packageOrganizer: aPackageOrganizer
+
+ packageOrganizer := aPackageOrganizer.
+
+ self systemOrganizer: self systemOrganizer. "reset selections"!
Item was added:
+ ----- Method: PackagePaneBrowser>>selectEnvironment: (in category 'accessing') -----
+ selectEnvironment: anEnvironment
+
+ super selectEnvironment: anEnvironment.
+ self packageOrganizer: anEnvironment packages.!
Christoph Thiede uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ct.1175.mcz
==================== Summary ====================
Name: Tools-ct.1175
Author: ct
Time: 12 September 2022, 7:11:01.503585 pm
UUID: 9dd00133-03f0-074f-95da-9aa4bc0bedc0
Ancestors: Tools-ct.1173, Tools-ct.1174
Merges Tools-ct.1173:
Fixes package pane browser to actually use the package organizer instead of parsing the system category list. Resolves https://github.com/squeak-smalltalk/squeak-object-memory/issues/28.
Revision:
Don't use an instance variable for packageOrganizer, as the environment of the browser is already configurable. Remove never-read instvars 'package' and 'packageList'. Update class comment with refined examples.
Thanks to Jakob (jr) for the review!
=============== Diff against Tools-ct.1174 ===============
Item was changed:
Browser subclass: #PackagePaneBrowser
+ instanceVariableNames: 'packageListIndex'
- instanceVariableNames: 'package packageListIndex packageList'
classVariableNames: ''
poolDictionaries: ''
category: 'Tools-Browser'!
+ !PackagePaneBrowser commentStamp: 'ct 9/12/2022 19:09' prior: 0!
+ A package browser represents a hierarchical query path through an organization of class and method information. It nests classes into a two-level hierarchy that consists of the package (e.g., Kernel; FFI-Kernel) and the system category (e.g., Exception, Exceptions-Kernel, etc. for package Kernel; Support and empty for FFI-Kernel).
- !PackagePaneBrowser commentStamp: '<historical>' prior: 0!
- A package browser represents a hierarchical query path through an organization of class and method information. It parses class categories into a two-level hierarchy on the first '-' character, giving "packages" (e.g., Magnitude, Collections, Graphics, etc.), and "categories" (e.g., Magnitude-General and Magnitude-Number).
Instance Variables:
+ packageListIndex <Integer> The current selected index in the package list.!
- package <Symbol> the "category header," e.g., #Magnitudes or #Collections
- packageListIndex <Integer> The index in the package list
- packageList <OrderedCollection of String> the list of package names
- !
Item was changed:
----- Method: PackagePaneBrowser>>packageList (in category 'package list') -----
packageList
- "Answer a list of the packages in the current system organization."
+ ^ self packageOrganizer packageNames sorted!
- | str stream |
- str := Set new: 100.
- stream := WriteStream on: (Array new: 100).
- systemOrganizer categories do:
- [ :categ | | cats |
- cats := categ asString copyUpTo: $-.
- (str includes: cats) ifFalse:
- [str add: cats.
- stream nextPut: cats]].
- ^stream contents!
Item was changed:
----- Method: PackagePaneBrowser>>packageListIndex: (in category 'package list') -----
packageListIndex: anInteger
"Set anInteger to be the index of the current package selection."
packageListIndex := anInteger.
- anInteger = 0
- ifFalse: [package := self packageList at: packageListIndex].
selectedMessageCategoryName := nil.
self selectSystemCategory: nil.
selectedMessageName := nil.
selectedClassName := nil.
self setClassOrganizer.
self changed: #packageSelectionChanged.
self changed: #packageListIndex. "update my selection"
self changed: #systemCategoryList. "update the category list"
self selectSystemCategory: nil. "update category list selection"
self changed: #classList. "update the class list"
self selectClass: nil. "update category list selection"!
Item was added:
+ ----- Method: PackagePaneBrowser>>packageOrganizer (in category 'accessing') -----
+ packageOrganizer
+
+ ^ self environment packageOrganizer!
Christoph Thiede uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.2026.mcz
==================== Summary ====================
Name: Morphic-ct.2026
Author: ct
Time: 22 August 2022, 6:00:53.823827 pm
UUID: 751b9c82-f5ce-284c-9ab1-5adc1e2616f9
Ancestors: Morphic-mt.2025
Uses shorthand URL for the new issue tracker.
Please confirm that this shortcut should be used.
Best,
Christoph
=============== Diff against Morphic-mt.2025 ===============
Item was changed:
----- Method: TheWorldMainDockingBar>>sendFeedback (in category 'menu actions') -----
sendFeedback
| url os vm hash image |
+ url := 'https://bugs.squeak.org/'.
- url := 'https://github.com/squeak-smalltalk/squeak-object-memory/issues'.
([Smalltalk vm platformSourceVersion] on: Warning do: ["Ignore"])
ifNotNil: [:info | | tokens |
tokens := info findTokens.
vm := tokens at: 2.
hash := tokens atLast: 4].
os := Smalltalk os platformName, ' ', Smalltalk os osVersion, ' ', Smalltalk os platformSubtype.
image := SystemVersion current version, ' #', SystemVersion current highestUpdate.
self inform: ('Please visit the following website to report on bugs, requests, and other issues:<br><br> <a href="{1}">{1}</a><br><br>Make sure that you always include information about your current environment such as:<br><br> OS: {2}<br> VM: {3} ({4})<br> SQ: {5} ({6} bit)<br><br>You can find more in the <a href="code://SystemReporter open">System Reporter</a>.' translated format: {url. os. vm. hash. image. Smalltalk image wordSize * 8}) asTextFromHtml!
Christoph Thiede uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.2038.mcz
==================== Summary ====================
Name: Morphic-ct.2038
Author: ct
Time: 12 September 2022, 6:17:05.873585 pm
UUID: e7299d8d-95fa-124e-8a96-50ad98cee6ee
Ancestors: Morphic-ct.2037, Morphic-ct.2026
Merge.
=============== Diff against Morphic-ct.2037 ===============
Item was changed:
----- Method: TheWorldMainDockingBar>>sendFeedback (in category 'menu actions') -----
sendFeedback
| url os vm hash image |
+ url := 'https://bugs.squeak.org/'.
- url := 'https://github.com/squeak-smalltalk/squeak-object-memory/issues'.
([Smalltalk vm platformSourceVersion] on: Warning do: ["Ignore"])
ifNotNil: [:info | | tokens |
tokens := info findTokens.
vm := tokens at: 2.
hash := tokens atLast: 4].
os := Smalltalk os platformName, ' ', Smalltalk os osVersion, ' ', Smalltalk os platformSubtype.
image := SystemVersion current version, ' #', SystemVersion current highestUpdate.
self inform: ('Please visit the following website to report on bugs, requests, and other issues:<br><br> <a href="{1}">{1}</a><br><br>Make sure that you always include information about your current environment such as:<br><br> OS: {2}<br> VM: {3} ({4})<br> SQ: {5} ({6} bit)<br><br>You can find more in the <a href="code://SystemReporter open">System Reporter</a>.' translated format: {url. os. vm. hash. image. Smalltalk image wordSize * 8}) asTextFromHtml!
Christoph Thiede uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ct.1174.mcz
==================== Summary ====================
Name: Tools-ct.1174
Author: ct
Time: 9 September 2022, 10:59:25.805395 pm
UUID: c6e6fc87-b341-c940-8993-c72b2a6bc5e4
Ancestors: Tools-ct.1171
Fixes slip in browser when defining a trait over a selected class.
=============== Diff against Tools-ct.1171 ===============
Item was changed:
----- Method: Browser>>defineTrait:notifying: (in category 'traits') -----
defineTrait: defString notifying: aController
| defTokens keywdIx envt oldTrait newTraitName trait |
oldTrait := self selectedClassOrMetaClass.
+ oldTrait isTrait ifFalse: [oldTrait := nil].
defTokens := defString findTokens: Character separators.
keywdIx := defTokens findFirst: [:x | x = 'category'].
envt := self selectedEnvironment.
keywdIx := defTokens findFirst: [:x | x = 'named:'].
newTraitName := (defTokens at: keywdIx+1) copyWithoutAll: '#()'.
((oldTrait isNil or: [oldTrait baseTrait name asString ~= newTraitName])
and: [envt includesKey: newTraitName asSymbol]) ifTrue:
["Attempting to define new class/trait over existing one when
not looking at the original one in this browser..."
(self confirm: ((newTraitName , ' is an existing class/trait in this system.
Redefining it might cause serious problems.
Is this really what you want to do?') asText makeBoldFrom: 1 to: newTraitName size))
ifFalse: [^ false]].
trait := envt beCurrentDuring:
[Compiler evaluate: defString in: envt notifying: aController logged: true].
^(trait isTrait)
ifTrue: [
self changed: #classList.
self classListIndex: (self classListIndexOf: trait baseTrait name).
self clearUserEditFlag; editClass.
true]
ifFalse: [ false ]
!