如何在 Pharo 9 中创建包含子组的包

How to make a Package with subgroups in Pharo 9

在 Pharo 9 中,我如何创建一个具有子包层次结构的包,就像在“Announcements-Core”中有展开和折叠箭头的那样?

我认为它可能基于包的名称,但是当我尝试使用以下消息创建两个 类 时,它们只是显示为单独的包。我想要的是有一个包含子包“type1”和“type2”的包“T-base”?

Object subclass: #T1 instanceVariableNames: '' classVariableNames: '' package: 'T-base-type1'
Object subclass: #T2 instanceVariableNames: '' classVariableNames: '' package: 'T-base-type2'

要在其中创建一个新包和一个(所谓的)标签,请使用 right-click 菜单项 New packageNew tag。包是 RPackage 的实例和 ClyTaggedClassGroup.

的标签

要添加到 Leandro 的答案中,要在 smalltalk 代码中执行此操作,您可以这样做:

t1 := Object subclass: #T1 
             instanceVariableNames: '' 
             classVariableNames: '' 
             package: 'T-base-type1'.

t2 := Object subclass: #T2 
             instanceVariableNames: '' 
             classVariableNames: '' 
             package: 'T-base-type2'.

t1 class package addClassDefinition: t1 toClassTag: #type1.
t2 class package addClassDefinition: t2 toClassTag: #type2.

t1 class package 为您提供 RPackage 实例,然后您可以将 class 添加到标签中。我还发现你需要让包名的最后部分(例如type1)与标签名相同,否则会出现class is "uncategorized"的错误。

还有另一种方法:您可以创建 class 包名称的最后一部分,然后将 category: 消息发送到 class 以添加它

t1 := Object subclass: #T1 
             instanceVariableNames: '' 
             classVariableNames: '' 
             package: 'T-base'.

t1 category: 'T-base-type1'.