Fix in code completion - do not add same method multiple times into completion list.
--- a/SmallSense__CompletionEngine.st Mon Oct 14 15:14:48 2013 +0100
+++ b/SmallSense__CompletionEngine.st Wed Oct 16 15:44:43 2013 +0100
@@ -73,7 +73,9 @@
| classes |
classes := selectors at: selector ifAbsentPut:[ Set new ].
- classes add: mthd mclass.
+ (classes includes: mthd mclass) ifFalse:[
+ classes add: mthd mclass.
+ ].
].
]
].
@@ -87,5 +89,6 @@
]
"Created: / 03-10-2013 / 17:56:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-10-2013 / 15:35:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/SmallSense__SmalltalkCompletionEngine.st Mon Oct 14 15:14:48 2013 +0100
+++ b/SmallSense__SmalltalkCompletionEngine.st Wed Oct 16 15:44:43 2013 +0100
@@ -160,7 +160,7 @@
!
addMethodsForType: type
- | classes |
+ | classes seen |
classes := type classes.
classes size == 1 ifTrue:[
@@ -187,12 +187,14 @@
].
+ seen := Set new.
type
classesDo: [:each |
| class |
class := each.
- [ class isNil ] whileFalse: [
+ [ class notNil and:[(seen includes: class) not]] whileTrue: [
+ seen add: class.
"/ Now, special care for Java classes, sigh...
(class isMetaclass and:[class theNonMetaclass isJavaClass]) ifTrue:[
class theNonMetaclass selectorsAndMethodsDo: [:selector :met |
@@ -212,11 +214,11 @@
].
].
class := class superclass.
- ].
+ ]
].
"Created: / 26-11-2011 / 17:03:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 08-10-2013 / 11:05:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 16-10-2013 / 15:40:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
addPools