--- a/.hgtags Mon Jul 15 13:16:46 2013 +0100
+++ b/.hgtags Tue Jul 16 17:18:09 2013 +0100
@@ -1,6 +1,7 @@
010ac94518b347db8dcc0f986d7e0f31cb6369b7 expeccoNET_1_5_0rc1
010ac94518b347db8dcc0f986d7e0f31cb6369b7 expecco_1_8_2rc1
0345171682c483a27083e267891c5c409672b786 expecco_1_0_3
+0a9b919319a9d418bd1fd8700ec1aa12f3d81b9e stable
0b1ad2518a5cd2c8273fb463e370af9d6abfbd97 expecco_2_1_0
0b715d777c488bf60cadb45e1336e6191b713369 rel2_10_8_6_last2
0b7d7aedc1cd27c9468db2e11b39e2d211556973 rel3_6_1
@@ -24,7 +25,6 @@
62451ecb3d3bbf1f6067c931eda2cdb57aa67ead expeccoNET_1_7_0_0
6ae442626f2090b5275b777f1a9d09ef0e092628 rel3_4_1_2
6ea7ea821b44f30ae3737d4703af910788f4c854 rel3-1-2
-802c2877a68ed2c680b8c4458899b609663f2481 stable
8046120212f6e56f5142e2881d4d7a425527eae1 expecco_1_7_0b1
8046120212f6e56f5142e2881d4d7a425527eae1 expecco_1_7_0b2
8046120212f6e56f5142e2881d4d7a425527eae1 expecco_1_7_0b3
--- a/AbstractLauncherApplication.st Mon Jul 15 13:16:46 2013 +0100
+++ b/AbstractLauncherApplication.st Tue Jul 16 17:18:09 2013 +0100
@@ -720,10 +720,11 @@
].
self withWaitCursorDo:[
#(
- 'stx:clients/Demos'
- 'stx:goodies/demos'
+ 'stx:clients'
+ 'stx:goodies'
+ 'stx:libwidg3'
) do:[:pkg |
- Smalltalk installAutoloadedClassesFrom:(Smalltalk projectDirectoryForPackage:pkg).
+ Smalltalk recursiveInstallAutoloadedClassesFrom:(Smalltalk projectDirectoryForPackage:pkg).
].
].
cls := Smalltalk at:classOrClassName asSymbol.
@@ -1286,8 +1287,17 @@
"open a browser showing all breakPointed/traced methods
(but, to get rid of them, there is also a menu itme to remove them all)"
+ |filter|
+
+ "/ only methods which are still anchored in the class are relevant here
+ "/ (i.e. allInstances may return too many)
+ filter := [:m | m mclass notNil].
+
UserPreferences systemBrowserClass
- browseMethods:(WrappedMethod allInstances)
+ browseMethods:(Set new
+ addAll:(WrappedMethod allInstances select:filter);
+ addAll:(MethodWithBreakpoints allInstances select:filter);
+ yourself)
title:'All breakPointed/traced methods'
!
@@ -1491,7 +1501,10 @@
self
withCursor:Cursor execute
- do:[ MessageTracer cleanup]
+ do:[
+ MessageTracer cleanup.
+ MethodWithBreakpoints allInstancesDo:[:m | m restoreOriginalMethod]
+ ]
!
startClassBrowser
@@ -2440,7 +2453,8 @@
!AbstractLauncherApplication::LauncherDialogs class methodsFor:'dialogs'!
communicationsSettings
- "open a dialog on communications settings"
+ "open a dialog on communications settings.
+ Obsoleted by the settings application"
|box check in resources y acceptChannel
hasRDoitServer rDoitServerPort
@@ -3038,7 +3052,8 @@
!
compilerSettings
- "open a dialog on compiler related settings"
+ "open a dialog on compiler related settings.
+ Obsoleted by the settings application"
|box warnings warnSTX warnUnderscore warnDollar warnOldStyle warnUnusedVars
allowDollar allowUnderscore allowSqueakExtensions allowQualifiedNames
@@ -3342,7 +3357,8 @@
!
displaySettings
- "open a dialog on display related settings"
+ "open a dialog on display related settings.
+ Obsoleted by the settings application."
|box listOfSizes sizeInfos
sizes sizeNames sizeList sizeX sizeY deepIcons
@@ -3622,7 +3638,8 @@
!
javaSettings
- "open a dialog on settings related to the java subsystem"
+ "open a dialog on settings related to the java subsystem.
+ Obsoleted by the settings application."
|box audio javaHome classPath oldJavaHome oldClassPath resources component
extraFileSecurityChecks extraSocketSecurityChecks
@@ -3761,7 +3778,8 @@
!
keyboardSettings
- "open a dialog on keyboard related settings"
+ "open a dialog on keyboard related settings.
+ Obsoleted by the settings application"
|mappings listOfRawKeys listOfFunctions
box l
@@ -3903,7 +3921,8 @@
!
languageSettingsFor:requestor
- "open a dialog on language related settings"
+ "open a dialog on language related settings.
+ Obsoleted by the settings application"
|listOfLanguages translatedLanguages switch box languageList flags resources|
@@ -4040,7 +4059,8 @@
!
memorySettings
- "open a dialog on objectMemory related settings"
+ "open a dialog on objectMemory related settings.
+ Obsoleted by the settings application"
|box igcLimit igcFreeLimit igcFreeAmount newSpaceSize
compressLimit
@@ -4169,7 +4189,8 @@
!
messageSettings
- "open a dialog on infoMessage related settings"
+ "open a dialog on infoMessage related settings.
+ Obsoleted by the settings application"
|box vmInfo vmErrors displayErrors classInfos resources|
@@ -4207,7 +4228,8 @@
!
miscSettings
- "open a dialog on misc other settings"
+ "open a dialog on misc other settings.
+ Obsoleted by the settings application"
|box pos pos2 check butt shadows takeFocus focusFollowsMouse returnFocus
hostNameInLabel showAccelerators
@@ -4348,7 +4370,8 @@
!
printerSettings
- "open a dialog on printer related settings; returns true if accepted"
+ "open a dialog on printer related settings; returns true if accepted.
+ Obsoleted by the settings application"
|box accepted
possiblePrinters possibleTypes printerType printCommand printFile
@@ -4647,7 +4670,8 @@
!
sourceAndDebuggerSettings
- "open a dialog on source&debugger other settings"
+ "open a dialog on source&debugger other settings.
+ Obsoleted by the settings application"
|box check butt setupButt logDoits updChanges changeFileName
useManager hasManager cvsIsSetup
@@ -5111,7 +5135,8 @@
!
toolSettings
- "open a dialog on tool settings"
+ "open a dialog on tool settings.
+ Obsoleted by the settings application"
|box resources currentUserPrefs in acceptChannel
useNewInspector useNewChangesBrowser useNewSystemBrowser useNewVersionDiffBrowser
@@ -5255,7 +5280,8 @@
!
viewStyleSettingsFor:requestor
- "open a dialog on viewStyle related settings"
+ "open a dialog on viewStyle related settings.
+ Obsoleted by the settings application"
|resourceDir dir box
list listView scrView infoLabel infoForwarder newStyle
@@ -7029,11 +7055,11 @@
!AbstractLauncherApplication class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.434 2013-07-05 13:34:09 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.438 2013-07-09 20:48:17 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.434 2013-07-05 13:34:09 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.438 2013-07-09 20:48:17 cg Exp $'
!
version_HG
@@ -7042,6 +7068,6 @@
!
version_SVN
- ^ '$Id: AbstractLauncherApplication.st,v 1.434 2013-07-05 13:34:09 stefan Exp $'
+ ^ '$Id: AbstractLauncherApplication.st,v 1.438 2013-07-09 20:48:17 cg Exp $'
! !
--- a/AbstractSettingsApplication.st Mon Jul 15 13:16:46 2013 +0100
+++ b/AbstractSettingsApplication.st Tue Jul 16 17:18:09 2013 +0100
@@ -1050,7 +1050,7 @@
^ #(
#arraysAreImmutable
-'Array literals are readonly objects, which cannot be modified.
+'Array and ByteArray literals are readonly objects, which cannot be modified.
Prevents constant arrays as returned from a method to be modified elsewhere by accident'
#fullDebugInfo
@@ -1133,101 +1133,7 @@
)
!
-helpSpec
- "This resource specification was automatically generated
- by the UIHelpTool of ST/X."
-
- "Do not manually edit this!! If it is corrupted,
- the UIHelpTool may not be able to read the specification."
-
- "
- UIHelpTool openOnClass:AbstractSettingsApplication::ByteCodeCompilerSettingsAppl
- "
-
- <resource: #help>
-
- ^ super helpSpec addPairsFrom:#(
-
-#allowAssignmentToPoolVariable
-''
-
-#allowDollarInIdentifier
-''
-
-#allowDolphinExtensions
-''
-
-#allowEmptyStatements
-''
-
-#allowExtendedBinarySelectors
-''
-
-#allowFixedPointLiterals
-''
-
-#allowOldStyleAssignment
-''
-
-#allowQualifiedNames
-''
-
-#allowReservedWordsAsSelectors
-''
-
-#allowSqueakExtensions
-''
-
-#allowUnderscoreInIdentifier
-''
-
-#allowVisualAgeESSymbolLiterals
-''
-
-#allowVisualAgePrimitives
-''
-
-#arraysAreImmutable
-''
-
-#fullDebugInfo
-''
-
-#stringsAreImmutable
-''
-
-#warnAboutPossibleSTCCompilationProblems
-''
-
-#warnAboutPossiblyUnimplementedSelectors
-''
-
-#warnAboutReferenceToPrivateClass
-''
-
-#warnDollarInIdentifier
-''
-
-#warnOldStyleAssignment
-''
-
-#warnPlausibilityChecks
-''
-
-#warnPossibleIncompatibilities
-''
-
-#warnSTXSpecials
-''
-
-#warnUnderscoreInIdentifier
-''
-
-#warnings
-''
-
-)
-! !
+ !
!AbstractSettingsApplication::ByteCodeCompilerSettingsAppl class methodsFor:'image specs'!
@@ -3795,7 +3701,7 @@
'Press CTRL to drag the selected text into another view'
#tabStops4
-'Controls if tab stops are multiples of 4 or 8 while editing.\Notice that this only affects the cursor positioning while editing, and that tabs are never part of the text internally.\The external (file-) representation always uses tab stops in multiples of 8.\Thus, when saving, one leading tab is generated for every 8 leading spaces,\and when reading a file, each tab is replaced by 8 spaces'
+'Controls if tab stops are multiples of 4 or 8 while editing.\Notice that this only affects the cursor positioning while editing, and that tabs are never part of the text internally.\The external (file-) representation always uses tab stops in multiples of 8.\Thus, when saving, one leading tab is generated for every 8 leading spaces,\and when reading a file, each tab is replaced by 8 spaces.\For ST/X, using multiple of 4 is recommended (the whole system was written in this style)'
#useNewCodeView2
'Use the new advanced CodeView2, which supports line numbers, advanced variable and selector highlighting,\and other useful programmer features'
@@ -5468,15 +5374,14 @@
Class catchClassRedefinitions:self catchClassRedefs value.
Class catchMethodRedefinitions:self catchMethodRedefs value.
HistoryManager notNil ifTrue:[
- HistoryManager fullHistoryUpdate:self fullHistoryUpdate value.
- self historyLines value ifTrue:[
- HistoryManager activate
- ] ifFalse:[
- HistoryManager deactivate
- ].
- nm := (self userNameInHistoryHolder value ? '') withoutSeparators.
- nm isEmpty ifTrue:[ nm := nil ].
- UserPreferences current historyManagerSignature:nm.
+ HistoryManager fullHistoryUpdate:self fullHistoryUpdate value.
+ self historyLines value ifTrue:[
+ HistoryManager activate
+ ] ifFalse:[
+ HistoryManager deactivate
+ ].
+ nm := (self userNameInHistoryHolder value ? '') withoutSeparators asNilIfEmpty.
+ UserPreferences current historyManagerSignature:nm.
].
Smalltalk loadBinaries:self loadBinaries value.
@@ -18803,11 +18708,11 @@
!AbstractSettingsApplication class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.478 2013-06-27 11:42:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.481 2013-07-13 20:40:13 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.478 2013-06-27 11:42:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractSettingsApplication.st,v 1.481 2013-07-13 20:40:13 cg Exp $'
!
version_HG
--- a/BrowserView.st Mon Jul 15 13:16:46 2013 +0100
+++ b/BrowserView.st Tue Jul 16 17:18:09 2013 +0100
@@ -7298,14 +7298,14 @@
"/ OLD code
"/
"/ (s endsWith:' !!') ifTrue:[
-"/ s := s copyWithoutLast:2
+"/ s := s copyButLast:2
"/ ].
"/ (s endsWith:')') ifTrue:[
"/ s := aString copyTo:(aString lastIndexOf:$()-1.
"/ s := s withoutSpaces.
"/ ].
"/ (s endsWith:' !!') ifTrue:[
-"/ s := s copyWithoutLast:2
+"/ s := s copyButLast:2
"/ ].
"/ pos := s lastIndexOf:(Character space).
"/ ^ s copyTo:(pos - 1)
@@ -10850,7 +10850,7 @@
nm := aClass name.
"/ showInstance ifFalse:[
"/ ((nm ~= 'Metaclass') and:[nm endsWith:' class']) ifTrue:[
-"/ nm := nm copyWithoutLast:6 "copyTo:(nm size - 5)"
+"/ nm := nm copyButLast:6 "copyTo:(nm size - 5)"
"/ ]
"/ ].
aClass ~~ actualClass ifTrue:[
--- a/ChangesBrowser.st Mon Jul 15 13:16:46 2013 +0100
+++ b/ChangesBrowser.st Tue Jul 16 17:18:09 2013 +0100
@@ -3977,7 +3977,7 @@
"/ (Smalltalk at:ns asSymbol) notNil ifTrue:[
"/ cls
"/ ].
-"/ ^ name copyWithoutLast:6
+"/ ^ name copyButLast:6
"/ ].
^ name
--- a/DebugView.st Mon Jul 15 13:16:46 2013 +0100
+++ b/DebugView.st Tue Jul 16 17:18:09 2013 +0100
@@ -369,10 +369,7 @@
].
].
- IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not ].
- IgnoredHalts isEmpty ifTrue:[
- IgnoredHalts := nil.
- ].
+ IgnoredHalts := (IgnoredHalts reject:[:ign | ign isActive not ]) asNilIfEmpty.
^ false.
@@ -399,10 +396,7 @@
].
].
- IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not].
- IgnoredHalts isEmpty ifTrue:[
- IgnoredHalts := nil.
- ].
+ IgnoredHalts := (IgnoredHalts reject:[:ign | ign isActive not]) asNilIfEmpty.
^ false.
@@ -8579,11 +8573,11 @@
!DebugView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.599 2013-07-04 19:32:49 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.599 2013-07-04 19:32:49 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
!
version_HG
@@ -8592,7 +8586,7 @@
!
version_SVN
- ^ '$Id: DebugView.st,v 1.599 2013-07-04 19:32:49 cg Exp $'
+ ^ '$Id: DebugView.st,v 1.600 2013-07-13 20:39:12 cg Exp $'
! !
--- a/DirectoryTreeBrowser.st Mon Jul 15 13:16:46 2013 +0100
+++ b/DirectoryTreeBrowser.st Tue Jul 16 17:18:09 2013 +0100
@@ -66,11 +66,8 @@
"
! !
-
!DirectoryTreeBrowser class methodsFor:'instance creation'!
-
-
openOn:aFileName
| file |
@@ -102,7 +99,6 @@
"
! !
-
!DirectoryTreeBrowser class methodsFor:'defaults'!
timeForExpandOnDropInMilliseconds
@@ -110,7 +106,6 @@
^ 1500
! !
-
!DirectoryTreeBrowser class methodsFor:'interface specs'!
windowSpec
@@ -179,7 +174,6 @@
)
! !
-
!DirectoryTreeBrowser class methodsFor:'menu specs'!
menu
@@ -400,7 +394,6 @@
)
! !
-
!DirectoryTreeBrowser class methodsFor:'plugIn spec'!
aspectSelectors
@@ -415,7 +408,7 @@
(if this app is embedded in a subCanvas)."
^ #(
- selectedDirectoryModel
+ treeSelectionHolder
rootHolder
filterModel
showFiles
@@ -423,7 +416,6 @@
).
! !
-
!DirectoryTreeBrowser methodsFor:'accessing'!
allowRenameOnOneClick
@@ -456,7 +448,6 @@
^ updateTreeSelection
! !
-
!DirectoryTreeBrowser methodsFor:'actions'!
doDoubleClick:anIndex
@@ -712,7 +703,6 @@
]
! !
-
!DirectoryTreeBrowser methodsFor:'aspects'!
allowFileOperations
@@ -804,9 +794,14 @@
treeSelectionHolder addDependent:self.
].
^ treeSelectionHolder
+!
+
+treeSelectionHolder:aValueHolder
+ treeSelectionHolder removeDependent:self.
+ treeSelectionHolder := aValueHolder.
+ treeSelectionHolder addDependent:self.
! !
-
!DirectoryTreeBrowser methodsFor:'change & update'!
changeMatchBlock
@@ -925,7 +920,6 @@
^ self
! !
-
!DirectoryTreeBrowser methodsFor:'drag & drop'!
dropDestinationPath
@@ -1052,7 +1046,6 @@
afterMilliseconds:(self class timeForExpandOnDropInMilliseconds).
! !
-
!DirectoryTreeBrowser methodsFor:'event handling'!
processEvent:anEvent
@@ -1114,7 +1107,6 @@
^ false
! !
-
!DirectoryTreeBrowser methodsFor:'queries'!
hasOpenEditor
@@ -1144,7 +1136,6 @@
"/ ^ false
! !
-
!DirectoryTreeBrowser methodsFor:'selection'!
firstSelectedDirectory
@@ -1268,7 +1259,6 @@
^ Array with:selection. "Wrap single value into Array"
! !
-
!DirectoryTreeBrowser methodsFor:'startup & release'!
makeDependent
@@ -1371,7 +1361,6 @@
^ super release.
! !
-
!DirectoryTreeBrowser::DirTreeBrowserHFL methodsFor:'accessing'!
draggedItem
@@ -1384,7 +1373,6 @@
draggedItem := anItemOrNil.
! !
-
!DirectoryTreeBrowser::DirTreeBrowserHFL methodsFor:'protocol'!
grayDirectoryIcon
@@ -1405,15 +1393,14 @@
^ super iconFor:anItem.
! !
-
!DirectoryTreeBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.123 2013-03-24 11:40:12 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.124 2013-07-10 10:14:03 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.123 2013-03-24 11:40:12 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.124 2013-07-10 10:14:03 cg Exp $'
!
version_HG
--- a/NewChangesBrowser.st Mon Jul 15 13:16:46 2013 +0100
+++ b/NewChangesBrowser.st Tue Jul 16 17:18:09 2013 +0100
@@ -2167,7 +2167,7 @@
name := self fullClassNameOfChange:aChange.
name isNil ifTrue:[^ nil].
(name endsWith:' class') ifTrue:[
- ^ name copyWithoutLast:6
+ ^ name copyButLast:6
].
^ name
!
@@ -2851,15 +2851,15 @@
].
(chunkText endsWith:'primitiveDefinitions:''') ifTrue:[
sel := 'primitiveDefinitions:'.
- chunkText := chunkText copyWithoutLast:1
+ chunkText := chunkText copyButLast:1
].
(chunkText endsWith:'primitiveVariables:''') ifTrue:[
sel := 'primitiveVariables:'.
- chunkText := chunkText copyWithoutLast:1
+ chunkText := chunkText copyButLast:1
].
(chunkText endsWith:'primitiveFunctions:''') ifTrue:[
sel := 'primitiveFunctions:'.
- chunkText := chunkText copyWithoutLast:1
+ chunkText := chunkText copyButLast:1
].
].
@@ -3410,7 +3410,7 @@
className notNil ifTrue:[
isMeta := false.
(className endsWith:' class') ifTrue:[
- className := className copyWithoutLast:6.
+ className := className copyButLast:6.
isMeta := true.
].
(cls := Smalltalk classNamed:className) notNil ifTrue:[
--- a/NewLauncher.st Mon Jul 15 13:16:46 2013 +0100
+++ b/NewLauncher.st Tue Jul 16 17:18:09 2013 +0100
@@ -3094,12 +3094,6 @@
isVisible: windowTreeViewAvailable
)
(MenuItem
- activeHelpKey: windowsViewTree
- label: 'Window Tree'
- itemValue: openWindowTreeInspector
- labelImage: (ResourceRetriever ToolbarIconLibrary viewInspect22x22Icon 'Window Tree')
- )
- (MenuItem
activeHelpKey: flyByWindowInformation
label: 'FlyBy Window Information'
itemValue: showFlyByWindowInformation
@@ -3109,6 +3103,12 @@
label: '-'
)
(MenuItem
+ activeHelpKey: windowsViewTree
+ label: 'Select and Inspect Hierarchy...'
+ itemValue: openWindowTreeInspector
+ labelImage: (ResourceRetriever ToolbarIconLibrary viewInspect22x22Icon 'Select and Inspect Hierarchy...')
+ )
+ (MenuItem
activeHelpKey: windowsSelectAndInspect
label: 'Select and Inspect...'
itemValue: viewInspect
@@ -5012,11 +5012,11 @@
!NewLauncher class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.468 2013-07-06 17:05:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.469 2013-07-09 09:42:21 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.468 2013-07-06 17:05:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.469 2013-07-09 09:42:21 cg Exp $'
!
version_HG
@@ -5025,6 +5025,6 @@
!
version_SVN
- ^ '$Id: NewLauncher.st,v 1.468 2013-07-06 17:05:52 cg Exp $'
+ ^ '$Id: NewLauncher.st,v 1.469 2013-07-09 09:42:21 cg Exp $'
! !
--- a/PerforceSourceCodeManagerUtilities.st Mon Jul 15 13:16:46 2013 +0100
+++ b/PerforceSourceCodeManagerUtilities.st Tue Jul 16 17:18:09 2013 +0100
@@ -538,7 +538,7 @@
fileName := rslt at:#fileName.
].
(fileName endsWith:',v') ifTrue:[
- fileName := fileName copyWithoutLast:2
+ fileName := fileName copyButLast:2
].
(fileName endsWith:'.st') ifFalse:[
fileName := fileName , '.st'
--- a/TerminalApplication.st Mon Jul 15 13:16:46 2013 +0100
+++ b/TerminalApplication.st Tue Jul 16 17:18:09 2013 +0100
@@ -469,6 +469,7 @@
vt startShellIn:initialDirectory.
vt shellTerminateAction:[self shellFinishedInWorkspace:vt].
+ vt masterWindow:(self window). "/ to change window title
"Modified: / 07-04-2011 / 09:03:55 / cg"
"Modified: / 03-04-2012 / 10:31:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -477,7 +478,7 @@
!TerminalApplication class methodsFor:'documentation'!
version_CVS
- ^ '§Header: /cvs/stx/stx/libtool/TerminalApplication.st,v 1.11 2011/11/30 10:06:32 vrany Exp §'
+ ^ '$Header: /cvs/stx/stx/libtool/TerminalApplication.st,v 1.12 2013-07-09 09:31:10 cg Exp $'
!
version_HG
--- a/Tools_ClassCategoryList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools_ClassCategoryList.st Tue Jul 16 17:18:09 2013 +0100
@@ -897,7 +897,7 @@
"/ |s|
"/ s := each string.
"/ (s endsWith:stringForExtensions) ifTrue:[
-"/ s := s copyWithoutLast:(stringForExtensions size).
+"/ s := s copyButLast:(stringForExtensions size).
"/ ].
"/ s
"/ ].
--- a/Tools__BreakpointService.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__BreakpointService.st Tue Jul 16 17:18:09 2013 +0100
@@ -147,18 +147,15 @@
buttonPress:button x:x y:y in:view
|lineNr|
- codeView methodHolder value isNil ifTrue:[
- ^ false
- ].
view == gutterView ifTrue:[
- button == 1 ifTrue:[
- lineNr := textView yVisibleToLineNr:y.
- lineNr notNil ifTrue:[ self setOrToggleBreakpointAtLine:lineNr ].
- ^ true.
- ].
- button == 3 ifTrue:[
- ^ true.
- ]
+ button == 1 ifTrue:[
+ lineNr := textView yVisibleToLineNr:y.
+ lineNr notNil ifTrue:[ self setOrToggleBreakpointAtLine:lineNr ].
+ ^ true.
+ ].
+ button == 3 ifTrue:[
+ ^ true.
+ ]
].
^ false
@@ -349,10 +346,14 @@
"/ prepareFullBreakSupport := false.
prepareFullBreakSupport := true.
+ codeView methodHolder value isNil ifTrue:[
+ ^ self
+ ].
+
textView reallyModified ifTrue:[
"/ leads to ugly behavior (method no longer found), if we allow
"/ this...
- Dialog warn:'Please accept first (cannot set breakpoint while text is modified)'.
+ Dialog warn:'Please accept first (cannot set breakpoint while text is modified)'.
^ self
].
@@ -392,7 +393,7 @@
codeView topView class == DebugView ifTrue:[
Dialog warn:'Sorry, in an active method, I can only add new breakpoints in an already breakpointed method.
(i.e. a method stopped at a method breakpoint or one which already has statement breakpoints)
-The reason is that the method needs to be recompiled for the breakpoint, which would not affect the currently executed method.'.
+The reason is that the method needs to be recompiled for the breakpoint, which would not affect the method being currently executed.'.
"/ Dialog warn:'Sorry, can only add a new breakpoint in a wrapped method which has not yet started.'.
] ifFalse:[
Dialog warn:'Sorry, cannot add a new breakpoint here.'.
@@ -503,14 +504,14 @@
!BreakpointService class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.29 2013-07-06 11:44:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.31 2013-07-12 05:50:20 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.29 2013-07-06 11:44:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.31 2013-07-12 05:50:20 cg Exp $'
!
version_SVN
- ^ '$Id: Tools__BreakpointService.st,v 1.29 2013-07-06 11:44:52 cg Exp $'
+ ^ '$Id: Tools__BreakpointService.st,v 1.31 2013-07-12 05:50:20 cg Exp $'
! !
--- a/Tools__ClassCategoryList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__ClassCategoryList.st Tue Jul 16 17:18:09 2013 +0100
@@ -520,7 +520,7 @@
cat = self class nameListEntryForALL ifTrue:[^ nil].
(cat endsWith:(self stringForExtensions)) ifTrue:[
- cat := cat copyWithoutLast:(self stringForExtensions size)
+ cat := cat copyButLast:(self stringForExtensions size)
].
^ cat
!
@@ -897,7 +897,7 @@
"/ |s|
"/ s := each string.
"/ (s endsWith:stringForExtensions) ifTrue:[
-"/ s := s copyWithoutLast:(stringForExtensions size).
+"/ s := s copyButLast:(stringForExtensions size).
"/ ].
"/ s
"/ ].
--- a/Tools__CodeView2.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__CodeView2.st Tue Jul 16 17:18:09 2013 +0100
@@ -1413,7 +1413,11 @@
"Created: / 06-07-2011 / 17:12:58 / jv"
"Modified: / 06-10-2011 / 14:13:44 / cg"
-! !
+!
+
+
+
+ !
!CodeView2 methodsFor:'diff mode'!
@@ -1947,7 +1951,7 @@
originalSource := originalSource asStringCollection.
originalSource := originalSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
- originalSource := originalSource collect:[:line | line isEmpty ifTrue:[nil] ifFalse:[line]].
+ originalSource := originalSource collect:[:line | line asNilIfEmpty].
[originalSource size > 0 and:[originalSource last isNil]] whileTrue:[
originalSource := originalSource copyButLast:1
].
@@ -2815,6 +2819,20 @@
"Created: / 08-10-2011 / 12:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!CodeView2::TextView methodsFor:'bit blitting'!
+
+copyFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:async
+ "/ a vertical scroll operation ?
+ aDrawable == self ifTrue:[
+ ((srcY ~= dstY) and:[srcX = dstX]) ifTrue:[
+ gutterView
+ copyFrom:gutterView x:0 y:srcY toX:0 y:dstY width:(gutterView width) height:h async:false
+ ]
+ ].
+ ^ super
+ copyFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:async
+! !
+
!CodeView2::TextView methodsFor:'channels'!
reallyModifiedChannel
@@ -2962,6 +2980,8 @@
"Modified: / 17-03-2012 / 10:04:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
redrawLines
|i pom|
@@ -3633,6 +3653,8 @@
!CodeView2::TextView methodsFor:'scrolling'!
+
+
basicScrollTo:anOrigin redraw:doRedraw
super scrollTo:anOrigin redraw:doRedraw
@@ -3641,6 +3663,8 @@
"Created: / 19-03-2012 / 17:01:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+
+
originChanged:delta
super originChanged:delta.
@@ -3650,6 +3674,8 @@
"Created: / 07-12-2009 / 21:50:49 / Jindra <a>"
!
+
+
scrollTo:anOrigin redraw:doRedraw
codeView scrollTo:anOrigin redraw:doRedraw in: self.
@@ -3658,7 +3684,9 @@
"Modified: / 06-04-2010 / 14:04:28 / Jakub <zelenja7@fel.cvut.cz>"
"Modified: / 17-03-2012 / 10:06:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 19-03-2012 / 17:05:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
+!
+
+ !
!CodeView2::TextView methodsFor:'undo & again'!
@@ -3681,11 +3709,11 @@
!CodeView2 class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.103 2013-07-06 11:45:11 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.107 2013-07-13 21:06:11 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.103 2013-07-06 11:45:11 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.107 2013-07-13 21:06:11 cg Exp $'
!
version_HG
@@ -3694,7 +3722,7 @@
!
version_SVN
- ^ '$Id: Tools__CodeView2.st,v 1.103 2013-07-06 11:45:11 cg Exp $'
+ ^ '$Id: Tools__CodeView2.st,v 1.107 2013-07-13 21:06:11 cg Exp $'
! !
--- a/Tools__HierarchicalClassCategoryList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__HierarchicalClassCategoryList.st Tue Jul 16 17:18:09 2013 +0100
@@ -168,7 +168,7 @@
category size > 0 ifTrue:[
"/ find the parent ...
- parentPath := path copyWithoutLast:1.
+ parentPath := path copyButLast:1.
parentCategory := parentPath asStringWith:$-.
parentItem := self addCategory:parentCategory .
--- a/Tools__HierarchicalProjectList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__HierarchicalProjectList.st Tue Jul 16 17:18:09 2013 +0100
@@ -422,7 +422,7 @@
package size > 0 ifTrue:[
"/ find the parent ...
p := package asCollectionOfSubstringsSeparatedByAny:':/.'.
- pp := p copyWithoutLast:1.
+ pp := p copyButLast:1.
l := (pp asStringWith:$/) size.
parentPackage := package copyTo:l.
--- a/Tools__Inspector2.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__Inspector2.st Tue Jul 16 17:18:09 2013 +0100
@@ -1116,6 +1116,7 @@
"Created: / 15-07-2011 / 16:25:42 / cg"
! !
+
!Inspector2::NavigationState class methodsFor:'creating classes'!
for:anObject
@@ -1131,11 +1132,11 @@
!Inspector2::NavigationState class methodsFor:'documentation'!
version
- ^'$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^'$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
!
version_SVN
- ^'$Id: Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^'$Id: Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
! !
!Inspector2::NavigationState methodsFor:'accessing'!
@@ -1320,15 +1321,20 @@
theObject inspector2Tabs do: [:selector|
| tab |
tab := [ theObject perform: selector ]
- on: Error do:[:ex|
- "/ for debugging: ex reject.
+ on: Error
+ do:[:ex|
+ "/ for debugging:
+ "/ ex reject.
+ Transcript show:'error in inspector setup: ',ex description.
Tools::Inspector2Tab new
label: selector;
text:
(ex description, Character cr, Character cr,
- ex suspendedContext fullPrintAllString)].
+ ex suspendedContext fullPrintAllString)
+ ].
(tab notNil and:[tab isKindOf: Tools::Inspector2Tab])
- ifTrue:[tabs add: tab]].
+ ifTrue:[tabs add: tab]
+ ].
"Created: / 16-01-2008 / 17:25:24 / janfrog"
"Modified: / 17-02-2008 / 10:30:43 / janfrog"
@@ -1357,15 +1363,15 @@
!Inspector2 class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
!
version_CVS_jvrany
- ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
!
version_HG
@@ -1374,7 +1380,7 @@
!
version_SVN
- ^ '$Id: Tools__Inspector2.st,v 1.41 2013-07-08 09:50:36 cg Exp $'
+ ^ '$Id: Tools__Inspector2.st,v 1.42 2013-07-15 15:12:25 cg Exp $'
! !
--- a/Tools__MethodRewriter.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__MethodRewriter.st Tue Jul 16 17:18:09 2013 +0100
@@ -131,7 +131,7 @@
^Array
with:('Replace ','self halt'allBold,' by ','self error:''was: self halt''' allBold)
with: 'self halt'
- with: 'self error:''was: self error'''
+ with: 'self error:''was: self halt'''
"Created: / 12-12-2007 / 11:29:51 / janfrog"
"Modified: / 17-02-2008 / 08:35:09 / janfrog"
@@ -1079,7 +1079,7 @@
!MethodRewriter class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.16 2012-08-03 19:21:17 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.17 2013-07-13 20:22:27 cg Exp $'
!
version_HG
@@ -1088,6 +1088,6 @@
!
version_SVN
- ^ '§Id: Tools__MethodRewriter.st 7486 2009-10-26 22:06:24Z vranyj1 §'
+ ^ '$Id: Tools__MethodRewriter.st,v 1.17 2013-07-13 20:22:27 cg Exp $'
! !
--- a/Tools__NewSystemBrowser.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__NewSystemBrowser.st Tue Jul 16 17:18:09 2013 +0100
@@ -26,27 +26,26 @@
LastClassFilterBlockString LastMethodFilterBlockString
LastBreakPointConditionString LastIndividualChecks
LastAcceptPackage LastVariableRenames LastVisitorClassName
- LastTemporaryVariableName BookMarks FindHistory
+ LastTemporaryVariableName FindHistory
CheckForInstancesWhenRemovingClasses SynchronousUpdate
DoubleClickIsOpenBrowser ShowMethodTemplateWhenProtocolIsSelected
- DefaultShowMethodTemplate DefaultShowMethodInheritance
- DefaultEmphasizeUnloadedClasses DefaultImmediateSyntaxColoring
- DefaultImmediateExplaining DefaultSyntaxColoring
- DefaultToolBarVisible DefaultCodeInfoVisible
- DefaultShortNameInTabs DefaultHideUnloadedClasses
- DefaultMarkApplications DefaultAutoFormat
- DefaultShowMethodComplexity DefaultShowMethodTypeIcon
- DefaultShowSpecialResourceEditors SharedMethodCategoryCache
- LastMethodProcessingBlockString LastLoadedPackages
- DefaultShortAllClassesInNameSpaceOrganisation LastTag
+ DefaultShowMethodInheritance DefaultEmphasizeUnloadedClasses
+ DefaultImmediateSyntaxColoring DefaultImmediateExplaining
+ DefaultSyntaxColoring DefaultToolBarVisible
+ DefaultCodeInfoVisible DefaultShortNameInTabs
+ DefaultHideUnloadedClasses DefaultMarkApplications
+ DefaultAutoFormat DefaultShowMethodComplexity
+ DefaultShowMethodTypeIcon DefaultShowSpecialResourceEditors
+ SharedMethodCategoryCache LastMethodProcessingBlockString
+ LastLoadedPackages DefaultShortAllClassesInNameSpaceOrganisation
LastBaseVersionTag DefaultShowPseudoProtocols
DefaultShowMultitabMode LastRenamedOld LastRenamedNew
LastImportedPackage LastLintRules NewNavigationHistory
- DefaultSortByNameAndInheritance LastLiteralReplacementType
- LastLiteralReplacementNewName LastLiteralReplacementOldLiteral
- LastNewProjectType DefaultShowSyntheticMethods
+ LastLiteralReplacementType LastLiteralReplacementNewName
+ LastLiteralReplacementOldLiteral LastNewProjectType
LastClassProcessingBlockString RecentlyClosedList
- LastClassSearchBoxShowedFullName'
+ LastClassSearchBoxShowedFullName CachedTagToRevisionMapping
+ CachedMethodsImplemented DefaultShowSyntheticMethods'
poolDictionaries:''
category:'Interface-Browsers-New'
!
@@ -15456,6 +15455,11 @@
showBusyCursorWhilePerforming: true
)
(MenuItem
+ label: 'Package Dependencies...'
+ itemValue: projectPackageDependencyBrowser
+ isVisible: false
+ )
+ (MenuItem
enabled: hasProjectSelectedAndSourceCodeManagerHolder
label: 'Find Classes NOT tagged as "stable"'
itemValue: projectMenuFindNotStableClasses
@@ -17899,7 +17903,18 @@
initialFullNames := initialFullNames select:[:nm | filterOrNil value:(Smalltalk at:nm)].
].
- initialShortNames := initialFullNames collect:[:nm | genShortNameListEntry value:(Smalltalk at:nm)] thenSelect:[:nm | nm notNil].
+ initialFullNames := initialFullNames select:[:nm | nm notNil].
+ initialShortNames := initialFullNames collect:[:nm |
+ |cls|
+
+ cls := Smalltalk at:nm.
+ cls isNil ifTrue:[
+ "/ class no longer exists (removed?)
+ nm colorizeAllWith:(Color grey)
+ ] ifFalse:[
+ genShortNameListEntry value:(Smalltalk at:nm)
+ ].
+ ].
colorizedFullNames := initialFullNames collect:[:clsName |
(classNamesInChangeSet includes:clsName) ifTrue:[
@@ -25524,7 +25539,7 @@
] ifFalse:[
searchAllLabel := 'Methods referring to the value of ''%1'''.
otherKeysReferringToValue size <= 3 ifTrue:[
- msg := (otherKeysReferringToValue copyWithoutLast:1) asStringWith:', '.
+ msg := (otherKeysReferringToValue copyButLast:1) asStringWith:', '.
msg := msg , ' and ' , otherKeysReferringToValue last.
msg := msg , ' also refer to that value. Search those references too ?'.
] ifFalse:[
@@ -25827,7 +25842,7 @@
"/ ] ifFalse:[
"/ searchAllLabel := 'Methods referring to the value of ''%1'''.
"/ otherKeysReferringToValue size <= 3 ifTrue:[
-"/ msg := (otherKeysReferringToValue copyWithoutLast:1) asStringWith:', '.
+"/ msg := (otherKeysReferringToValue copyButLast:1) asStringWith:', '.
"/ msg := msg , ' and ' , otherKeysReferringToValue last.
"/ msg := msg , ' also refer to that value. Search those references too ?'.
"/ ] ifFalse:[
@@ -28514,7 +28529,7 @@
(newClassName includes:$:) ifTrue:[
idx := newClassName lastIndexOf:$:.
ownerName := newClassName copyTo:idx.
- [ownerName endsWith:$:] whileTrue:[ownerName := ownerName copyWithoutLast:1].
+ [ownerName endsWith:$:] whileTrue:[ownerName := ownerName copyButLast:1].
newClassName := newClassName copyFrom:idx+1.
] ifFalse:[
(self confirm:(resources string:'Copy as public class ''%1'' ?' with:newClassName) withCRs)
@@ -33532,7 +33547,7 @@
"/ need a better solution for that in the long term
#fixme.
(manager == CVSSourceCodeManager and:[ rev endsWith:$m ]) ifTrue:[
- rev := rev copyWithoutLast:1.
+ rev := rev copyButLast:1.
].
self classMenuCompareAgainstVersionInRepository:rev usingManager: manager
!
@@ -35301,7 +35316,7 @@
varName := varName asLowercaseFirst.
].
(varName endsWith:'Holder') ifTrue:[
- pseudoVarName := varName copyWithoutLast:6.
+ pseudoVarName := varName copyButLast:6.
] ifFalse:[
pseudoVarName := varName.
varName := pseudoVarName , 'Holder'.
@@ -40452,9 +40467,10 @@
|tag|
- tag := Dialog request:'Tag:'.
+ tag := Dialog request:'Tag:' initialAnswer:(CVSSourceCodeManager recentTag).
tag isEmptyOrNil ifTrue:[^ self].
+ CVSSourceCodeManager recentTag:tag.
self projectMenuFindClassesNotTaggedAs:tag
!
@@ -40583,9 +40599,9 @@
package := checkedOutPackageDir := pkg asPackageId directory.
(package includesMatchCharacters) ifTrue:[
"if the match-char is not at the end..."
- ((package endsWith:'/*') and:[ (package copyWithoutLast:2) includesMatchCharacters not ])
+ ((package endsWith:'/*') and:[ (package copyButLast:2) includesMatchCharacters not ])
ifTrue:[
- checkedOutPackageDir := package copyWithoutLast:2
+ checkedOutPackageDir := package copyButLast:2
] ifFalse:[
checkedOutPackageDir := nil. "/ must check out everything and filter
]
@@ -40787,7 +40803,7 @@
numSkipped ~~ 0 ifTrue:[
(package endsWith:'*') ifTrue:[
self information:('Nothing imported. Notice:\You may want to try ''' ,
- (package copyWithoutLast:2) , ''' (i.e. not the matching sub-packages).') withCRs
+ (package copyButLast:2) , ''' (i.e. not the matching sub-packages).') withCRs
] ifFalse:[
self information:'Nothing imported.'
]
@@ -41643,6 +41659,229 @@
"Modified: / 12-09-2006 / 14:22:58 / cg"
!
+projectPackageDependencyBrowser
+ "find methods in a particular release of a set of pacakges
+ called by a set of packages from a particular release in another set of packages.
+ Answers the question of which release of the base st/x is required to execute
+ a particular release of a product (such as expecco).
+ Releases are specified by their tag."
+
+ |packagesToFindMissing packagesToFindCalled classesToFindMissing classesToFindCalled projectList1 projectList2 knownTags1 knownTags2
+ projectListView1 projectListView2 dialog releaseHolder1 releaseHolder2 manager
+ methodsImplemented skipAutoloaded cacheTagMappingsHolder
+ missingSelectors packageHull|
+
+ manager := SourceCodeManager.
+ skipAutoloaded := true.
+
+ releaseHolder1 := SourceCodeManager recentTag asValue.
+ releaseHolder2 := 'stable' asValue.
+
+ packagesToFindMissing := self selectedProjectsValue.
+ packagesToFindMissing isEmptyOrNil ifTrue:[^self].
+
+ projectList1 := ProjectList "HierarchicalProjectList" new.
+ projectList1 createBuilder.
+ projectListView1 := ApplicationSubView new client:projectList1.
+
+ projectList2 := ProjectList "HierarchicalProjectList" new.
+ projectList2 createBuilder.
+ projectListView2 := ApplicationSubView new client:projectList2.
+
+ projectList1 selectedProjects value:packagesToFindMissing.
+ projectList2 selectedProjects value:#('stx').
+
+ packageHull := [:packageIDs | Smalltalk allProjectIDs select:[:p | packageIDs
+ contains:[:packageId |
+ p = packageId
+ or:[ (p startsWith:packageId,':')
+ or:[ (p startsWith:packageId,'/') ]]]
+ ]
+ ].
+
+ knownTags1 := (self allKnownTagsInClasses:((packageHull value:projectList1 selectedProjects value)
+ collect:[:id | ProjectDefinition definitionClassForPackage:id]
+ thenSelect:[:c | c notNil]))
+ asOrderedCollection reverse.
+
+ knownTags2 := (self allKnownTagsInClasses:((packageHull value:projectList2 selectedProjects value)
+ collect:[:id | ProjectDefinition definitionClassForPackage:id]
+ thenSelect:[:c | c notNil]))
+ asOrderedCollection reverse.
+
+ dialog := Dialog new.
+ dialog addCheckBox:'Cache tag -> revision mappings (speedup)' on:(cacheTagMappingsHolder := true asValue) tabable:true.
+ dialog addMessage:'Find (possible) calls from projects:' centered:false.
+ dialog leftIndent:30.
+ (dialog addComponent:projectListView1) width:1.0.
+ dialog addMessage:'with release:' centered:false.
+ dialog addComboListOn:releaseHolder1 list:knownTags1 tabable:true.
+ dialog leftIndent:0.
+
+ dialog addMessage:'into projects:' centered:false.
+ dialog leftIndent:30.
+ dialog addComponent:projectListView2.
+ dialog addMessage:'with release:' centered:false.
+ dialog addComboListOn:releaseHolder2 list:knownTags2 tabable:true.
+ dialog leftIndent:0.
+
+ dialog addAbortAndOkButtons.
+ dialog extent:400@400.
+ dialog open.
+
+ dialog accepted ifFalse:[ ^ self].
+
+ cacheTagMappingsHolder value ifTrue:[
+ CachedTagToRevisionMapping isNil ifTrue:[
+ CachedTagToRevisionMapping := Dictionary new
+ ].
+ ].
+
+ packagesToFindMissing := projectList1 selectedProjects value.
+ packagesToFindCalled := projectList2 selectedProjects value.
+
+ classesToFindMissing := Smalltalk allClasses select:[:cls |
+ |p|
+
+ p := cls package.
+ p notNil
+ and:[cls isPrivate not
+ and:[ packagesToFindMissing contains:[:p2 | (p2 = p)
+ or:[(p startsWith:(p2,'/'))
+ or:[p startsWith:(p2,':')]]]]]
+ ].
+ classesToFindMissing := classesToFindMissing asOrderedCollection sort:[:a :b | a name < b name].
+
+ classesToFindCalled := Smalltalk allClasses select:[:cls |
+ |p|
+
+ p := cls package.
+ p notNil
+ and:[cls isPrivate not
+ and:[ packagesToFindCalled contains:[:p2 | (p2 = p)
+ or:[(p startsWith:(p2,'/'))
+ or:[p startsWith:(p2,':')]]]]]
+ ].
+ classesToFindCalled := classesToFindCalled asOrderedCollection sort:[:a :b | a name < b name].
+
+"/ CachedMethodsImplemented := methodsImplemented.
+methodsImplemented := CachedMethodsImplemented.
+methodsImplemented isNil ifTrue:[
+ methodsImplemented := Set new.
+ classesToFindCalled do:[:eachClass |
+ |tag stream changeSet|
+
+ (eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
+ [
+ |rev|
+
+ tag := releaseHolder2 value.
+ cacheTagMappingsHolder value ifTrue:[
+ rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+ at:eachClass name ifAbsent:nil.
+ ].
+ rev isNil ifTrue:[
+ rev := manager utilities
+ revisionForSymbolicName:tag
+ class:eachClass
+ fileName:(eachClass classFilename)
+ directory:(eachClass package asPackageId directory)
+ module:(eachClass package asPackageId module)
+ manager:manager.
+ ].
+
+ rev isNil ifTrue:[
+ Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
+ ] ifFalse:[
+ self activityNotification:'reading ',eachClass name,'...'.
+ stream := manager getSourceStreamFor:eachClass revision:rev.
+ stream isNil ifTrue:[
+ "/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
+ Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
+ ] ifFalse:[
+ changeSet := ChangeSet fromStream:stream.
+ methodsImplemented addAll:(changeSet changeSelectors).
+ ].
+ cacheTagMappingsHolder value ifTrue:[
+ (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+ at:eachClass name put:rev.
+ ].
+ ].
+ ] ensure:[
+ stream notNil ifTrue:[ stream close ].
+ ].
+ ].
+ ].
+].
+
+ classesToFindMissing do:[:eachClass |
+ |tag stream changeSet|
+
+ (eachClass isLoaded or:[skipAutoloaded not]) ifTrue:[
+ [
+ |rev|
+
+ tag := releaseHolder1 value.
+ cacheTagMappingsHolder value ifTrue:[
+ rev := (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+ at:eachClass name ifAbsent:nil.
+ ].
+ rev isNil ifTrue:[
+ rev := manager utilities
+ revisionForSymbolicName:tag
+ class:eachClass
+ fileName:(eachClass classFilename)
+ directory:(eachClass package asPackageId directory)
+ module:(eachClass package asPackageId module)
+ manager:manager.
+ ].
+
+ rev isNil ifTrue:[
+ Dialog warn:(resources string:'No version of %1 tagged as %2' with:eachClass name with:tag).
+ ] ifFalse:[
+ self activityNotification:'reading ',eachClass name,'...'.
+ stream := manager getSourceStreamFor:eachClass revision:rev.
+ stream isNil ifTrue:[
+ "/ class is autoloaded AND does not have a computable class name (would need conultation of abbrev file)
+ Dialog warn:(resources string:'Cannot extract source of %1 (rev %2)' with:eachClass name with:rev).
+ ] ifFalse:[
+ changeSet := ChangeSet fromStream:stream.
+ changeSet do:[:each |
+ |tree messagesSent|
+
+ messagesSent := Set new.
+ each isMethodCodeChange ifTrue:[
+ tree := RBParser parseMethod:(each source) onError:[:aString :pos | nil].
+ tree notNil ifTrue:[
+ tree nodesDo:[:eachNode |
+ eachNode isMessage ifTrue:[
+ messagesSent add:( eachNode selector ).
+self halt.
+ ] ifFalse:[
+ eachNode isVariable ifTrue:[
+self halt.
+ ]
+ ]
+ ].
+ ].
+
+ tree halt.
+ ].
+ ]
+ ].
+ cacheTagMappingsHolder value ifTrue:[
+ (CachedTagToRevisionMapping at:tag ifAbsentPut:[Dictionary new])
+ at:eachClass name put:rev.
+ ].
+ ].
+ ] ensure:[
+ stream notNil ifTrue:[ stream close ].
+ ].
+ ].
+ ].
+ self halt.
+!
+
selectedProjectsDo:aBlock
|selectedProjects allProjects|
@@ -47083,8 +47322,7 @@
]
].
].
- allNames := allNames asOrderedCollection sort.
- allNames isEmpty ifTrue:[ allNames := nil ].
+ allNames := allNames asOrderedCollection sort asNilIfEmpty.
box := self enterBoxForVariableSearch:boxTitle list:allNames.
box action:[:enteredString | varNames := enteredString].
@@ -50953,7 +51191,7 @@
str := aString.
(aString endsWith:' class') ifTrue:[
- str := aString copyWithoutLast:6.
+ str := aString copyButLast:6.
].
theClass := self findClassNamed:str.
@@ -53689,7 +53927,7 @@
nm := aClassName.
(nm endsWith:' class') ifTrue:[
meta := true.
- nm := nm copyWithoutLast:6.
+ nm := nm copyButLast:6.
].
nameSym := nm asSymbol.
@@ -53932,9 +54170,9 @@
changedSource := aNavigationState codeView contentsAsString asStringCollection.
].
changedSource := changedSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
- changedSource := changedSource collect:[:line | line isEmpty ifTrue:[nil] ifFalse:[line]].
+ changedSource := changedSource collect:[:line | line asNilIfEmpty].
[changedSource size > 0 and:[changedSource last isNil]] whileTrue:[
- changedSource := changedSource copyWithoutLast:1
+ changedSource := changedSource copyButLast:1
].
changedSource := changedSource asString.
@@ -53958,7 +54196,7 @@
originalSource := originalSource collect:[:line | line string withoutTrailingSeparators withTabsExpanded].
originalSource := originalSource collect:[:line | line isEmpty ifTrue:[nil] ifFalse:[line]].
[originalSource size > 0 and:[originalSource last isNil]] whileTrue:[
- originalSource := originalSource copyWithoutLast:1
+ originalSource := originalSource copyButLast:1
].
s1 := originalSource asString.
@@ -59675,6 +59913,23 @@
The codeview does not really know that it is not dealing with non-text,
as I mimicry some of the string protocol to make it happy.
(duck typing is cool!!)
+
+ to show pre-assigned per-user colors, do something like:
+ UserPreferences current
+ at:#preferredOwnerColorMapping
+ put:(
+ Dictionary new
+ at:'cg' put:(Color green);
+ at:'claus' put:(Color green);
+ at:'sv' put:(Color blue);
+ at:'ab' put:(Color orange);
+ at:'ca' put:(Color cyan);
+ at:'mb' put:(Color red);
+ at:'sr' put:(Color yellow);
+ at:'vrany' put:(Color orange lightened);
+ yourself
+ )
+
"
! !
@@ -59700,7 +59955,7 @@
!NewSystemBrowser::OwnershipGraph methodsFor:'displaying'!
generateFormFor:aGC
- |maxNumLines xRun hGraph wCol colorsPerOwner colorsToUse
+ |maxNumLines xRun hGraph wCol colorsPerOwner colorsToUse preferredColors
y yLine font sepAgenda lastInfo form
maxWRevString maxWAuthorString maxWDateString|
@@ -59710,6 +59965,8 @@
colorsPerOwner := OrderedDictionary new.
colorsToUse := self ownerColorsToUse copy.
+ preferredColors := UserPreferences current at:#preferredOwnerColorMapping ifAbsent:nil.
+
hGraph := self graphHeight.
wCol := self columnWidth.
font := form font.
@@ -59732,6 +59989,29 @@
maxWRevString := maxWRevString max:(font widthOf:rev).
maxWAuthorString := maxWAuthorString max:(font widthOf:author).
maxWDateString := maxWDateString max:(font widthOf:(date printStringFormat:self class dateFormat)).
+
+ "/ pre determine color here
+ colorsPerOwner
+ at:author
+ ifAbsentPut:[
+ |clr|
+
+ (preferredColors notNil
+ and:[ (preferredColors includesKey:author) ]) ifTrue:[
+ clr := preferredColors at:author.
+ colorsToUse remove:clr ifAbsent:[].
+ ] ifFalse:[
+ colorsToUse isEmpty ifTrue:[
+ clr := Color
+ redByte:(Random nextIntegerBetween:0 and:255)
+ greenByte:(Random nextIntegerBetween:0 and:255)
+ blueByte:(Random nextIntegerBetween:0 and:255).
+ ] ifFalse:[
+ clr := colorsToUse removeFirst
+ ]
+ ].
+ clr
+ ].
].
ownershipInfo do:[:revInfo |
@@ -59866,7 +60146,7 @@
!NewSystemBrowser::OwnershipGraph methodsFor:'string protocol (list entry)'!
asString
- ^ ''
+ ^ ' '
!
asStringWithoutEmphasis
@@ -59881,6 +60161,10 @@
^ '' emphasis
!
+emphasisAt:colNr
+ ^ nil
+!
+
hasChangeOfEmphasis
^ false
!
@@ -59902,29 +60186,27 @@
colorsToUse add:(Color brown).
colorsToUse add:(Color orange).
- colorsToUse add:(Color green lightened).
- colorsToUse add:(Color blue lightened).
- colorsToUse add:(Color yellow lightened).
- colorsToUse add:(Color red lightened).
- colorsToUse add:(Color cyan lightened).
- colorsToUse add:(Color magenta lightened).
+ colorsToUse add:(Color green lightened lightened).
+ colorsToUse add:(Color blue lightened lightened).
+ colorsToUse add:(Color yellow lightened lightened).
+ colorsToUse add:(Color red lightened lightened).
+ colorsToUse add:(Color cyan lightened lightened).
+ colorsToUse add:(Color magenta lightened lightened).
colorsToUse add:(Color brown lightened).
colorsToUse add:(Color orange lightened).
- colorsToUse add:(Color green darkened).
- colorsToUse add:(Color blue darkened).
- colorsToUse add:(Color yellow darkened).
- colorsToUse add:(Color red darkened).
- colorsToUse add:(Color cyan darkened).
- colorsToUse add:(Color magenta darkened).
- colorsToUse add:(Color brown darkened).
- colorsToUse add:(Color orange darkened).
+ colorsToUse add:(Color grey).
+ colorsToUse add:(Color darkGrey).
+ colorsToUse add:(Color lightGrey).
+ colorsToUse add:(Color veryLightGrey).
+ colorsToUse add:(Color red darkened lightened).
+ colorsToUse add:(Color blue darkened lightened).
^ colorsToUse
!
string
- ^ ''
+ ^ ' '
!
withoutTrailingSeparators
@@ -59978,11 +60260,11 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1933 2013-07-07 12:13:58 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1940 2013-07-15 09:44:11 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1933 2013-07-07 12:13:58 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1940 2013-07-15 09:44:11 cg Exp $'
!
version_HG
@@ -59991,7 +60273,7 @@
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st,v 1.1933 2013-07-07 12:13:58 cg Exp $'
+ ^ '$Id: Tools__NewSystemBrowser.st,v 1.1940 2013-07-15 09:44:11 cg Exp $'
! !
--- a/Tools__SearchDialog.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__SearchDialog.st Tue Jul 16 17:18:09 2013 +0100
@@ -275,7 +275,7 @@
(sel startsWith:'#''') ifTrue:[
sel := sel copyFrom:3.
(sel endsWith:$') ifTrue:[
- sel := sel copyWithoutLast:1.
+ sel := sel copyButLast:1.
].
].
]
--- a/Tools__Tag.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__Tag.st Tue Jul 16 17:18:09 2013 +0100
@@ -422,7 +422,7 @@
lnr := 0.
"/ (pat endsWith:'/;"') ifTrue:[
-"/ pat := pat copyWithoutLast:3.
+"/ pat := pat copyButLast:3.
"/ ].
(pat startsWith:$^) ifTrue:[
pat := pat copyFrom:2.
--- a/Tools__TagList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__TagList.st Tue Jul 16 17:18:09 2013 +0100
@@ -2434,6 +2434,77 @@
"Modified: / 05-05-2011 / 15:45:55 / cg"
! !
+!TagList methodsFor:'tag generation - helpers'!
+
+plainTextBetweenHTMLElement:startElement andElementWithTag:endTag
+ "applied to an <h1>-tag element, passing '/h1' as endTag,
+ this retrieves the plain text of the headline. Used by the tag list."
+
+ |el collector hasSpace txt|
+
+ collector := WriteStream on:(String new:100).
+ el := startElement next.
+
+ hasSpace := true.
+ [ el notNil and:[el tag ~= endTag] ] whileTrue:[
+ el isTextElement ifTrue:[
+ hasSpace ifFalse:[
+ collector space.
+ hasSpace := true.
+ ].
+ txt := el text withoutSeparators.
+ txt notEmpty ifTrue:[
+ collector nextPutAll:txt.
+ hasSpace := txt endsWith:' '.
+ ]
+ ].
+ el := el next
+ ].
+ ^ collector contents
+
+ "Created: / 12-09-2012 / 12:38:01 / cg"
+!
+
+tagsForLinesStartingWithIdentifierAndColon:aFilePath
+ "helper for yacc tags (and maybe others in the future):
+ naive, q&d scan for lines matching:
+ <anything>:
+ "
+
+ |targets line l lineNr nm s words w|
+
+ Tag autoload.
+
+ targets := OrderedCollection new.
+ s := aFilePath asFilename readStream.
+ s notNil ifTrue:[
+ s := LineNumberReadStream readingFrom:s.
+ [s atEnd] whileFalse:[
+ line := s nextLine.
+ l := line withoutSeparators.
+ words := l asCollectionOfWords.
+
+ words size >= 1 ifTrue:[
+ w := words first.
+ (w endsWith:$:) ifTrue:[
+ nm := w copyButLast:1.
+
+ lineNr := s lineNumber - 1.
+ targets add:(Tag::TLabel
+ label:nm
+ pattern:nil
+ type:nil
+ lineNumber:lineNr).
+ ].
+ ]
+ ].
+ s close
+ ].
+ ^ targets
+
+ "Created: / 28-09-2012 / 14:45:35 / cg"
+! !
+
!TagList methodsFor:'tag generation - simple'!
assemblerTagsInFile:aFilePath
@@ -2692,7 +2763,7 @@
htmlTagsInFile:aFilePath
"hatml tags:
- naive, q&d scan for lines containing with:
+ naive, q&d scan for lines containing:
<textarea>
<input>
<table>
@@ -3222,35 +3293,6 @@
^ targets
!
-plainTextBetweenHTMLElement:startElement andElementWithTag:endTag
- "applied to an <h1>-tag element, passing '/h1' as endTag,
- this retrieves the plain text of the headline. Used by the tag list."
-
- |el collector hasSpace txt|
-
- collector := WriteStream on:(String new:100).
- el := startElement next.
-
- hasSpace := true.
- [ el notNil and:[el tag ~= endTag] ] whileTrue:[
- el isTextElement ifTrue:[
- hasSpace ifFalse:[
- collector space.
- hasSpace := true.
- ].
- txt := el text withoutSeparators.
- txt notEmpty ifTrue:[
- collector nextPutAll:txt.
- hasSpace := txt endsWith:' '.
- ]
- ].
- el := el next
- ].
- ^ collector contents
-
- "Created: / 12-09-2012 / 12:38:01 / cg"
-!
-
prologTagsInFile:aFilePath
"prolog tags:
naive, q&d scan for lines matching:
@@ -3510,46 +3552,6 @@
"Created: / 05-01-2012 / 10:56:26 / cg"
!
-tagsForLinesStartingWithIdentifierAndColon:aFilePath
- "helper for yacc tags (and maybe others in the future):
- naive, q&d scan for lines matching:
- <anything>:
- "
-
- |targets line l lineNr nm s words w|
-
- Tag autoload.
-
- targets := OrderedCollection new.
- s := aFilePath asFilename readStream.
- s notNil ifTrue:[
- s := LineNumberReadStream readingFrom:s.
- [s atEnd] whileFalse:[
- line := s nextLine.
- l := line withoutSeparators.
- words := l asCollectionOfWords.
-
- words size >= 1 ifTrue:[
- w := words first.
- (w endsWith:$:) ifTrue:[
- nm := w copyButLast:1.
-
- lineNr := s lineNumber - 1.
- targets add:(Tag::TLabel
- label:nm
- pattern:nil
- type:nil
- lineNumber:lineNr).
- ].
- ]
- ].
- s close
- ].
- ^ targets
-
- "Created: / 28-09-2012 / 14:45:35 / cg"
-!
-
tclTagsInFile:aFilePath
"tcl tags:
naive, q&d scan for lines matching:
@@ -3659,11 +3661,11 @@
!TagList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.27 2013-05-07 15:28:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.28 2013-07-10 08:39:01 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.27 2013-05-07 15:28:52 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.28 2013-07-10 08:39:01 cg Exp $'
!
version_HG
@@ -3672,6 +3674,6 @@
!
version_SVN
- ^ '$Id: Tools__TagList.st,v 1.27 2013-05-07 15:28:52 cg Exp $'
+ ^ '$Id: Tools__TagList.st,v 1.28 2013-07-10 08:39:01 cg Exp $'
! !
--- a/Tools__VariableList.st Mon Jul 15 13:16:46 2013 +0100
+++ b/Tools__VariableList.st Tue Jul 16 17:18:09 2013 +0100
@@ -13,7 +13,7 @@
"{ NameSpace: Tools }"
-Tools::BrowserList subclass:#VariableList
+BrowserList subclass:#VariableList
instanceVariableNames:'variableList classHolder showClassVars sortVariablesByName
selectedVariableEntries showWarningAboutMissingEntryInXmlSpec'
classVariableNames:''
@@ -50,7 +50,6 @@
"
! !
-
!VariableList class methodsFor:'interface specs'!
windowSpec
@@ -102,7 +101,6 @@
)
! !
-
!VariableList class methodsFor:'plugIn spec'!
aspectSelectors
@@ -134,7 +132,6 @@
).
! !
-
!VariableList methodsFor:'aspects'!
classHolder
@@ -245,7 +242,6 @@
! !
-
!VariableList methodsFor:'change & update'!
delayedUpdate:something with:aParameter from:changedObject
@@ -419,7 +415,6 @@
"Modified: / 20-07-2011 / 18:52:44 / cg"
! !
-
!VariableList methodsFor:'generators'!
makeGenerator
@@ -428,7 +423,6 @@
! !
-
!VariableList methodsFor:'private'!
commonPostBuild
@@ -533,7 +527,7 @@
listOfVariables
- |nameList numClasses classes class commonSubclass showingClassVars
+ |nameList numClasses classes class commonSubclass commonSuperclass showingClassVars
sortByName classesAlreadyProcessed hasSmallSense smallSenseManager info |
classHolder isNil ifTrue:[
@@ -560,6 +554,12 @@
classes := Array with:(commonSubclass).
numClasses := 1.
].
+"/ commonSuperclass := Behavior commonSuperclassOf:classes.
+"/ commonSuperclass notNil ifTrue:[
+"/ "/ yes - treat like a single class
+"/ classes := Array with:(commonSuperclass).
+"/ numClasses := 1.
+"/ ].
].
numClasses > 1 ifTrue:[
@@ -567,7 +567,14 @@
"/ unless there is a common subclass ...
nameList := Set new.
classesAlreadyProcessed := IdentitySet new.
- classes do:[:class |
+ classes do:[:eachClass |
+ |class|
+
+ class := eachClass.
+"/ showingClassVars ifTrue:[
+"/ class := class theNonMetaclass
+"/ ].
+
hasSmallSense ifTrue:[
info := smallSenseManager infoForClassOrNil: class.
].
@@ -593,7 +600,7 @@
class withAllSuperclassesDo:[:cls|
(classesAlreadyProcessed includes:cls) ifFalse:[
nameList addAll:
- (cls classVarNames collect:[:nm|self listEntryForClass: cls name: nm info: info ]).
+ (cls instVarNames collect:[:nm|self listEntryForClass: cls name: nm info: info ]).
classesAlreadyProcessed add:cls.
]
]
@@ -708,7 +715,6 @@
"Modified: / 23-03-2012 / 15:55:47 / cg"
! !
-
!VariableList::VariableEntry class methodsFor:'instance creation'!
application: app class: aClass name: aString
@@ -725,7 +731,6 @@
"Created: / 12-04-2011 / 15:39:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!VariableList::VariableEntry methodsFor:'accessing'!
application: anObject
@@ -808,7 +813,6 @@
"Modified (format): / 16-12-2011 / 00:41:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!VariableList::VariableEntry methodsFor:'displaying'!
displayOn:aGC x:x y:y opaque: opaque
@@ -823,7 +827,6 @@
"Created: / 12-04-2011 / 15:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!VariableList::VariableEntry methodsFor:'queries'!
widthOn:aGC
@@ -834,11 +837,10 @@
"Created: / 16-12-2011 / 01:04:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!VariableList class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__VariableList.st,v 1.20 2013-03-10 14:18:47 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__VariableList.st,v 1.21 2013-07-10 12:04:18 cg Exp $'
!
version_HG
--- a/VersionDiffBrowser.st Mon Jul 15 13:16:46 2013 +0100
+++ b/VersionDiffBrowser.st Tue Jul 16 17:18:09 2013 +0100
@@ -28,7 +28,8 @@
!
HierarchicalItem subclass:#ClassChangeSet
- instanceVariableNames:'classBeingCompared labelA labelB diffSet versionA versionB'
+ instanceVariableNames:'class1BeingCompared class2BeingCompared labelA labelB diffSet
+ versionA versionB'
classVariableNames:''
poolDictionaries:''
privateIn:VersionDiffBrowser
@@ -830,8 +831,7 @@
!
classBeingCompared
- "
- gets the class from the change set which is compared.
+ "returns the class from the change set which is compared.
<return: Class>
"
@@ -1758,7 +1758,10 @@
|m changeClassName classOrMetaString useChangesString selectorString
singleComparedClass singleComparedClassesName singleComparedMetaclassesName
- printString|
+ printString class1 class2|
+
+ class1 := self classChangeSet class1BeingCompared.
+ class2 := self classChangeSet class2BeingCompared.
(singleComparedClass := self classBeingCompared) notNil ifTrue:[
singleComparedClassesName := singleComparedClass name.
@@ -1783,16 +1786,22 @@
useChangesString := false.
classOrMetaString := ''.
- (changeClassName = singleComparedClassesName) ifTrue:[
- "/ changeClassName := ''.
- useChangesString := true.
+ (class1 notNil
+ and:[ class2 notNil
+ and:[ class1 ~= class2 ]]) ifTrue:[
+ changeClassName := ''.
] ifFalse:[
- (changeClassName = singleComparedMetaclassesName) ifTrue:[
- "/ classOrMetaString := ' class'.
+ (changeClassName = singleComparedClassesName) ifTrue:[
+ "/ changeClassName := ''.
useChangesString := true.
] ifFalse:[
- ((changeClassName includes:$:) and:[ changeClassName startsWith:((singleComparedClassesName ? ''),'::') ]) ifTrue:[
- changeClassName := changeClassName copyFrom:(singleComparedClassesName,'::') size+1.
+ (changeClassName = singleComparedMetaclassesName) ifTrue:[
+ "/ classOrMetaString := ' class'.
+ useChangesString := true.
+ ] ifFalse:[
+ ((changeClassName includes:$:) and:[ changeClassName startsWith:((singleComparedClassesName ? ''),'::') ]) ifTrue:[
+ changeClassName := changeClassName copyFrom:(singleComparedClassesName,'::') size+1.
+ ].
].
].
].
@@ -1800,6 +1809,7 @@
selectorString := ''.
(aChange isMethodChange) ifTrue:[
selectorString := aChange selector.
+
aChange changeClass notNil ifTrue:[
m := aChange changeMethod.
m notNil ifTrue:[
@@ -1897,6 +1907,10 @@
!
updateLists
+ "walk over the changeSet and setup the 3 lists:
+ onlyInA, changed, onlyInB,
+ Optionally filter extensions, categoryChanges and versionMethods"
+
|classChangeSet listOnlyInA listOnlyInB listChanged
printStringGenerator sortBlockForChangeLists filteredList
isIgnoredChange numIgnoredExtensions numIgnoredVersionMethods
@@ -2152,7 +2166,7 @@
|aStream sourceA sourceB theChangeSetA theChangeSetB theClassChangeSet|
theClassChangeSet := self new.
- theClassChangeSet classBeingCompared:classA.
+ theClassChangeSet class1BeingCompared:classA class2BeingCompared:classB.
theClassChangeSet labelA:aLabelA.
theClassChangeSet labelB:aLabelB.
@@ -2169,25 +2183,25 @@
theChangeSetA:=self changeSetForClass:classA andSource:sourceA.
theChangeSetB:=self changeSetForClass:classB andSource:sourceB.
theChangeSetA isNil
- ifTrue: [theChangeSetA := ChangeSet new].
+ ifTrue: [theChangeSetA := ChangeSet new].
theChangeSetB isNil
- ifTrue: [theChangeSetB := ChangeSet new].
+ ifTrue: [theChangeSetB := ChangeSet new].
"/ just in case (if comparing a class against another),
"/ unify the classes of the changes (to avoid that all changes are detected as different)
theChangeSetB do:[:eachChange |
- eachChange isMethodChange ifTrue:[
- eachChange changeClass isMeta ifTrue:[
- eachChange changeClass ~~ classA theMetaclass ifTrue:[
- eachChange changeClass:classA theMetaclass.
- ]
- ] ifFalse:[
- eachChange changeClass ~~ classA theNonMetaclass ifTrue:[
- eachChange changeClass:classA theNonMetaclass.
- ]
- ].
- ].
+ eachChange isMethodChange ifTrue:[
+ eachChange changeClass isMeta ifTrue:[
+ eachChange changeClass ~~ classA theMetaclass ifTrue:[
+ eachChange changeClass:classA theMetaclass.
+ ]
+ ] ifFalse:[
+ eachChange changeClass ~~ classA theNonMetaclass ifTrue:[
+ eachChange changeClass:classA theNonMetaclass.
+ ]
+ ].
+ ].
].
"/ remove all #initialize doIts
theChangeSetA := theChangeSetA select:[:eachChange | eachChange isDoIt not or:[eachChange isInitialize not]].
@@ -2300,16 +2314,35 @@
!VersionDiffBrowser::ClassChangeSet methodsFor:'accessing'!
+class1BeingCompared
+ "returns the class which is compared"
+
+ ^ class1BeingCompared
+!
+
+class1BeingCompared:class1 class2BeingCompared:class2
+ "returns the class which is compared"
+
+ class1BeingCompared := class1.
+ class2BeingCompared := class2
+!
+
+class2BeingCompared
+ "returns the class which is compared"
+
+ ^ class2BeingCompared
+!
+
classBeingCompared
- "returns the value of the class which is compared"
-
- ^ classBeingCompared
+ "returns the class which is compared"
+
+ ^ class1BeingCompared
!
classBeingCompared:something
"set the value of the class which is compared"
- classBeingCompared := something.
+ class1BeingCompared := class2BeingCompared := something.
!
diffSet
@@ -2448,11 +2481,11 @@
!VersionDiffBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.113 2013-06-06 17:12:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.115 2013-07-09 21:53:31 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.113 2013-06-06 17:12:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.115 2013-07-09 21:53:31 cg Exp $'
!
version_HG
--- a/resources/de.rs Mon Jul 15 13:16:46 2013 +0100
+++ b/resources/de.rs Tue Jul 16 17:18:09 2013 +0100
@@ -1,6 +1,6 @@
#encoding utf8
-; $Header: /cvs/stx/stx/libtool/resources/de.rs,v 1.223 2013-06-27 15:38:08 cg Exp $
+; $Header: /cvs/stx/stx/libtool/resources/de.rs,v 1.226 2013-07-09 13:25:03 cg Exp $
;
; German Workspace (and other tools) resources
;
@@ -685,7 +685,8 @@
; 'Trace' 'Aufruf protokollieren'
'Trace Sender' 'Aufrufer protokollieren'
'Trace Full Walkback' 'Aufrufkette komplett protokollieren'
-'Start Counting' 'Aufrufzhler an'
+'Start Counting' 'Aufrufzhler an'
+'Start Counting by Receiver Class' 'Aufrufzhler an (per Receiverklasse)'
'Start Mem Usage' 'Speicherzhler an'
'Stop Counting' 'Aufrufzhler aus'
'Stop Mem Usage' 'Speicherzhler aus'
@@ -934,7 +935,9 @@
'Undo Recent' 'Rckgngig'
'Redo: %1' 'Rck-rckgngig: %1'
'Redo' 'Rck-rckgngig'
-'Set Undo Count' 'Anzahl gemerkter Operationen setzen'
+'Set Undo Count' 'Anzahl gemerkter Operationen setzen'
+'Set Undo Count' 'Anzahl gemerkter Operationen setzen'
+'Remove Class from ChangeSet' 'Klasse aus ChangeSet entfernen'
'Defining variable' 'Mit Variable'
'Defining Variable' 'Mit Variable'
@@ -1177,8 +1180,9 @@
'SubclassResponsibility here' 'SubclassResponsibility hier'
'Templates in Subclasses' 'Methodenskelette in Subklassen'
'Templates in all Subclasses' 'Methodenskelette in allen Subklassen'
+'Redefinition in Subclass' 'Redefinition in Subklasse'
'SubclassResponsibility in direct Subclasses' 'SubclassResponsibility in direkten Subklassen'
-'SubclassResponsibility in all Subclasses' 'SubclassResponsibility in all Subklassen'
+'SubclassResponsibility in all Subclasses' 'SubclassResponsibility in allen Subklassen'
'Corresponding Instance Creation in Class' 'Zugehrige Instanzierung auf Klassen-Seite'
'Forwarding Method in Instance Protocol' 'Weiterleitende Methode auf Instanz-Seite'
@@ -1475,7 +1479,7 @@
'Update Method Template' 'Update Methodenvorlage'
'Visitor Method' 'Visitor Methode'
'Visitor && Visited Methods' 'Visitor && Visited Methoden'
-'Visitor and Visited Methods' 'Visitor and Visited Methoden'
+'Visitor and Visited Methods' 'Visitor und Visited Methoden'
'Visitor Pattern Support' 'Visitor Pattern'
'Classtype Test Methods' 'Typ-Prf-Methoden (isXXX)'
'Classtype Test Methods for all Subclass(es) (isXXX)' 'Typ-Prf-Methoden fr alle Subklassen (isXXX)'