--- a/AbstractSettingsApplication.st Sat May 14 07:05:55 2016 +0200
+++ b/AbstractSettingsApplication.st Sun May 15 06:58:33 2016 +0200
@@ -538,7 +538,7 @@
createNewBuilder: false
)
(HorizontalPanelViewSpec
- name: 'BottonPanel'
+ name: 'ButtonPanel'
layout: (LayoutFrame 5 0 -40 1 -7 1 0 1)
horizontalLayout: right
verticalLayout: center
@@ -16702,27 +16702,32 @@
!AbstractSettingsApplication::SourceCodeManagementSettingsAppl methodsFor:'change & update'!
selectedPerModuleRootChanged
- |module entry|
-
+ |module entry firstEntry
+ removeEnabled perModuleRootModule perModuleRoot|
+
self acceptChannel value:true.
module := self selectedPerModuleRoot value.
module isNil ifTrue:[
- self removeEnabled value:false.
- self perModuleRootModule value:' '.
- self perModuleRoot value:''.
- ^ self
- ].
-
- entry := rootsPerModule at:module ifAbsent:#().
- (entry first = CVSSourceCodeManager) ifTrue:[
- self removeEnabled value:true.
- self perModuleRootModule value:module.
- self perModuleRoot value:(entry at:2).
+ removeEnabled := false.
+ perModuleRootModule := ' '.
+ perModuleRoot := ''.
] ifFalse:[
- self removeEnabled value:false.
- self perModuleRootModule value:module , ' ',('<<use ',entry first managerTypeName,'>>') allBold.
- self perModuleRoot value:''.
- ].
+ entry := rootsPerModule at:module ifAbsent:#().
+ firstEntry := entry first.
+ (firstEntry = CVSSourceCodeManager) ifTrue:[
+ removeEnabled := true.
+ perModuleRootModule := module.
+ perModuleRoot := (entry at:2).
+ ] ifFalse:[
+ removeEnabled := false.
+ perModuleRootModule := module , ' ',('<<use ',firstEntry managerTypeName,'>>') allBold.
+ perModuleRoot := ''.
+ ].
+ ].
+
+ self removeEnabled value:removeEnabled.
+ self perModuleRootModule value:perModuleRootModule.
+ self perModuleRoot value:perModuleRoot.
!
sourceDirChanged
--- a/DebugView.st Sat May 14 07:05:55 2016 +0200
+++ b/DebugView.st Sun May 15 06:58:33 2016 +0200
@@ -1845,7 +1845,7 @@
label:(resources string:'Ignore this Halt/Break for some time (30s)')
model:ignoreForSomeTimeHolder);
add:(CheckBox
- label:(resources string:'Ignore this Halt/Break for ever')
+ label:(resources string:'Ignore this Halt/Break forever')
model:ignoreForEverHolder).
].
] do:[
--- a/FileBrowserV2UISpecifications.st Sat May 14 07:05:55 2016 +0200
+++ b/FileBrowserV2UISpecifications.st Sun May 15 06:58:33 2016 +0200
@@ -558,41 +558,6 @@
!FileBrowserV2UISpecifications::PanelSpec methodsFor:'computation'!
-recomputeHandlesIn:aPanel
- |subs isVertical|
-
- (subs := aPanel subViews) notNil ifTrue:[
- isVertical := self isVertical.
- ^ subs
- collect:
- [:v | |rel|
- rel := v relativeCorner.
- isVertical ifTrue:[ rel y] ifFalse:[ rel x ].
- ]
- ].
- ^ nil
-!
-
-setLayoutsInLayoutContainer:aPanel
- |x y subs isVertical|
-
- ((subs := aPanel subViews) notNil and:[subs size == handles size]) ifTrue:[
- isVertical := self isVertical.
- y := x := 0.0.
- subs keysAndValuesDo:[:i :v|
- isVertical ifTrue:[
- v relativeOrigin:(0.0 @ y).
- y := handles at:i.
- v relativeCorner:(1.0 @ y).
- ] ifFalse:[
- v relativeOrigin:(x @ 0.0).
- x := handles at:i.
- v relativeCorner:(x @ 1.0).
- ]
- ]
- ]
-!
-
setupInitialLayoutFor:aView
|superView|
--- a/NewLauncher.st Sat May 14 07:05:55 2016 +0200
+++ b/NewLauncher.st Sun May 15 06:58:33 2016 +0200
@@ -3753,10 +3753,11 @@
]
].
- makeInfoString := [:title :value |
+ makeInfoString :=
+ [:title :value |
|v|
v := value.
-value isString ifFalse:[v := '***' ].
+ value isString ifFalse:[v := '***' ].
(resources string:title) allBold
,': '
,(v withColor:(Color blue darkened))
@@ -3764,66 +3765,61 @@
].
bindings := Dictionary new.
- packageName isNil ifTrue:[
- bindings at:'PACKAGE' put:''.
- ] ifFalse:[
- bindings at:'PACKAGE' put:(makeInfoString value:'Pkg' value:packageName).
- ].
- packageNameOrNil isNil ifTrue:[
- bindings at:'PACKAGEOREMPTY' put:''.
- ] ifFalse:[
- bindings at:'PACKAGEOREMPTY' put:(makeInfoString value:'Pkg' value:packageNameOrNil).
- ].
-
- bindings
- at:'IMAGE'
- put:(makeInfoString value:'Img' value:image).
-
- bindings
- at:'NS' put:( defNameSpace == Smalltalk
- ifTrue:[ '' ]
- ifFalse:[ '"',defNameSpace name,'" '] ).
-
- bindings
- at:'PROJECTDIR'
- put:(makeInfoString value:'Dir' value:(projectDir contractTo: 30)).
-
-
- cvsRepository isNil ifTrue:[
- bindings at:'CVS' put:''
- ] ifFalse:[
- bindings at:'CVS' put:(makeInfoString value:'CVS' value:cvsRepository).
- ].
- storeDB isNil ifTrue:[
- bindings at:'DB' put:''.
- ] ifFalse:[
- bindings at:'DB' put:(makeInfoString value:'DB' value:storeDB).
- ].
- (cvsRepository isNil and:[storeDB isNil]) ifTrue:[
- bindings at:'NOREPOSITORY' put:' >','No Repository'allBold,'< '.
- ] ifFalse:[
- bindings at:'NOREPOSITORY' put:''.
- ].
+ bindings at:'PACKAGE'
+ put:( packageName isNil
+ ifTrue:[ '' ]
+ ifFalse:[ (makeInfoString value:'Pkg' value:packageName) ]).
+
+ bindings at:'PACKAGEOREMPTY'
+ put:( packageNameOrNil isNil
+ ifTrue:[ '' ]
+ ifFalse:[ (makeInfoString value:'Pkg' value:packageNameOrNil) ]).
+
+ bindings at:'IMAGE'
+ put:(makeInfoString value:'Img' value:image).
+
+ bindings at:'NS'
+ put:( defNameSpace == Smalltalk
+ ifTrue:[ '' ]
+ ifFalse:[ '"',defNameSpace name,'" '] ).
+
+ bindings at:'PROJECTDIR'
+ put:(makeInfoString value:'Dir' value:(projectDir contractTo: 30)).
+
+ bindings at:'CVS'
+ put:( cvsRepository isNil
+ ifTrue:[ '' ]
+ ifFalse:[ (makeInfoString value:'CVS' value:cvsRepository) ]).
+
+ bindings at:'DB'
+ put:( storeDB isNil
+ ifTrue:[ '' ]
+ ifFalse:[ (makeInfoString value:'DB' value:storeDB) ]).
+
+ bindings at:'NOREPOSITORY'
+ put: ((cvsRepository isNil and:[storeDB isNil])
+ ifTrue:[ (' >','No Repository'allBold,'< ') ]
+ ifFalse:[ '' ]).
svnRepositoryManagerClass := Smalltalk at:#'SVN::RepositoryManager'.
(svnRepositoryManagerClass notNil
- and:[ svnRepositoryManagerClass isLoaded
- and:[ svnRepositoryManagerClass enabled ]])
- ifTrue:[
- svnWorkDirBaseName := svnRepositoryManagerClass current workingCopyBase asFilename baseName.
-
- bindings
- at: 'SVN_WORKING_COPY'
- put: (makeInfoString value:'SVN Work' value:svnWorkDirBaseName).
- ] ifFalse:[
- bindings
- at: 'SVN_WORKING_COPY'
- put: ''
- ].
+ and:[ svnRepositoryManagerClass isLoaded
+ and:[ svnRepositoryManagerClass enabled ]]
+ ) ifTrue:[
+ svnWorkDirBaseName := svnRepositoryManagerClass current workingCopyBase asFilename baseName.
+
+ bindings
+ at: 'SVN_WORKING_COPY'
+ put: (makeInfoString value:'SVN Work' value:svnWorkDirBaseName).
+ ] ifFalse:[
+ bindings
+ at: 'SVN_WORKING_COPY'
+ put: ''
+ ].
projectInfo := self infoLineTemplate bindWithArguments:bindings.
self infoLabelHolder value:projectInfo.
- ^projectInfo.
+ ^ projectInfo.
! !
!NewLauncher methodsFor:'help'!
--- a/SystemBrowser.st Sat May 14 07:05:55 2016 +0200
+++ b/SystemBrowser.st Sun May 15 06:58:33 2016 +0200
@@ -3393,7 +3393,7 @@
browseImplementorsMatching:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase title:title
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
|list|
@@ -3430,7 +3430,7 @@
browseImplementorsMatching:aSelectorString in:aCollectionOfClasses title:title
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
^ self
browseImplementorsMatching:aSelectorString
@@ -3513,7 +3513,7 @@
browseImplementorsOf:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatch title:titleArg
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
doMatch ifTrue:[
self browseImplementorsOf:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase title:titleArg
@@ -3526,7 +3526,7 @@
browseImplementorsOf:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase title:titleArg
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
|list list2 rs selWithColon title top20 allSelectors choice but globalClass global globalName|
@@ -3660,14 +3660,13 @@
browseImplementorsOf:aSelectorString in:aCollectionOfClasses title:title
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
^ self
browseImplementorsOf:aSelectorString
in:aCollectionOfClasses
ignoreCase:false
title:title
-
!
browseImplementorsOf:aSelectorString under:aClass
@@ -3743,7 +3742,7 @@
browseImplementorsOfAny:setOfSelectors in:aCollectionOfClasses ignoreCase:ignoreCase title:title
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
|list|
@@ -3780,7 +3779,7 @@
browseImplementorsOfAny:setOfSelectors in:aCollectionOfClasses title:title
"launch a browser for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses"
+ the classes contained in aCollectionOfClasses and their metaclasses"
^ self
browseImplementorsOfAny:setOfSelectors
@@ -4561,7 +4560,7 @@
findImplementors:aSelectorMatchString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatch
"search for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods"
|lcSelector list compare testST testJava srchBlockST srchBlockJava|
@@ -4672,7 +4671,7 @@
findImplementorsMatching:aSelectorMatchString in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods"
^ self
@@ -4693,7 +4692,7 @@
findImplementorsMatchingAny:aCollectionOfSelectors in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all implementors of any in aCollectionOfSelectors in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods.
CAVEAT: searches multiple times (could be tuned alot if heavily used)"
@@ -4722,7 +4721,7 @@
findImplementorsOf:aSelectorMatchString in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all implementors of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods"
^ self
@@ -4741,7 +4740,7 @@
findImplementorsOfAny:aCollectionOfSelectors in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all implementors of any in aCollectionOfSelectors in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods.
CAVEAT: searches multiple times (could be tuned alot if heavily used)"
@@ -4947,9 +4946,30 @@
"Created: / 06-07-2011 / 12:14:24 / cg"
!
+findRespondersOfAll:aCollectionOfSelectors in:aCollectionOfClasses ignoreCase:ignoreCase
+ "search for all classes which respond to all of the selectors in aCollectionOfSelectors.
+ Search within the classes contained in aCollectionOfClasses and their metaclasses.
+ This will skip over unloaded classes.
+ Return a collection of classes."
+
+ ^ Smalltalk allClasses
+ select:[:cls |
+ cls isLoaded
+ and:[ aCollectionOfSelectors conform:[:sel | cls canUnderstand:sel]]].
+
+ "
+ to find classes which respond to both indexOf: and replaceFromIndex:toIndex:,
+ use:
+ SystemBrowser
+ findRespondersOfAll:#( indexOf: removeFromIndex:toIndex: )
+ in:nil
+ ignoreCase:false
+ "
+!
+
findSendersOf:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all senders of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods"
^ self allCallsOn:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:true
@@ -4965,7 +4985,7 @@
findSendersOf:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatch
"search for all senders of aSelector in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods"
^ self allCallsOn:aSelectorString in:aCollectionOfClasses ignoreCase:ignoreCase match:doMatch
@@ -5003,7 +5023,7 @@
findSendersOfAny:aCollectionOfSelectors in:aCollectionOfClasses ignoreCase:ignoreCase
"search for all senders of any selector in aCollectionOfSelectors in
- the classes contained in aCollectionOfClasses and its metaclasses.
+ the classes contained in aCollectionOfClasses and their metaclasses.
Return a collection of methods.
CAVEAT: searches multiple times (could be tuned alot if heavily used)"
--- a/Tools__CodeView2.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__CodeView2.st Sun May 15 06:58:33 2016 +0200
@@ -1652,7 +1652,12 @@
"/ only do it, if the services have not yet been defined by the user of this view
"/ (FileBrowser does not want Smalltalk-specific services)
servicesFromClient ifFalse:[
- serviceClasses := self defaultServices sort:[:a :b|a priority = b priority ifTrue:[a name < b name] ifFalse:[a priority > b priority]].
+ serviceClasses := self defaultServices
+ sort:[:a :b|
+ a priority = b priority
+ ifTrue:[a name < b name]
+ ifFalse:[a priority > b priority]
+ ].
serviceClasses do:[:cls|
self registerService: cls new
].
--- a/Tools__HierarchicalLintRuleList.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__HierarchicalLintRuleList.st Sun May 15 06:58:33 2016 +0200
@@ -82,45 +82,69 @@
<resource: #canvas>
^
- #(FullSpec
- name: windowSpec
- window:
- (WindowSpec
- label: 'SmallLintRuleList'
- name: 'SmallLintRuleList'
- min: (Point 10 10)
- bounds: (Rectangle 0 0 300 300)
- )
- component:
- (SpecCollection
- collection: (
- (HierarchicalListViewSpec
- name: 'RuleList'
- layout: (LayoutFrame 0 0 23 0 0 1 0 1)
- model: listSelection
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- listModel: listHolder
- useIndex: false
- highlightMode: line
- showLines: false
- useDefaultIcons: false
- postBuildCallback: postBuildList:
- )
- (InputFieldSpec
- name: 'RuleFilter'
- layout: (LayoutFrame 0 0 0 0 0 1 22 0)
- model: filterHolder
- immediateAccept: true
- acceptOnReturn: true
- acceptOnTab: true
- acceptOnPointerLeave: true
- emptyFieldReplacementText: 'Rule Search'
- )
+ #(FullSpec
+ name: windowSpec
+ window:
+ (WindowSpec
+ label: 'SmallLintRuleList'
+ name: 'SmallLintRuleList'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 300 300)
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (InputFieldSpec
+ name: 'RuleFilter'
+ layout: (LayoutFrame 0 0 0 0 0 1 30 0)
+ model: filterHolder
+ immediateAccept: true
+ acceptOnReturn: true
+ acceptOnTab: true
+ acceptOnPointerLeave: true
+ emptyFieldReplacementText: 'Rule Search'
)
-
- )
- )
+ (HierarchicalListViewSpec
+ name: 'RuleList'
+ layout: (LayoutFrame 0 0 30 0 0 1 0 1)
+ model: listSelection
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ listModel: listHolder
+ useIndex: false
+ highlightMode: line
+ showLines: false
+ useDefaultIcons: false
+ postBuildCallback: postBuildList:
+ )
+ )
+
+ )
+ )
+! !
+
+!HierarchicalLintRuleList class methodsFor:'plugIn spec'!
+
+aspectSelectors
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this. If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "Return a description of exported aspects;
+ these can be connected to aspects of an embedding application
+ (if this app is embedded in a subCanvas)."
+
+ ^ #(
+ #environmentHolder
+ #inGeneratorHolder
+ #listSelection
+ #modeHolder
+ #outGeneratorHolder
+ #selectionHolder
+ ).
+
! !
!HierarchicalLintRuleList methodsFor:'aspects'!
@@ -180,10 +204,10 @@
!HierarchicalLintRuleList class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__HierarchicalLintRuleList.st,v 1.8 2014-11-19 21:40:20 cg Exp $'
+ ^ '$Header$'
!
version_SVN
- ^ '$Id: Tools__HierarchicalLintRuleList.st,v 1.8 2014-11-19 21:40:20 cg Exp $'
+ ^ '$Id$'
! !
--- a/Tools__LintRuleEditDialog.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__LintRuleEditDialog.st Sun May 15 06:58:33 2016 +0200
@@ -122,7 +122,7 @@
label: 'Select Lint Rules'
name: 'Select Lint Rules'
min: (Point 10 10)
- bounds: (Rectangle 0 0 600 400)
+ bounds: (Rectangle 0 0 630 644)
)
component:
(SpecCollection
@@ -151,7 +151,7 @@
)
(InputFieldSpec
name: 'EntryField1'
- layout: (LayoutFrame 60 0 3 0 0 1 -2 1)
+ layout: (LayoutFrame 60 0 3 0 -2 1 -2 1)
enableChannel: nameEditableHolder
model: nameHolder
acceptOnReturn: true
@@ -161,18 +161,18 @@
)
)
- extent: (Point 600 25)
+ extent: (Point 630 30)
)
(ViewSpec
name: 'Spacer'
- extent: (Point 600 7)
+ extent: (Point 630 7)
)
(LabelSpec
label: 'Rules'
name: 'Label2'
translateLabel: true
adjust: left
- extent: (Point 600 25)
+ extent: (Point 630 25)
)
(VariableVerticalPanelSpec
name: 'VariableVerticalPanel1'
@@ -232,8 +232,8 @@
)
)
- extent: (Point 600 304)
- handles: (Any 0.75000000000000011 1.0)
+ extent: (Point 630 543)
+ handles: (Any 0.47999999999999998 1.0)
)
)
@@ -241,7 +241,7 @@
)
(HorizontalPanelViewSpec
name: 'ButtonPanel'
- layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
+ layout: (LayoutFrame 0 0 -30 1 -16 1 0 1)
horizontalLayout: fitSpace
verticalLayout: center
horizontalSpace: 3
@@ -255,7 +255,8 @@
name: 'CancelButton'
translateLabel: true
model: doCancel
- extent: (Point 295 22)
+ extent: (Point 301 31)
+ usePreferredHeight: true
)
(ActionButtonSpec
label: 'OK'
@@ -264,7 +265,8 @@
model: doAccept
isDefault: true
defaultable: true
- extent: (Point 296 22)
+ extent: (Point 301 31)
+ usePreferredHeight: true
)
)
@@ -473,10 +475,10 @@
!LintRuleEditDialog class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleEditDialog.st,v 1.4 2015-01-23 13:26:11 cg Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleEditDialog.st,v 1.4 2015-01-23 13:26:11 cg Exp $'
+ ^ '$Header$'
! !
--- a/Tools__LintRuleList.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__LintRuleList.st Sun May 15 06:58:33 2016 +0200
@@ -130,45 +130,45 @@
<resource: #canvas>
^
- #(FullSpec
- name: windowSpec
- window:
- (WindowSpec
- label: 'SmallLintRuleList'
- name: 'SmallLintRuleList'
- min: (Point 10 10)
- bounds: (Rectangle 0 0 300 300)
- )
- component:
- (SpecCollection
- collection: (
- (InputFieldSpec
- name: 'RuleFilter'
- layout: (LayoutFrame 0 0 0 0 0 1 22 0)
- model: filterHolder
- immediateAccept: true
- acceptOnReturn: true
- acceptOnTab: true
- acceptOnPointerLeave: true
- emptyFieldReplacementText: 'Search...'
- )
- (SelectionInListModelViewSpec
- name: 'RuleList'
- layout: (LayoutFrame 0 0 23 0 0 1 0 1)
- model: listSelection
- menu: menuHolder
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- listModel: listHolder
- multipleSelectOk: true
- useIndex: false
- highlightMode: line
- postBuildCallback: postBuildList:
- )
+ #(FullSpec
+ name: windowSpec
+ window:
+ (WindowSpec
+ label: 'SmallLintRuleList'
+ name: 'SmallLintRuleList'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 300 300)
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (InputFieldSpec
+ name: 'RuleFilter'
+ layout: (LayoutFrame 0 0 0 0 0 1 28 0)
+ model: filterHolder
+ immediateAccept: true
+ acceptOnReturn: true
+ acceptOnTab: true
+ acceptOnPointerLeave: true
+ emptyFieldReplacementText: 'Search...'
)
-
- )
- )
+ (SelectionInListModelViewSpec
+ name: 'RuleList'
+ layout: (LayoutFrame 0 0 28 0 0 1 0 1)
+ model: listSelection
+ menu: menuHolder
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ listModel: listHolder
+ multipleSelectOk: true
+ useIndex: false
+ highlightMode: line
+ postBuildCallback: postBuildList:
+ )
+ )
+
+ )
+ )
! !
!LintRuleList class methodsFor:'menu specs'!
@@ -226,7 +226,7 @@
(if this app is embedded in a subCanvas)."
^ #(
- environmentHolder
+ #environmentHolder
#inGeneratorHolder
#listSelection
#modeHolder
@@ -234,7 +234,6 @@
#selectionHolder
).
- "Modified: / 24-02-2014 / 10:37:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LintRuleList methodsFor:'accessing'!
--- a/Tools__LintRuleSelectionDialog.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__LintRuleSelectionDialog.st Sun May 15 06:58:33 2016 +0200
@@ -140,7 +140,7 @@
label: 'Select Lint Rules'
name: 'Select Lint Rules'
min: (Point 10 10)
- bounds: (Rectangle 0 0 580 373)
+ bounds: (Rectangle 0 0 603 569)
)
component:
(SpecCollection
@@ -217,8 +217,8 @@
)
)
(HorizontalPanelViewSpec
- name: 'BottonPanel'
- layout: (LayoutFrame 10 0 -40 1 -10 1 0 1)
+ name: 'ButtonPanel'
+ layout: (LayoutFrame 10 0 -40 1 -16 1 0 1)
horizontalLayout: okCancelBox
verticalLayout: center
horizontalSpace: 3
@@ -232,7 +232,8 @@
name: 'CancelButton'
translateLabel: true
model: doCancel
- extent: (Point 275 25)
+ extent: (Point 282 25)
+ usePreferredHeight: true
)
(ActionButtonSpec
label: 'OK'
@@ -241,7 +242,8 @@
model: doAccept
isDefault: true
defaultable: true
- extent: (Point 276 22)
+ extent: (Point 283 22)
+ usePreferredHeight: true
)
)
@@ -371,14 +373,14 @@
!LintRuleSelectionDialog class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.14 2015-02-26 08:01:38 vrany Exp $'
+ ^ '$Header$'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__LintRuleSelectionDialog.st,v 1.14 2015-02-26 08:01:38 vrany Exp $'
+ ^ '$Header$'
!
version_SVN
- ^ '$Id: Tools__LintRuleSelectionDialog.st,v 1.14 2015-02-26 08:01:38 vrany Exp $'
+ ^ '$Id$'
! !
--- a/Tools__NewSystemBrowser.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__NewSystemBrowser.st Sun May 15 06:58:33 2016 +0200
@@ -21,7 +21,8 @@
syntaxColoringProcessRunning syntaxColoringProcess
methodInfoProcess browsletShowHideLabelHolder browserPageCanvas
isEmbedded hasNonEmptyEnvironmentSelectedHolder
- smalllintRulesOrAllHolder smalllintRulesOrDefaultHolder'
+ smalllintRulesOrAllHolder smalllintRulesOrDefaultHolder
+ explainProcess'
classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
LastNameSpaceMove LastMethodMoveOrCopyTargetClass
@@ -49,7 +50,8 @@
LastClassSearchBoxShowedFullName CachedTagToRevisionMapping
CachedMethodsImplemented LastCypressDirectory
LastClassSearchBoxShowedJavaOnly LastRemoteRepository
- LastClassDocDirectory DefaultShowCoverage LastLintedPackage'
+ LastClassDocDirectory DefaultShowCoverage LastLintedPackage
+ LastSearchedImplementors LastSearchedSenders'
poolDictionaries:''
category:'Interface-Browsers-New'
!
@@ -28070,7 +28072,7 @@
self selectedCategoryClassesDo:[:eachClass |
self recompileClassWithInstrumentation:eachClass
].
- self infoLabelHolder value:nil.
+ self showInfo:nil.
self askForGlobalCoverageRecording.
"Created: / 31-05-2012 / 09:15:44 / cg"
@@ -28821,7 +28823,7 @@
THis is called from a background worker - see smallLintRun:onEnvironment:
"
- | rules checker numOverAll count lastPercentage|
+ | rules checker numOverAll count lastPercentage timeOfLastFeedback|
"/ avoid this reference (for project-dependencies). Should this method be an extension, maybe
"/ checker := SmalllintChecker.
@@ -28832,6 +28834,7 @@
numOverAll := aBrowserEnvironment numberClasses * 2 "tests class AND metaclass" * rules size.
count := 0.
lastPercentage := nil.
+ timeOfLastFeedback := Timestamp now.
rules withIndexDo:[:rule :index|
|t ruleName ruleClassName|
@@ -28849,11 +28852,19 @@
runRule: rule
onEnvironment: aBrowserEnvironment
progressFeedBackInto:[:classBeingChecked |
- |msg percentage|
+ |msg percentage now|
count := count + 1.
percentage := ((count-1) / numOverAll * 100).
- lastPercentage ~= percentage ifTrue:[
+ (lastPercentage isNil
+ or:[
+ (lastPercentage ~= (percentage roundTo:2))
+ and:[
+ now := Timestamp now.
+ (now - timeOfLastFeedback > 100 milliseconds)
+ ]
+ ]
+ ) ifTrue:[
msg := ('Checking: ' withColor:Color grey)
, ruleName
, ((' (',ruleClassName,')')withColor:Color grey).
@@ -28865,7 +28876,8 @@
messageText: msg;
parameter: percentage;
raiseRequest.
- lastPercentage := percentage.
+ lastPercentage := (percentage roundTo:2).
+ timeOfLastFeedback := now ifNil:[Timestamp now].
].
].
] value. "/ benchmark: rule name, ': '.
@@ -31950,7 +31962,7 @@
self selectedClassesDo:[:eachClass |
self recompileClassWithInstrumentation:eachClass
].
- self infoLabelHolder value:nil.
+ self showInfo:nil.
self askForGlobalCoverageRecording.
"Modified: / 10-08-2010 / 14:36:42 / cg"
@@ -39071,18 +39083,26 @@
aChange execute
!
-performRefactoring:aRefactoring
- |rslt|
-
- aRefactoring isNil ifTrue:[
- ^ self
- ].
-
+performRefactoring:refactoringArg
+ |rslt aRefactoring|
+
+ (aRefactoring := refactoringArg) isNil ifTrue:[
+ ^ self
+ ].
+
+ "/ workaround a bug in jan's fixes
+ "/ - these call me with a ChangeSet, whereas here a Refactoring is expected.
+ (aRefactoring class == ChangeSet) ifTrue:[
+ self halt.
+"/ refactoring :=
+ ].
+
rslt := self
handlingRefactoringErrorDo:
[
| changes |
- aRefactoring isRefactoryChange ifTrue:[
+
+ (aRefactoring isRefactoryChange) ifTrue:[
changes := aRefactoring.
(UserPreferences current confirmRefactorings and:[changes shouldBeConfirmed]) ifTrue:[
changes := ChangeSetBrowser2 confirmChanges: changes.
@@ -39841,7 +39861,7 @@
self recompileClassWithInstrumentation:eachClass
].
- self infoLabelHolder value:nil.
+ self showInfo:nil.
self askForGlobalCoverageRecording.
self runTestCasesWithDebug:false protocols:nil.
@@ -43303,7 +43323,7 @@
self selectedProjectClasses do:[:eachClass |
self recompileClassWithInstrumentation:eachClass
].
- self infoLabelHolder value:nil.
+ self showInfo:nil.
self askForGlobalCoverageRecording.
"Created: / 27-04-2010 / 12:39:43 / cg"
@@ -44117,7 +44137,7 @@
self selectedProjectClasses do:[:eachClass |
|text f fn|
- self infoLabelHolder value:'Generating doc for ',eachClass name, '...'.
+ self showInfo:('Generating doc for %1...' bindWith:eachClass name).
text := docGenerator htmlDocOf:eachClass.
text notNil ifTrue:[
fn := eachClass classFilename asFilename withSuffix:'html'.
@@ -44126,7 +44146,7 @@
f close.
]
].
- self infoLabelHolder value:'Done.'.
+ self showInfo:'Done.'.
!
selectedProjectsDo:aBlock
@@ -49289,33 +49309,41 @@
] ifFalse:[
label := resources string:labelPrefix.
].
-
- searchBlock := [
- |list|
-
- (list := cachedList) notNil ifTrue:[
- cachedList := nil
+ LastSearchedImplementors isNil ifTrue:[
+ LastSearchedImplementors := OrderedCollection new.
+ ].
+ LastSearchedImplementors addAllFirst: aSelectorCollection.
+ LastSearchedImplementors size > 20 ifTrue:[
+ LastSearchedImplementors removeFromIndex:21
+ ].
+
+ searchBlock :=
+ [
+ |list|
+
+ (list := cachedList) notNil ifTrue:[
+ cachedList := nil
+ ] ifFalse:[
+ list := IdentitySet new.
+ aSelectorCollection do:[:aSelector |
+ doMatch ifTrue:[
+ list addAll:(self class
+ findImplementorsMatching:aSelector
+ in:classes
+ ignoreCase:false
+ )
] ifFalse:[
- list := IdentitySet new.
- aSelectorCollection do:[:aSelector |
- doMatch ifTrue:[
- list addAll:(self class
- findImplementorsMatching:aSelector
- in:classes
- ignoreCase:false
- )
- ] ifFalse:[
- list addAll:(self class
- findImplementorsOf:aSelector
- in:environment allClasses
- ignoreCase:false
- )
- ].
- ].
- list := list asOrderedCollection
+ list addAll:(self class
+ findImplementorsOf:aSelector
+ in:environment allClasses
+ ignoreCase:false
+ )
].
- list
- ].
+ ].
+ list := list asOrderedCollection
+ ].
+ list
+ ].
cachedList := searchBlock value.
(cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
@@ -55252,7 +55280,7 @@
label:'Stop this';
action:[
stop := true.
- self infoLabelHolder value:'One moment, please...'.
+ self showInfo:'One moment, please...'.
indicator topView label:'Stopping...'
].
].
@@ -56134,11 +56162,11 @@
|result moreResults extensionMethods arguments2|
ProgressNotification handle:[:ex |
- self infoLabelHolder value:('Searching... (%1%% done)%2'
- bindWith:(ex progressValue truncated)
- with:((Class tryLocalSourceFirst or:[UserPreferences current keepMethodSourceCode])
- ifFalse:[ ' - tune this by enabling method source cache in the SCM settings dialog']
- ifTrue:[''])).
+ self showInfo:('Searching... (%1%% done)%2'
+ bindWith:(ex progressValue truncated)
+ with:((Class tryLocalSourceFirst or:[UserPreferences current keepMethodSourceCode])
+ ifFalse:[ ' - tune this by enabling method source cache in the SCM settings dialog']
+ ifTrue:[''])).
ex proceed.
] do:[
selector notNil ifTrue:[
@@ -56166,7 +56194,7 @@
].
].
].
- self infoLabelHolder value:nil.
+ self showInfo:nil.
result
].
@@ -58667,6 +58695,7 @@
showInfo:msg
self navigationState showingParseError:false.
+ ((msg?'') startsWith:'ChangesBrowser:') ifTrue:[self halt].
self infoLabelHolder value:msg.
"
--- a/Tools__TestRunner2.st Sat May 14 07:05:55 2016 +0200
+++ b/Tools__TestRunner2.st Sun May 15 06:58:33 2016 +0200
@@ -1337,7 +1337,7 @@
].
].
- browser infoLabelHolder value:nil.
+ browser showInfo:nil.
self withWaitCursorDo:[
InstrumentationContext runForCoverage:[
result := self runSuite: self selectedTestSuite.