Support for Tab in code completion.
Pressing Tab when code completion window is open completes longes common prefix
of items matching already typed text. If no text can be completed, flashes the completion
popup.
"{ Package: 'jv:smallsense' }"
"{ NameSpace: SmallSense }"
PO subclass:#VariablePO
instanceVariableNames:'class type'
classVariableNames:''
poolDictionaries:''
category:'SmallSense-Core-Interface-PO'
!
!VariablePO class methodsFor:'instance creation'!
argument: name
^self new name: name; type: #MethodArg
"Created: / 26-11-2011 / 18:45:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
classVariable: name in: class
^self new name: name; type: #ClassVar; class: class
"Created: / 26-11-2011 / 18:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
globalVariable: name
^self new name: name; type: #Global
"Created: / 26-11-2011 / 18:57:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
instanceVariable: name in: class
^self new name: name; type: #InstanceVar; class: class
"Created: / 26-11-2011 / 18:45:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
variable: name
^self new name: name; type: #MethodVar
"Created: / 26-11-2011 / 18:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!VariablePO methodsFor:'accessing'!
class:something
class := something.
"Created: / 06-04-2011 / 16:51:42 / Jakub <zelenja7@fel.cvut.cz>"
!
stringToCompleteForLanguage: language
"Answers a string to complete"
^name "/, ' '
"Created: / 31-03-2014 / 23:09:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
type:something
type := something.
! !
!VariablePO methodsFor:'displaying'!
displayLabel:aLabel h:lH on:aGC x:x y:y h:h
| lw cn cnw fg y0 |
super displayLabel:aLabel h:lH on:aGC x:x y:y h:h.
class isNil ifTrue:[ ^ self ]. "/ Could be pseudo-variable
lw := x + IconWidth + (self label widthOn: aGC).
cn := class nameWithoutPrefix.
cnw := aGC widthOfString: cn.
y0 := y - (lH + 1 - h // 2).
y0 := y0 + (cn ascentOn:aGC).
(aGC width > (lw + cnw + 5)) ifTrue:
[fg := aGC paint.
aGC paint: Color gray .
aGC displayString: cn x: aGC width - cnw - 5 y: y0.
aGC paint: fg.
]
"Created: / 18-09-2013 / 00:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
displayOn:aGC x:x y:y opaque:opaque
| lw cn cnw fg |
super displayOn:aGC x:x y:y opaque:opaque.
class isNil ifTrue:[^self].
lw := x + 16 + (self label widthOn: aGC).
cn := class nameWithoutPrefix.
cnw := aGC widthOfString: cn.
(aGC width > (lw + cnw + 5)) ifTrue:
[fg := aGC paint.
aGC paint: Color gray .
aGC displayString: cn x: aGC width - cnw - 5 y: y.
aGC paint: fg.
]
"Created: / 21-05-2011 / 11:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified (format): / 17-09-2013 / 23:39:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!VariablePO methodsFor:'testing'!
isSmallSenseVariablePO
^ true
! !
!VariablePO class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
^ '$Id: SmallSense__VariablePO.st,v 1.2 2014/02/12 14:49:29 sr Exp $'
! !