=============== Summary ===============
Change Set: browseCorePackageOfExtensionMethod Date: 15 August 2023 Author: Christoph Thiede
Proposal: In browsers, adds item 'browse core package' to context menu of extension category (stubs). Hides irrelevant menu items when no category is selected. Adds interface on Categorizer and PackageOrganizer for finding case-insensitive names.
=============== Diff ===============
Browser>>browsePackageOfExtensionMethod {message category functions} · ct 8/15/2023 12:06 + browsePackageOfExtensionMethod + + | category sepIndex | + category := self selectedMessageCategoryName ifNil: [^ self changed: #flash]. + (category beginsWith: '*') ifFalse: [^ self changed: #flash]. + category := category allButFirst. + [(self systemOrganizer findCategoryName: category caseSensitive: false) ifNotNil: [:actualCategory | + ^ ToolSet browseCategory: actualCategory]. + (self environment packageOrganizer findPackageNamed: category caseSensitive: false) ifNotNil: [:package | + ^ (SystemBrowser default includesBehavior: TreeBrowser) + ifTrue: [ToolSet browseCategory: package name] + ifFalse: [ToolSet browsePackage: package]]. + sepIndex := category lastIndexOf: $- ifAbsent: [^ self changed: #flash]. + category := category first: sepIndex - 1] repeat. + + "examples: + '*JSON' -> package JSON + '*system-support' -> syscat System-Support + '*Morphic-Events-Filtering' -> syscat Morphic-Events"
Browser>>mainMessageCategoryMenu: {message category functions} · ct 8/15/2023 11:48 (changed) mainMessageCategoryMenu: aMenu <messageCategoryMenu> - ^ aMenu addList: #( + self selectedMessageCategoryName ifNotNil: [:cat | + aMenu addTranslatedList: #( ('browse' buildMessageCategoryBrowser) ('browse all' browseAllMethodsInCategory) - ('browse all related' browseAllMethodsInCategoryToken) + ('browse all related' browseAllMethodsInCategoryToken)). + (cat beginsWith: '*') ifTrue: [ + aMenu addTranslatedList: #( + ('browse core package' browsePackageOfExtensionMethod))]]. + aMenu addTranslatedList: #( - ('print out' printOutMessageCategories) ('file out' fileOutMessageCategories) - ('reorganize' editMessageCategories) ('alphabetize' alphabetizeMessageCategories) ('remove empty categories' removeEmptyCategories) ('categorize all uncategorized' categorizeAllUncategorizedMethods) - ('new category...' addCategory) + ('new category...' addCategory)). + self selectedMessageCategoryName ifNotNil: [ + aMenu addTranslatedList: #( - ('rename...' renameCategory) - ('remove (x)' removeMessageCategory)); - yourself + ('remove (x)' removeMessageCategory))]. + ^ aMenu
Categorizer>>findCategoryName:caseSensitive: {accessing} · ct 8/15/2023 11:44 + findCategoryName: categoryName caseSensitive: caseSensitive + + ^ categoryArray + detect: [:category | + (categoryName compare: category caseSensitive: caseSensitive) = 2] + ifNone: [nil]
PackageOrganizer>>findPackageName:caseSensitive: {searching} · ct 8/15/2023 11:44 + findPackageName: aString caseSensitive: caseSensitive + ^ packages keys + detect: [:name | + (name compare: aString caseSensitive: caseSensitive) = 2] + ifNone: [nil]
PackageOrganizer>>findPackageNamed:caseSensitive: {searching} · ct 8/15/2023 11:46 + findPackageNamed: aString caseSensitive: caseSensitive + | name | + name := self findPackageName: aString caseSensitive: caseSensitive. + ^ self packageNamed: name ifAbsent: [nil]
PackageOrganizer>>hasPackageNamed: {searching} · ct 8/15/2023 11:33 + hasPackageNamed: aString + ^ packages includesKey: aString
PackageOrganizer>>hasPackageNamed:caseSensitive: {searching} · ct 8/15/2023 11:35 + hasPackageNamed: aString caseSensitive: caseSensitive + caseSensitive ifTrue: [^ self hasPackageNamed: aString]. + ^ packages keys anySatisfy: [:name | aString sameAs: name]
--- Sent from Squeak Inbox Talk ["browseCorePackageOfExtensionMethod.1.cs"]
+1
Am 15.08.2023 12:09:07 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de:
=============== Summary ===============
Change Set: browseCorePackageOfExtensionMethod Date: 15 August 2023 Author: Christoph Thiede
Proposal: In browsers, adds item 'browse core package' to context menu of extension category (stubs). Hides irrelevant menu items when no category is selected. Adds interface on Categorizer and PackageOrganizer for finding case-insensitive names.
=============== Diff ===============
Browser>>browsePackageOfExtensionMethod {message category functions} · ct 8/15/2023 12:06 + browsePackageOfExtensionMethod + + | category sepIndex | + category := self selectedMessageCategoryName ifNil: [^ self changed: #flash]. + (category beginsWith: '*') ifFalse: [^ self changed: #flash]. + category := category allButFirst. + [(self systemOrganizer findCategoryName: category caseSensitive: false) ifNotNil: [:actualCategory | + ^ ToolSet browseCategory: actualCategory]. + (self environment packageOrganizer findPackageNamed: category caseSensitive: false) ifNotNil: [:package | + ^ (SystemBrowser default includesBehavior: TreeBrowser) + ifTrue: [ToolSet browseCategory: package name] + ifFalse: [ToolSet browsePackage: package]]. + sepIndex := category lastIndexOf: $- ifAbsent: [^ self changed: #flash]. + category := category first: sepIndex - 1] repeat. + + "examples: + '*JSON' -> package JSON + '*system-support' -> syscat System-Support + '*Morphic-Events-Filtering' -> syscat Morphic-Events"
Browser>>mainMessageCategoryMenu: {message category functions} · ct 8/15/2023 11:48 (changed) mainMessageCategoryMenu: aMenu <messageCategoryMenu> - ^ aMenu addList: #( + self selectedMessageCategoryName ifNotNil: [:cat | + aMenu addTranslatedList: #( ('browse' buildMessageCategoryBrowser) ('browse all' browseAllMethodsInCategory) - ('browse all related' browseAllMethodsInCategoryToken) + ('browse all related' browseAllMethodsInCategoryToken)). + (cat beginsWith: '*') ifTrue: [ + aMenu addTranslatedList: #( + ('browse core package' browsePackageOfExtensionMethod))]]. + aMenu addTranslatedList: #( - ('print out' printOutMessageCategories) ('file out' fileOutMessageCategories) - ('reorganize' editMessageCategories) ('alphabetize' alphabetizeMessageCategories) ('remove empty categories' removeEmptyCategories) ('categorize all uncategorized' categorizeAllUncategorizedMethods) - ('new category...' addCategory) + ('new category...' addCategory)). + self selectedMessageCategoryName ifNotNil: [ + aMenu addTranslatedList: #( - ('rename...' renameCategory) - ('remove (x)' removeMessageCategory)); - yourself + ('remove (x)' removeMessageCategory))]. + ^ aMenu
Categorizer>>findCategoryName:caseSensitive: {accessing} · ct 8/15/2023 11:44 + findCategoryName: categoryName caseSensitive: caseSensitive + + ^ categoryArray + detect: [:category | + (categoryName compare: category caseSensitive: caseSensitive) = 2] + ifNone: [nil]
PackageOrganizer>>findPackageName:caseSensitive: {searching} · ct 8/15/2023 11:44 + findPackageName: aString caseSensitive: caseSensitive + ^ packages keys + detect: [:name | + (name compare: aString caseSensitive: caseSensitive) = 2] + ifNone: [nil]
PackageOrganizer>>findPackageNamed:caseSensitive: {searching} · ct 8/15/2023 11:46 + findPackageNamed: aString caseSensitive: caseSensitive + | name | + name := self findPackageName: aString caseSensitive: caseSensitive. + ^ self packageNamed: name ifAbsent: [nil]
PackageOrganizer>>hasPackageNamed: {searching} · ct 8/15/2023 11:33 + hasPackageNamed: aString + ^ packages includesKey: aString
PackageOrganizer>>hasPackageNamed:caseSensitive: {searching} · ct 8/15/2023 11:35 + hasPackageNamed: aString caseSensitive: caseSensitive + caseSensitive ifTrue: [^ self hasPackageNamed: aString]. + ^ packages keys anySatisfy: [:name | aString sameAs: name]
--- Sent from Squeak Inbox Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk ["browseCorePackageOfExtensionMethod.1.cs"]
squeak-dev@lists.squeakfoundation.org