author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 13 Aug 2014 10:28:35 +0100 | |
changeset 278 | 696843cd1f9d |
parent 267 | b6fbf84b14ae |
child 280 | 100db0f8279b |
permissions | -rw-r--r-- |
252
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
1 |
" |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
2 |
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
3 |
Copyright (C) 2013-2014 Jan Vrany |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
4 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
5 |
This library is free software; you can redistribute it and/or |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
6 |
modify it under the terms of the GNU Lesser General Public |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
7 |
License as published by the Free Software Foundation; either |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
8 |
version 2.1 of the License. |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
9 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
10 |
This library is distributed in the hope that it will be useful, |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
11 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
12 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
13 |
Lesser General Public License for more details. |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
14 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
15 |
You should have received a copy of the GNU Lesser General Public |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
16 |
License along with this library; if not, write to the Free Software |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
17 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
18 |
" |
249
8bc64027b189
Package renamed to stx:goodies/smallsense
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
19 |
"{ Package: 'stx:goodies/smallsense' }" |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
"{ NameSpace: SmallSense }" |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
AbstractJavaCompletionEngine subclass:#JavaCompletionEngine |
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
24 |
instanceVariableNames:'' |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
classVariableNames:'' |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
poolDictionaries:'' |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
category:'SmallSense-Java' |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
252
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
30 |
!JavaCompletionEngine class methodsFor:'documentation'! |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
31 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
32 |
copyright |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
33 |
" |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
34 |
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
35 |
Copyright (C) 2013-2014 Jan Vrany |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
36 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
37 |
This library is free software; you can redistribute it and/or |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
38 |
modify it under the terms of the GNU Lesser General Public |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
39 |
License as published by the Free Software Foundation; either |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
40 |
version 2.1 of the License. |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
41 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
42 |
This library is distributed in the hope that it will be useful, |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
43 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
44 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
45 |
Lesser General Public License for more details. |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
46 |
|
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
47 |
You should have received a copy of the GNU Lesser General Public |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
48 |
License along with this library; if not, write to the Free Software |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
49 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
50 |
" |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
51 |
! ! |
feba6ee5c814
Added copyright notice and license information (LGPL2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
249
diff
changeset
|
52 |
|
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
!JavaCompletionEngine methodsFor:'completion-individual'! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
addMethodsForReceiver: maybeReceiverToken startingWith: prefix |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
^ self addMethodsStartingWith: prefix |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
"Created: / 03-10-2013 / 17:46:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
61 |
addVariablesInScope: scope |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
62 |
((scope kind == JAVA org eclipse jdt internal compiler lookup Scope METHOD_SCOPE) or:[ |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
63 |
scope kind == JAVA org eclipse jdt internal compiler lookup Scope BLOCK_SCOPE]) ifTrue:[ |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
64 |
1 to: scope localIndex do:[:i | |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
65 |
result add: (PO forLocalVariableNamed: (scope locals at:i) name) |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
66 |
]. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
67 |
]. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
68 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
69 |
"Created: / 12-08-2014 / 10:41:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
70 |
! ! |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
71 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
72 |
!JavaCompletionEngine methodsFor:'completion-nodes'! |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
73 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
74 |
completeOnFieldType: node in: scope |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
75 |
node type completeUsingEngine: self in: scope. |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
|
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
77 |
"Created: / 13-08-2014 / 01:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
78 |
! |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
79 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
80 |
completeOnSingleNameReference: node in: scope |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
81 |
self addVariablesInScope: scope. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
82 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
83 |
"Created: / 13-08-2014 / 01:43:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
84 |
! |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
85 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
86 |
completeOnSingleTypeReference: node in: scope |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
87 |
| prefix | |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
88 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
89 |
prefix := node token. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
90 |
self addClassesStartingWith: prefix |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
91 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
92 |
"Created: / 13-08-2014 / 01:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
! ! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
!JavaCompletionEngine methodsFor:'completion-private'! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
complete |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
|
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
99 |
| position source rslt problemReporter parser tree searcher resolver node scope | |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
position := context codeView characterPositionOfCursor. |
267
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
102 |
|
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
103 |
source := JAVA stx libjava tools Source new. |
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
104 |
source setContents: codeView list asStringWithoutEmphasis. |
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
105 |
"/ parser := JAVA stx libjava tools parser Parser new. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
106 |
rslt := JAVA org eclipse jdt internal compiler CompilationResult |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
107 |
new: source _: 1 _: 1 _: 1000. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
108 |
problemReporter := JAVA org eclipse jdt internal compiler problem ProblemReporter |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
109 |
new: JAVA org eclipse jdt internal compiler DefaultErrorHandlingPolicies proceedWithAllProblems |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
110 |
_: JAVA stx libjava tools parser Parser defaultCompilerOptions |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
111 |
_: JAVA stx libjava tools parser Parser defaultProblemFactory. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
112 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
113 |
parser := JAVA org eclipse jdt internal codeassist complete CompletionParser |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
114 |
new: problemReporter _: true. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
115 |
|
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
116 |
"/ tree := parser parse: source diet: true resolve: true. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
117 |
tree := parser dietParse: source _: rslt _: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token". |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
118 |
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". |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
119 |
tree traverse: searcher _: tree scope. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
120 |
(searcher found notNil and:[searcher found isKindOf: JAVA org eclipse jdt internal compiler ast AbstractMethodDeclaration]) ifTrue:[ |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
121 |
parser parseBlockStatements: searcher found _: tree. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
122 |
]. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
123 |
|
267
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
124 |
|
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
125 |
" |
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
126 |
(SmallSense::ParseTreeInspector new node:tree source: codeView list asString) open |
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
127 |
" |
b6fbf84b14ae
Temporary commit: More work on JavaCompletionEngine
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
252
diff
changeset
|
128 |
|
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
129 |
resolver := (Java classForName: 'stx.libjava.tools.environment.Resolver') new: problemReporter. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
130 |
[ |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
131 |
resolver resolve: tree. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
132 |
] on: JAVA org eclipse jdt internal codeassist complete CompletionNodeFound do:[:ex | |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
133 |
node := ex astNode. |
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
134 |
scope := ex scope. |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
]. |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
context node: node position: position. |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
|
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
139 |
(node isNil or:[scope isNil]) ifTrue:[ |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
result := JavaCompletionEngineSimple new complete: context. |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
] ifFalse:[ |
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
142 |
node completeUsingEngine: self in: scope. |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
]. |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
^ result |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
|
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
"Created: / 02-10-2013 / 13:55:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
278
696843cd1f9d
Revamp of Java completion engine - use JDT's CompletionParser to parse source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
267
diff
changeset
|
148 |
"Modified: / 13-08-2014 / 01:56:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
206
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
! ! |
f74a5ffd8eae
Separated JavaCompletionEngine and JavaCompletionEngineSimple.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |