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 }"
Object subclass:#CompletionContext
instanceVariableNames:'node position support'
classVariableNames:''
poolDictionaries:''
category:'SmallSense-Core'
!
!CompletionContext class methodsFor:'instance creation'!
node: node position: position
^self new node: node position: position
"Created: / 26-11-2011 / 16:22:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CompletionContext methodsFor:'accessing'!
codeView
^ support codeView
"Modified: / 21-01-2014 / 23:16:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
language
^ support language
"Modified: / 21-01-2014 / 23:16:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
node
^ node
!
position
^ position
!
support
^ support
! !
!CompletionContext methodsFor:'initialization'!
node:nd position: pos
node := nd.
position := pos.
"Created: / 26-11-2011 / 16:22:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 16-10-2013 / 23:31:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
support: anEditSupport
support := anEditSupport.
"Modified: / 21-01-2014 / 23:31:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CompletionContext methodsFor:'private'!
wordBeforeCursor
^ support wordBeforeCursor.
"Created: / 27-09-2013 / 15:53:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 31-03-2014 / 23:03:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
wordBeforeCursorConsisitingOfCharactersMatching: characterMatchBlock
^ support wordBeforeCursorConsisitingOfCharactersMatching: characterMatchBlock
"Created: / 20-10-2013 / 00:17:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 31-03-2014 / 23:03:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CompletionContext methodsFor:'queries'!
isAfterNode
^ node notNil and:[node endPosition < (position - 1)]
"Created: / 26-11-2011 / 16:24:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 16-10-2013 / 23:31:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
isBeforeNode
^node notNil and:[position < node startPosition]
"Created: / 26-11-2011 / 16:24:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 24-09-2013 / 13:11:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
isInNode
^ node notNil and:[(position - 1) between:node startPosition and:node endPosition]
"Created: / 26-11-2011 / 16:24:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 16-10-2013 / 23:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CompletionContext class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
^ '$Id: SmallSense__CompletionContext.st,v 1.2 2014/02/12 14:49:29 sr Exp $'
! !