--- a/SmallSense__JavaCompletionEngine.st Fri Feb 13 23:32:46 2015 +0100
+++ b/SmallSense__JavaCompletionEngine.st Fri Feb 13 23:32:59 2015 +0100
@@ -98,15 +98,20 @@
!
addVariablesInScope: scope
- ((scope kind == JAVA org eclipse jdt internal compiler lookup Scope METHOD_SCOPE) or:[
- scope kind == JAVA org eclipse jdt internal compiler lookup Scope BLOCK_SCOPE]) ifTrue:[
+ |scopeKind org_eclipse_jdt_internal_compiler_lookup_Scope|
+
+ scopeKind := scope kind.
+ org_eclipse_jdt_internal_compiler_lookup_Scope := JAVA org eclipse jdt internal compiler lookup Scope.
+
+ ((scopeKind == org_eclipse_jdt_internal_compiler_lookup_Scope METHOD_SCOPE)
+ or:[ scopeKind == org_eclipse_jdt_internal_compiler_lookup_Scope BLOCK_SCOPE]) ifTrue:[
1 to: scope localIndex do:[:i |
result add: (PO forLocalVariableBinding: (scope locals at:i) )
].
self addVariablesInScope: (scope instVarNamed: #parent). "/ !!?!! Why 'scope parent' does not work?
].
- scope kind == JAVA org eclipse jdt internal compiler lookup Scope CLASS_SCOPE ifTrue:[
+ scopeKind == org_eclipse_jdt_internal_compiler_lookup_Scope CLASS_SCOPE ifTrue:[
| type |
type := scope referenceType.
@@ -159,33 +164,42 @@
!JavaCompletionEngine methodsFor:'completion-private'!
complete
-
- | position source rslt problemReporter parser tree searcher resolver |
+ "use the eclipse framework (running in the stx java vm)
+ to do java code completion"
+
+ | position source stx_libjava_tools org_eclipse_jdt org_eclipse_jdt_internal_compiler
+ org_eclipse_jdt_internal_codeassist rslt problemReporter parser tree searcher resolver |
position := context codeView characterPositionOfCursor.
- source := JAVA stx libjava tools Source new.
+ stx_libjava_tools := JAVA stx libjava tools.
+ org_eclipse_jdt := JAVA org eclipse jdt.
+ org_eclipse_jdt_internal_compiler := org_eclipse_jdt internal compiler.
+ org_eclipse_jdt_internal_codeassist := org_eclipse_jdt internal codeassist.
+
+ source := stx_libjava_tools Source new.
+
source setContents: codeView list asStringWithoutEmphasis.
"/ parser := JAVA stx libjava tools parser Parser new.
- rslt := JAVA org eclipse jdt internal compiler CompilationResult
- new: source _: 1 _: 1 _: 1000.
- problemReporter := JAVA org eclipse jdt internal compiler problem ProblemReporter
- new: JAVA org eclipse jdt internal compiler DefaultErrorHandlingPolicies proceedWithAllProblems
- _: JAVA stx libjava tools parser Parser defaultCompilerOptions
- _: JAVA stx libjava tools parser Parser defaultProblemFactory.
+ rslt := org_eclipse_jdt_internal_compiler CompilationResult
+ new: source _: 1 _: 1 _: 1000.
- parser := JAVA org eclipse jdt internal codeassist complete CompletionParser
+ problemReporter := org_eclipse_jdt_internal_compiler problem ProblemReporter
+ new: org_eclipse_jdt_internal_compiler DefaultErrorHandlingPolicies proceedWithAllProblems
+ _: stx_libjava_tools parser Parser defaultCompilerOptions
+ _: stx_libjava_tools parser Parser defaultProblemFactory.
+
+ parser := org_eclipse_jdt_internal_codeassist complete CompletionParser
new: problemReporter _: true.
"/ tree := parser parse: source diet: true resolve: true.
tree := parser dietParse: source _: rslt _: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token".
- searcher := JAVA org eclipse jdt core dom NodeSearcher new: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token".
+ searcher := org_eclipse_jdt core dom NodeSearcher new: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token".
tree traverse: searcher _: tree scope.
- (searcher found notNil and:[searcher found isKindOf: JAVA org eclipse jdt internal compiler ast AbstractMethodDeclaration]) ifTrue:[
+ (searcher found notNil and:[searcher found isKindOf: org_eclipse_jdt_internal_compiler ast AbstractMethodDeclaration]) ifTrue:[
parser parseBlockStatements: searcher found _: tree.
].
-
"
(SmallSense::ParseTreeInspector new node:tree source: codeView list asString) open
"
@@ -193,7 +207,7 @@
resolver := (Java classForName: 'stx.libjava.tools.environment.Resolver') new: problemReporter.
[
resolver resolve: tree.
- ] on: JAVA org eclipse jdt internal codeassist complete CompletionNodeFound do:[:ex |
+ ] on: org_eclipse_jdt_internal_codeassist complete CompletionNodeFound do:[:ex |
completionNode := ex astNode.
completionScope := ex scope.
].
@@ -212,3 +226,13 @@
"Modified: / 13-08-2014 / 21:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaCompletionEngine class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/goodies/smallsense/SmallSense__JavaCompletionEngine.st,v 1.2 2015-02-13 22:32:59 cg Exp $'
+!
+
+version_CVS
+ ^ '$Path: stx/goodies/smallsense/SmallSense__JavaCompletionEngine.st, Version: 1.0, User: cg, Time: 2015-02-13T23:33:25.667+01$'
+! !
+