DoWhatIMeanSupport.st
changeset 5621 bc187db92ab4
parent 5613 46c0f7f9b92c
child 5633 f888f84e67f7
equal deleted inserted replaced
5620:86c569016e90 5621:bc187db92ab4
  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 !