如何卸载 Pharo Glamorous Toolkit?

How to uninstall Pharo Glamorous Toolkit?

我想卸载 Pharo 4 或 5 中的 Glamorous Toolkit(对我来说似乎是经典 Smalltalk 工具的重载版本)。

这是我的代码:

| config configName |
configName := #ConfigurationOfGTInspectorCore.
config := (MBConfigurationInfo 
            configurationClass: (Smalltalk globals at: (configName asSymbol)))
            configurationRoot: MBConfigurationRoot new;
            yourself.
config workingCopy unload

但我的脚本会卸载配置,但不会卸载包或它包含的 类 和方法,我想卸载配置中的所有 GT 包。

我做错了什么?任何帮助将不胜感激!

提前致谢。

如果你想使用旧版本,你所要做的就是进入设置并停用它们(进入菜单中的设置:world menu/system/settings),然后寻找 "Glamorous Toolkit" .

卸载包要复杂得多:您需要以正确的顺序迭代每个包并卸载它。

现在,请注意 GT 工具是 官方 工具(对您而言过载,对我们来说功能强大)...很可能 Pharo 的未来版本将不包含旧工具。

我建议您尝试一下...您很快就会看到好处。

我也更喜欢 GT 是可选的,事实上 Pharo 董事会将在即将到来的 Pharos 中默认强加 GT,这让我想到了透明度过程,以及如果这些政策继续下去,Pharo 分叉会有多远。

也就是说,GT工具不能轻易卸载(而且需要很多时间):

Workspace openContents: 'GTPlayground setGTPlaygroundEnabledStatus: false.
" ========== Debuggers ========== "

Nautilus pluginClasses: nil.
SpecDebugger closeAllDebuggers.
GTGenericStackDebugger closeAllDebuggers.
GTGenericStackDebugger setGTDebuggerEnabledStatus: false.

" ========== Miscellany ========== "

GTInspector setGTInspectorEnabledStatus: false.
GTExampleOrganizer stop.
GTEventRecorder cleanUp.
GTEventRecorderSettings cleanUp.
GTSnippets reset.
GTPlayBook reset.
GTPlayBook resetDirectories.
GTSpotter cleanUp.
GTSpotterGlobalShortcut reset.

GlobalIdentifier cleanUp.
Privacy cleanUp.

" ========== QA ========== "
QASettings inspectorPluggin: false.
QASettings spotterPlugin: false.
QAEventCollector unload.
(MCPackage named: ''QualityAssistant'') unload.

" ========== RPackage ========== "
RPackageOrganizer default packageNames
    select: [ :each | each beginsWith: ''GT'' ]
    thenDo: [ :each |
        (MCPackage named: each) unload.
        RPackageOrganizer default unregisterPackageNamed: each.
        " Possibly unnecessary... "
        Smalltalk removeEmptyMessageCategories.
        Smalltalk cleanOutUndeclared.
        Smalltalk fixObsoleteReferences.
        Smalltalk globals flushClassNameCache ].  
Behavior flushEvents.
Behavior flushObsoleteSubclasses.
SmalltalkImage current resetTools.'