#FEATURE by cg
class: Tools::NewSystemBrowser
changed:
#codeMenuRemoveInstanceVariable:inClass:
#delayedUpdateCodeWithAutoSearch:scrollToTop:checkModified:
--- a/Tools__NewSystemBrowser.st Sat Mar 16 14:54:13 2019 +0100
+++ b/Tools__NewSystemBrowser.st Wed Mar 20 17:19:43 2019 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2000 by eXept Software AG
All Rights Reserved
@@ -24825,16 +24823,20 @@
].
first := false.
s nextPutAll:'Classes in package: ',eachPackage allBold.
- defClass := eachPackage asPackageId projectDefinitionClass.
- defClass isNil ifTrue:[
- mthd := nil.
- ] ifFalse:[
- mthd := defClass theMetaclass compiledMethodAt:#documentation.
- ].
- (mthd isNil or:[mthd comment isNil]) ifTrue:[
- s cr; nextPutLine:' Sorry, the package does not seem to provide documentation'
- ] ifFalse:[
- s nextPutAll:(mthd comment).
+ (eachPackage = PackageId noProjectID) ifTrue:[
+ s cr; nextPutLine:' Classes and methods found here have not yet been checked into the repository'
+ ] ifFalse:[
+ defClass := eachPackage asPackageId projectDefinitionClass.
+ defClass isNil ifTrue:[
+ mthd := nil.
+ ] ifFalse:[
+ mthd := defClass theMetaclass compiledMethodAt:#documentation.
+ ].
+ (mthd isNil or:[mthd comment isNil]) ifTrue:[
+ s cr; nextPutLine:' Sorry, the package does not seem to provide documentation'
+ ] ifFalse:[
+ s nextPutAll:(mthd comment).
+ ].
].
].
].
@@ -24900,7 +24902,7 @@
self updateProtocolSelectionForChangedMethodSelection.
"Created: / 13-06-2018 / 11:24:03 / Claus Gittinger"
- "Modified (comment): / 03-03-2019 / 16:23:01 / Claus Gittinger"
+ "Modified: / 20-03-2019 / 17:17:42 / Claus Gittinger"
!
delayedVariableSelectionChanged
@@ -40227,6 +40229,19 @@
methods := self class
findInstRefsTo:oldName
under:cls access:#readOrWrite.
+
+ "/ ST/X allows it temporarily (i.e. during refactoring)
+ "/ that an instvar is defined both in a superclass and in a
+ "/ subclass. When executed, the access will be to the lowest
+ "/ in the inheritance tree.
+ "/ (stc does not allow this, but during class-refactorings,
+ "/ it is convenient to allow this).
+ "/ so check, if it is really the instvar from here,
+ "/ which is going to be removed (i.e. if there is not another one)
+ methods := methods reject:[:m |
+ (m mclass whichClassDefinesInstVar:oldName) ~~ cls
+ ].
+
methods notEmpty ifTrue:[
whatTypeOfMethods := 'method'.
(methods conform:[:m |
@@ -40268,6 +40283,8 @@
"/ refactoring := RemoveInstanceVariableRefactoring variable:oldName class:cls.
"/ refactoring model name:('remove instvar %1 from %2' bindWith:oldName with:cls name).
self performRefactoring:refactoring.
+
+ "Modified: / 20-03-2019 / 17:14:19 / Claus Gittinger"
!
codeMenuRemoveParameter
@@ -48944,7 +48961,7 @@
dummyChangeSet := ChangeSet new addAll:previousMethods; yourself.
dummyChangeSet reverse. "/ youngest first.
browser := (UserPreferences current changeSetBrowserClass) openOn:dummyChangeSet.
- browser label:(resources string:'Previous Versions of %1' with:(m whoStringWith:' » ')).
+ browser label:(resources string:'Previous Versions of %1' with:(m whoStringWith:' » ')).
browser perform:#rightCodeLabel: with:'Previous Version' ifNotUnderstood:[].
browser readOnly:true.
@@ -49171,7 +49188,7 @@
self activityNotification:nil.
browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods.
- browser window label:(resources string:'Revisions of %1 » %2' with:mclass name with:mselector).
+ browser window label:(resources string:'Revisions of %1 » %2' with:mclass name with:mselector).
browser readOnly:true.
].
@@ -53857,7 +53874,7 @@
label:[:chg |
|lbl|
"/ lbl := chg printString
- lbl := (chg className ? '???') , ' » ' , (chg selector ? '???') allBold.
+ lbl := (chg className ? '???') , ' » ' , (chg selector ? '???') allBold.
(chg isMethodChange and:[chg changeMethod isNil]) ifTrue:[
lbl := lbl asText allStrikedOut,' ','(removed)' allItalic.
].