如何在 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 package
和 New 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'.
在 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 package
和 New 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'.