equal
deleted
inserted
replaced
2728 I.e. right after a receiver (w.o. any input yet)" |
2728 I.e. right after a receiver (w.o. any input yet)" |
2729 |
2729 |
2730 |knownClass suggestions selectorsImplementedInClass mostUseful editActions pos| |
2730 |knownClass suggestions selectorsImplementedInClass mostUseful editActions pos| |
2731 |
2731 |
2732 (knownClass := self classOfNode:node) isEmptyOrNil ifTrue:[ |
2732 (knownClass := self classOfNode:node) isEmptyOrNil ifTrue:[ |
2733 self breakPoint:#cg. |
2733 "/ self breakPoint:#cg. |
2734 "/ self classOfNode:node. |
2734 "/ self classOfNode:node. |
2735 ^ self |
2735 ^ self |
2736 ]. |
2736 ]. |
2737 |
2737 |
2738 Verbose == true ifTrue:[ |
2738 Verbose == true ifTrue:[ |
2795 self editActionToReplaceCodeFrom:pos to:pos-1 by:word. |
2795 self editActionToReplaceCodeFrom:pos to:pos-1 by:word. |
2796 ]. |
2796 ]. |
2797 actionBlock value:suggestions value:editActions value:nil. |
2797 actionBlock value:suggestions value:editActions value:nil. |
2798 |
2798 |
2799 "Created: / 01-05-2016 / 17:01:21 / cg" |
2799 "Created: / 01-05-2016 / 17:01:21 / cg" |
2800 "Modified: / 15-09-2017 / 10:57:25 / cg" |
2800 "Modified: / 10-10-2017 / 16:57:21 / cg" |
2801 ! |
2801 ! |
2802 |
2802 |
2803 codeCompletionForMethodSpec:node |
2803 codeCompletionForMethodSpec:node |
2804 "completion in a method's selector pattern" |
2804 "completion in a method's selector pattern" |
2805 |
2805 |
5935 expr isMessage ifTrue:[ |
5935 expr isMessage ifTrue:[ |
5936 exprSelector := expr selector. |
5936 exprSelector := expr selector. |
5937 ( #(+ - * /) includes:exprSelector ) ifTrue:[ |
5937 ( #(+ - * /) includes:exprSelector ) ifTrue:[ |
5938 setOfTypes add:Number |
5938 setOfTypes add:Number |
5939 ] ifFalse:[ |
5939 ] ifFalse:[ |
5940 ( #(// size) includes:exprSelector ) ifTrue:[ |
5940 ( #(// size basicSize position) includes:exprSelector ) ifTrue:[ |
5941 setOfTypes add:Integer |
5941 setOfTypes add:Integer |
5942 ] ifFalse:[ |
5942 ] ifFalse:[ |
5943 ( #(copy shallowCopy) includes:exprSelector ) ifTrue:[ |
5943 ( #(copy shallowCopy) includes:exprSelector ) ifTrue:[ |
5944 ] ifFalse:[ |
5944 ] ifFalse:[ |
5945 ( #(new new: basicNew basicNew:) includes:exprSelector ) ifTrue:[ |
5945 ( #(new new: basicNew basicNew:) includes:exprSelector ) ifTrue:[ |
5961 ]. |
5961 ]. |
5962 ] |
5962 ] |
5963 ] |
5963 ] |
5964 ]. |
5964 ]. |
5965 ^ setOfTypes |
5965 ^ setOfTypes |
|
5966 |
|
5967 "Modified: / 11-10-2017 / 13:58:36 / cg" |
5966 ! |
5968 ! |
5967 |
5969 |
5968 addClassesOfMessage:expr inClass:classOrNil to:setOfTypes |
5970 addClassesOfMessage:expr inClass:classOrNil to:setOfTypes |
5969 |valClass |
5971 |valClass |
5970 msgSelector msgReceiver msgArg1 |
5972 msgSelector msgReceiver msgArg1 |
6136 |
6138 |
6137 classOfNode:aNode |
6139 classOfNode:aNode |
6138 "returns the class of a receiver, if it is well-known. |
6140 "returns the class of a receiver, if it is well-known. |
6139 Otherwise nil (either unknown, or multiple possibilities) |
6141 Otherwise nil (either unknown, or multiple possibilities) |
6140 When showing possible completions for a message, |
6142 When showing possible completions for a message, |
6141 it is a good idea to know what the kind receiver is." |
6143 it is a good idea to know what the receiver is." |
6142 |
6144 |
6143 | classes | |
6145 | classes | |
6144 |
6146 |
6145 classes := self classesOfNode:aNode. |
6147 classes := self classesOfNode:aNode. |
6146 classes size == 1 ifTrue:[ |
6148 classes size == 1 ifTrue:[ |
6147 ^ classes anElement |
6149 ^ classes anElement |
6148 ]. |
6150 ]. |
6149 self breakPoint:#cg. |
6151 "/ self breakPoint:#cg. |
6150 ^ nil |
6152 ^ nil |
|
6153 |
|
6154 "Modified: / 10-10-2017 / 16:56:43 / cg" |
6151 ! |
6155 ! |
6152 |
6156 |
6153 classesFromAssignmentTo:varName in:aTree |
6157 classesFromAssignmentTo:varName in:aTree |
6154 ^ self addClassesFromAssignmentTo:varName in:aTree to:IdentitySet new |
6158 ^ self addClassesFromAssignmentTo:varName in:aTree to:IdentitySet new |
6155 ! |
6159 ! |