SmallSense__MethodBindingPO.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 25 Oct 2017 23:42:41 +0100
changeset 1058 6d4bf422a7dd
parent 421 0d146090b05a
permissions -rw-r--r--
Fix subscript out of bounds error in Smalltalk inderences ...caused by missing size-check when analysing typed prefix.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
280
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
374
e65bd2bf892a Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 280
diff changeset
     3
Copyright (C) 2013-2015 Jan Vrany
280
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This library is free software; you can redistribute it and/or
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
License as published by the Free Software Foundation; either
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
version 2.1 of the License. 
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
This library is distributed in the hope that it will be useful,
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
Lesser General Public License for more details.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
License along with this library; if not, write to the Free Software
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
PO subclass:#MethodBindingPO
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	instanceVariableNames:'binding'
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'SmallSense-Java-Interface-PO'
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!MethodBindingPO class methodsFor:'documentation'!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
copyright
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
374
e65bd2bf892a Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 280
diff changeset
    35
Copyright (C) 2013-2015 Jan Vrany
280
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
This library is free software; you can redistribute it and/or
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
License as published by the Free Software Foundation; either
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
version 2.1 of the License. 
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
This library is distributed in the hope that it will be useful,
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
Lesser General Public License for more details.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
License along with this library; if not, write to the Free Software
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!MethodBindingPO methodsFor:'accessing'!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
binding
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    ^ binding
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
binding:b
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    binding := b.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
label
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Return a text to be displayed. The label may be cached
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
     `label` instvar."
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    label isNil ifTrue:[
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
        | descriptor |
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
        descriptor := binding signature.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
        label := JavaMethod specTextFromSignature:descriptor in: nil withName: binding selector isConstructor: binding isConstructor.   
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
"/        | parameters |
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
"/
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
"/        label := String streamContents: [ :s |
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
"/            s nextPutAll: binding selector.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
"/            s nextPut: $(.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
"/            parameters := binding parameters.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
"/            parameters notEmptyOrNil ifTrue:[ 
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
"/                s nextPutAll: parameters first displayString.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
"/                parameters size > 1 ifTrue:[ 
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
"/                    1 to: parameters size do:[:i |  
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
"/                        s nextPutAll: ', '.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
"/                        s nextPutAll: (parameters at: i) displayString.
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
"/                    ]
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
"/                ].
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
"/            ].
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
"/            s nextPut: $).
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
"/        ]
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    ].
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    ^ label
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    "Created: / 13-08-2014 / 22:33:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
stringToCompleteForLanguage:aProgrammingLanguage
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    ^ binding selector , '()'
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "Created: / 13-08-2014 / 22:39:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
! !
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
!MethodBindingPO methodsFor:'testing'!
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
isSmallSenseMethodBindingPO
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    ^ true
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    "Created: / 13-08-2014 / 22:44:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
! !
100db0f8279b Support for completing Java methods (only first level).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
421
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   111
!MethodBindingPO class methodsFor:'documentation'!
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   112
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   113
version_HG
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   114
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   115
    ^ '$Changeset: <not expanded> $'
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   116
! !
0d146090b05a UI: added parse tree inspector tab RBProgramNode
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 374
diff changeset
   117