SmallSense__AbstractJavaCompletionEngine.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 13 May 2014 17:38:10 +0100
changeset 206 f74a5ffd8eae
child 208 0b9ed08a04c0
permissions -rw-r--r--
Separated JavaCompletionEngine and JavaCompletionEngineSimple. *Simple variant does ony lexical analysis, whereas JavaCompletionEngine relies on Eclipse parse tree.

"{ Package: 'jv:smallsense' }"

"{ NameSpace: SmallSense }"

CompletionEngine subclass:#AbstractJavaCompletionEngine
	instanceVariableNames:'class method'
	classVariableNames:''
	poolDictionaries:''
	category:'SmallSense-Java'
!

!AbstractJavaCompletionEngine methodsFor:'completion-helpers'!

javaClassesDo: aBlock
    | loader loaders |

    loaders := Set new.
    loaders := Set new.
    loader := (class notNil and:[class isJavaClass]) ifTrue:[class classLoader] ifFalse:[JavaVM systemClassLoader].
    [ loader notNil ] whileTrue:[
        loaders add: loader.
        loader := loader instVarNamed: #parent.
    ].
    loaders add: nil.

    context environment allClassesDo:[:cls|
        (cls isJavaClass and:[loaders includes: cls classLoader]) ifTrue:[
            aBlock value: cls.
        ].
    ].

    "Created: / 04-10-2013 / 13:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 13-05-2014 / 12:38:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !