diff --git a/packages/SwaLintBrowser.package/Collection.extension/instance/sl2SortedByHeavy..st b/packages/SwaLintBrowser.package/Collection.extension/instance/sl2SortedByHeavy..st new file mode 100644 index 00000000..8771244e --- /dev/null +++ b/packages/SwaLintBrowser.package/Collection.extension/instance/sl2SortedByHeavy..st @@ -0,0 +1,6 @@ +*SwaLintBrowser-UI-sorting +sl2SortedByHeavy: propertyBlock + + ^ ((self collect: [:ea | ea -> (propertyBlock value: ea)]) + sorted: [:assoc | assoc value] asSortFunction) + collect: [:assoc | assoc key] \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/Collection.extension/methodProperties.json b/packages/SwaLintBrowser.package/Collection.extension/methodProperties.json new file mode 100644 index 00000000..c1a340b7 --- /dev/null +++ b/packages/SwaLintBrowser.package/Collection.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "sl2SortedByHeavy:" : "ct 12/22/2024 00:52" } } diff --git a/packages/SwaLintBrowser.package/Collection.extension/properties.json b/packages/SwaLintBrowser.package/Collection.extension/properties.json new file mode 100644 index 00000000..93b0dc32 --- /dev/null +++ b/packages/SwaLintBrowser.package/Collection.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "Collection" } diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/README.md b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/allAspectDependencies.st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/allAspectDependencies.st new file mode 100644 index 00000000..fafa7201 --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/allAspectDependencies.st @@ -0,0 +1,4 @@ +updating-private +allAspectDependencies + + ^ self pragmaAspectDependencies , self aspectDependencies \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/aspectDependencies.st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/aspectDependencies.st new file mode 100644 index 00000000..749b377c --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/aspectDependencies.st @@ -0,0 +1,7 @@ +updating +aspectDependencies + + ^ Dictionary new + "Model" + at: #windowTitle put: #(#labelString); + yourself \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/changed..st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/changed..st similarity index 100% rename from packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/changed..st rename to packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/changed..st diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changedDependent..st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/changedDependent..st similarity index 100% rename from packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changedDependent..st rename to packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/changedDependent..st diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/dependentAspectsOn..st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/dependentAspectsOn..st similarity index 82% rename from packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/dependentAspectsOn..st rename to packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/dependentAspectsOn..st index c05753e9..b1cbf0bb 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/dependentAspectsOn..st +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/dependentAspectsOn..st @@ -1,8 +1,8 @@ -updating +updating-private dependentAspectsOn: aspect self flag: #todo. "Detect cyclic dependencies!" - ^ self aspectDependencies associations + ^ self allAspectDependencies associations select: [:assoc | assoc value isString ifTrue: [ self notify: 'You probably missed an array here!' "aid for stupid devs"]. diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/pragmaAspectDependencies.st b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/pragmaAspectDependencies.st new file mode 100644 index 00000000..9c21fcdb --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/instance/pragmaAspectDependencies.st @@ -0,0 +1,10 @@ +updating-private +pragmaAspectDependencies + + ^ (Pragma allNamed: #uses: from: self class to: thisContext methodClass) + collect: [:pragma | + | uses | + uses := pragma argumentAt: 1. + uses isSymbol ifTrue: [uses := {uses}]. + pragma selector -> uses] + as: Dictionary \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/methodProperties.json b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/methodProperties.json new file mode 100644 index 00000000..834a5a34 --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/methodProperties.json @@ -0,0 +1,10 @@ +{ + "class" : { + }, + "instance" : { + "allAspectDependencies" : "ct 12/22/2024 01:09", + "aspectDependencies" : "ct 12/22/2024 01:00", + "changed:" : "ct 2/8/2022 14:49", + "changedDependent:" : "ct 2/8/2022 14:49", + "dependentAspectsOn:" : "ct 12/22/2024 01:15", + "pragmaAspectDependencies" : "ct 12/22/2024 01:09" } } diff --git a/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/properties.json b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/properties.json new file mode 100644 index 00000000..f6d3b986 --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2AspectDependencyGraph0.trait/properties.json @@ -0,0 +1,4 @@ +{ + "category" : "SwaLintBrowser-UI", + "commentStamp" : "", + "name" : "SL2AspectDependencyGraph0" } diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/aspectDependencies.st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/aspectDependencies.st deleted file mode 100644 index 76059edc..00000000 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/aspectDependencies.st +++ /dev/null @@ -1,13 +0,0 @@ -updating -aspectDependencies - - ^ Dictionary new - at: #windowTitle put: #(#labelString); - - at: #availableClasses put: #(selectedSystemCategories); - at: #hasClassSelected: put: #(selectedClasses); - at: #hasClassSelectedAt: put: #(hasClassSelected:); - at: #hasSystemCategorySelected: put: #(selectedSystemCategories); - at: #hasSystemCategorySelectedAt: put: #(hasSystemCategorySelected:); - - yourself \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/availableClasses.st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/availableClasses.st index 3f09c387..a6ad7b49 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/availableClasses.st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/availableClasses.st @@ -1,5 +1,7 @@ accessing - toolbuilder availableClasses + - ^ (self selectedSystemCategories gather: [:category | self classesInSystemCategory: category]) - sorted: #name ascending \ No newline at end of file + ^ self cached: + [(self selectedSystemCategories gather: [:category | self classesInSystemCategory: category]) + sl2SortedByHeavy: #name] \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/cached..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/cached..st new file mode 100644 index 00000000..d3d5c038 --- /dev/null +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/cached..st @@ -0,0 +1,4 @@ +private +cached: aBlock + + ^ caches at: aBlock method ifAbsentPut: aBlock \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changed..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changed..st index 473a8785..d37384b4 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changed..st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/changed..st @@ -3,5 +3,9 @@ changed: aspect super changed: aspect. + caches keys do: [:key | + ((self pragmaAspectDependencies at: key selector) includes: aspect) ifTrue: + [caches removeKey: key]]. + (self dependentAspectsOn: aspect) do: [:dependentAspect | self changedDependent: dependentAspect]. \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelected..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelected..st index ec792e57..0f0cab19 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelected..st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelected..st @@ -1,4 +1,5 @@ accessing hasClassSelected: aClass + ^ self selectedClasses includes: aClass \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelectedAt..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelectedAt..st index d131ef9f..0aba1b4a 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelectedAt..st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasClassSelectedAt..st @@ -1,4 +1,5 @@ accessing - toolbuilder hasClassSelectedAt: anInteger + ^ self hasClassSelected: (self availableClasses at: anInteger) \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelected..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelected..st index 90a80d2c..f9db8d7a 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelected..st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelected..st @@ -1,4 +1,5 @@ accessing hasSystemCategorySelected: category + ^ self selectedSystemCategories includes: category \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelectedAt..st b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelectedAt..st index 4323dd1c..31e8ddba 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelectedAt..st +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/instance/hasSystemCategorySelectedAt..st @@ -1,4 +1,5 @@ accessing - toolbuilder hasSystemCategorySelectedAt: anInteger + ^ self hasSystemCategorySelected: (self availableSystemCategories at: anInteger) \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/methodProperties.json b/packages/SwaLintBrowser.package/SL2TargetChooser.class/methodProperties.json index c69e1b4b..afb0b15b 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/methodProperties.json +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/methodProperties.json @@ -10,30 +10,28 @@ "allClasses:" : "ct 12/12/2024 03:00", "allSystemCategories" : "ct 12/12/2024 02:39", "allSystemCategories:" : "ct 12/12/2024 02:59", - "aspectDependencies" : "ct 12/12/2024 03:31", - "availableClasses" : "ct 12/17/2024 22:09", + "availableClasses" : "ct 12/22/2024 01:18", "availableSystemCategories" : "ct 12/12/2024 02:38", "buildButtons:" : "ct 12/12/2024 02:21", "buildClassList:" : "ct 12/22/2024 00:32", "buildCreateDialogWith:" : "ct 12/12/2024 02:20", "buildEditDialogWith:" : "ct 12/12/2024 03:46", "buildSystemCategoryList:" : "ct 12/22/2024 00:38", + "cached:" : "ct 12/22/2024 01:07", "cancel" : "ct 12/12/2024 03:05", "cancelColor" : "ct 12/12/2024 03:03", - "changed:" : "ct 2/8/2022 14:49", - "changedDependent:" : "ct 2/8/2022 14:49", + "changed:" : "ct 12/22/2024 01:13", "class:select:" : "ct 12/22/2024 01:29", "classAt:select:" : "ct 12/12/2024 03:33", "classMenu:" : "ct 12/22/2024 00:43", "classesInSystemCategory:" : "ct 12/22/2024 01:25", "close:" : "ct 12/12/2024 03:05", "createOrCancel:" : "ct 12/12/2024 03:38", - "dependentAspectsOn:" : "ct 2/8/2022 14:49", "edit:" : "ct 12/12/2024 03:46", - "hasClassSelected:" : "ct 12/12/2024 03:06", - "hasClassSelectedAt:" : "ct 12/12/2024 03:04", - "hasSystemCategorySelected:" : "ct 12/12/2024 03:14", - "hasSystemCategorySelectedAt:" : "ct 12/12/2024 03:14", + "hasClassSelected:" : "ct 12/22/2024 01:02", + "hasClassSelectedAt:" : "ct 12/22/2024 01:02", + "hasSystemCategorySelected:" : "ct 12/22/2024 01:02", + "hasSystemCategorySelectedAt:" : "ct 12/22/2024 01:02", "initialize" : "ct 12/22/2024 01:07", "initializeWithSystemOrganizer:" : "ct 12/21/2024 21:38", "invertSelection:" : "ct 12/22/2024 00:41", diff --git a/packages/SwaLintBrowser.package/SL2TargetChooser.class/properties.json b/packages/SwaLintBrowser.package/SL2TargetChooser.class/properties.json index 63fb3f25..42950f3d 100644 --- a/packages/SwaLintBrowser.package/SL2TargetChooser.class/properties.json +++ b/packages/SwaLintBrowser.package/SL2TargetChooser.class/properties.json @@ -12,7 +12,8 @@ "allClasses", "accepted", "selectedSystemCategory", - "selectedClass" ], + "selectedClass", + "caches" ], "name" : "SL2TargetChooser", "pools" : [ ], diff --git a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/aspectDependencies.st b/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/aspectDependencies.st index 113d2592..a66aee1a 100644 --- a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/aspectDependencies.st +++ b/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/aspectDependencies.st @@ -1,12 +1,7 @@ updating aspectDependencies - | pragmaDependencies | - pragmaDependencies := (Pragma allNamed: #uses: from: self class to: thisContext methodClass) - collect: [:pragma | pragma selector -> (pragma argumentAt: 1)] - as: Dictionary. - - ^ pragmaDependencies + ^ Dictionary new "Model" at: #windowTitle put: #(#labelString); "CodeHolder" diff --git a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/changedDependent..st b/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/changedDependent..st deleted file mode 100644 index 503fd904..00000000 --- a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/changedDependent..st +++ /dev/null @@ -1,5 +0,0 @@ -updating -changedDependent: aspect - "Hook for implementors to clear caches." - - self changed: aspect. \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/dependentAspectsOn..st b/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/dependentAspectsOn..st deleted file mode 100644 index c05753e9..00000000 --- a/packages/SwaLintBrowser.package/SwaLintBrowser.class/instance/dependentAspectsOn..st +++ /dev/null @@ -1,10 +0,0 @@ -updating -dependentAspectsOn: aspect - - self flag: #todo. "Detect cyclic dependencies!" - ^ self aspectDependencies associations - select: [:assoc | - assoc value isString ifTrue: [ - self notify: 'You probably missed an array here!' "aid for stupid devs"]. - assoc value includes: aspect] - thenCollect: [:assoc | assoc key] \ No newline at end of file diff --git a/packages/SwaLintBrowser.package/SwaLintBrowser.class/methodProperties.json b/packages/SwaLintBrowser.package/SwaLintBrowser.class/methodProperties.json index 6eeaacb0..2ae6c4c4 100644 --- a/packages/SwaLintBrowser.package/SwaLintBrowser.class/methodProperties.json +++ b/packages/SwaLintBrowser.package/SwaLintBrowser.class/methodProperties.json @@ -9,7 +9,7 @@ "unregisterInWorldMenu" : "ct 12/17/2024 21:18" }, "instance" : { "addModelItemsToWindowMenu:" : "ct 12/19/2024 23:25", - "aspectDependencies" : "ct 12/17/2024 23:12", + "aspectDependencies" : "ct 12/22/2024 01:49", "authorFilterLabel" : "ct 12/10/2024 23:22", "basicHelpForMessage:" : "ct 12/21/2024 21:20", "browseSelectedTestNode" : "ct 12/21/2024 20:39", @@ -22,8 +22,6 @@ "buildWith:" : "ct 12/10/2024 23:20", "buttonBarHeight" : "ct 12/10/2024 23:09", "changeTarget" : "ct 12/17/2024 21:48", - "changed:" : "ct 2/8/2022 14:49", - "changedDependent:" : "ct 2/8/2022 14:49", "childrenForTestCategory:" : "ct 12/19/2024 21:06", "childrenForTestNode:" : "ct 12/21/2024 20:49", "childrenForTestNodePath:" : "ct 12/18/2024 04:42", @@ -38,7 +36,6 @@ "dateFilterLabel" : "ct 12/10/2024 23:22", "defaultShouldDisplayAllTests" : "ct 12/18/2024 03:07", "defaultWindowColor" : "ct 12/10/2024 23:28", - "dependentAspectsOn:" : "ct 2/8/2022 14:49", "displayedResults" : "ct 12/21/2024 20:49", "displayedTestCategories" : "ct 12/18/2024 02:27", "displayedTests" : "ct 12/21/2024 20:50",