author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 16 Oct 2013 15:44:43 +0100 | |
changeset 131 | ea84eea5a3c4 |
parent 128 | a98866596a98 |
child 132 | 7c23c51d2cfd |
permissions | -rw-r--r-- |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'jv:smallsense' }" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: SmallSense }" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
5 |
CompletionEngine subclass:#SmalltalkCompletionEngine |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
6 |
instanceVariableNames:'collector' |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
9 |
category:'SmallSense-Smalltalk' |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
13 |
!SmalltalkCompletionEngine class methodsFor:'utilities'! |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
resultSetFor: mode source: source class: class line: line column: col |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
| inferencer tree | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
mode == #method ifTrue:[ |
69
1a143dfff51b
Copied ParseTreeIndex from libtool.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
64
diff
changeset
|
19 |
inferencer := SmalltalkInferencer forClass: class methodSource: source asString. |
78
16cd76c8d70c
Fix in SmallSense::Recognizer: use customized SmalltalkParser to parse smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
20 |
inferencer parserClass: SmalltalkParser. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
inferencer process. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
] ifFalse:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
self breakPoint: #jv. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
^nil. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
inferencer := Parser for: (source asString readStream). |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
"JV@2011-06-13: HACK, use polymorphism" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
tree := inferencer |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
parseExpressionWithSelf:nil |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
notifying:nil |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
ignoreErrors:false |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
ignoreWarnings:false |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
inNameSpace:nil. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
inferencer tree: tree. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
^ self new |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
completeAtLine:line |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
column:col |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
collector:inferencer |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
"Modified: / 07-04-2011 / 22:55:58 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
"Created: / 26-11-2011 / 17:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
78
16cd76c8d70c
Fix in SmallSense::Recognizer: use customized SmalltalkParser to parse smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
42 |
"Modified: / 02-09-2013 / 14:43:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
43 |
"Modified (format): / 02-10-2013 / 13:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
46 |
!SmalltalkCompletionEngine methodsFor:'completion'! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
47 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
48 |
complete |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
49 |
"Compute completion for `codeView`, taking all the information |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
50 |
from it. Returns a CompletionResult with computed completions" |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
51 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
52 |
| class | |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
53 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
54 |
class := codeView isCodeView2 |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
55 |
ifTrue: [ codeView klass ] |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
56 |
ifFalse: [ codeView editedClass ]. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
57 |
class isNil ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
58 |
class := UndefinedObject. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
59 |
]. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
60 |
^ self complete: codeView codeAspect source: codeView contents class: class line: codeView cursorLine column: codeView cursorCol |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
61 |
|
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
62 |
"Created: / 02-10-2013 / 13:32:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
63 |
"Modified: / 04-10-2013 / 08:18:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
64 |
! ! |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
65 |
|
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
66 |
!SmalltalkCompletionEngine methodsFor:'completion-helpers'! |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
67 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
68 |
javaClassesDo: aBlock |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
69 |
| class loader loaders | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
70 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
71 |
class := collector klass. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
72 |
loaders := Set new. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
73 |
loader := (class notNil and:[class isJavaClass]) ifTrue:[class classLoader] ifFalse:[JavaVM systemClassLoader]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
74 |
[ loader notNil ] whileTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
75 |
loaders add: loader. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
76 |
loader := loader instVarNamed: #parent. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
77 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
78 |
loaders add: nil. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
79 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
80 |
JavaVM registry classesDo:[:cls| |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
81 |
(loaders includes: cls classLoader) ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
82 |
aBlock value: cls. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
83 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
84 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
85 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
86 |
"Created: / 04-10-2013 / 13:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
87 |
! ! |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
88 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
89 |
!SmalltalkCompletionEngine methodsFor:'completion-individual'! |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
addClassVariables |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
| class | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
class := collector klass theNonMetaclass. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
class classVarNames do:[:nm| |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
96 |
result add:(VariablePO classVariable: nm in: class). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
"Created: / 24-07-2013 / 17:00:24 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
"Modified: / 30-07-2013 / 23:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
addGlobalsStartingWith: prefix |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
| class ns cls | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
class := collector klass. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
ns := class nameSpace. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
"nameSpace may return private class, sigh" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
[ ns isNameSpace ] whileFalse:[ ns := ns nameSpace ]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
ns keysDo:[:nm| |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
111 |
(nm startsWith: prefix) ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
cls := ns classNamed: nm. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
113 |
(JavaPackage isNil or:[cls isJavaPackage not]) ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
114 |
cls notNil ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
115 |
cls isBehavior ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
116 |
result add:(ClassPO new subject: cls). |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
117 |
] ifFalse:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
118 |
result add:(VariablePO globalVariable: cls). |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
119 |
] |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
121 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
ns ~~ Smalltalk ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
Smalltalk keysDo:[:nm| |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
(nm startsWith: prefix) ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
cls := Smalltalk classNamed: nm. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
128 |
(JavaPackage isNil or:[cls isJavaPackage not ]) ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
129 |
cls notNil ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
130 |
cls isBehavior ifTrue:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
131 |
result add:(ClassPO new subject: cls). |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
132 |
] ifFalse:[ |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
133 |
result add:(VariablePO globalVariable: cls). |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
134 |
] |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
"Created: / 26-11-2011 / 17:29:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
142 |
"Modified: / 03-10-2013 / 16:36:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
|
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
145 |
addJavaClassesInPackage: prefix |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
146 |
prefix isEmptyOrNil ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
147 |
self javaClassesDo: [:cls | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
148 |
result add: (ClassPO new klass: cls; showPrefix: true; yourself) |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
149 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
150 |
] ifFalse:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
151 |
self javaClassesDo: [:cls | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
152 |
(cls name startsWith: prefix) ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
153 |
result add: (ClassPO new klass: cls; showPrefix: true; yourself) |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
154 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
155 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
156 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
157 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
158 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
159 |
"Created: / 04-10-2013 / 13:09:14 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
160 |
! |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
161 |
|
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
162 |
addMethodsForType: type |
131
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
163 |
| classes seen | |
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
164 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
165 |
classes := type classes. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
166 |
classes size == 1 ifTrue:[ |
128
a98866596a98
Fix in SmalltalkInferencer for known globals.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
127
diff
changeset
|
167 |
classes anElement == JavaPackage class ifTrue:[ |
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
168 |
"/ Special hack for JAVA: for pattern `JAVA java lang reflect` |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
169 |
"/ complete all Java classes in that package |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
170 |
| node | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
171 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
172 |
node := result context node. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
173 |
node isUnaryMessage ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
174 |
| package | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
175 |
"/ Compute package prefix... |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
176 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
177 |
package := node selector. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
178 |
node := node receiver. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
179 |
[ node isUnaryMessage ] whileTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
180 |
package := node selector , '/' , package. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
181 |
node := node receiver. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
182 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
183 |
self addJavaClassesInPackage: package. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
184 |
^ self. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
185 |
] |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
186 |
] |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
187 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
188 |
|
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
189 |
|
131
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
190 |
seen := Set new. |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
191 |
type |
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
192 |
classesDo: [:each | |
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
193 |
| class | |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
194 |
|
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
195 |
class := each. |
131
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
196 |
[ class notNil and:[(seen includes: class) not]] whileTrue: [ |
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
197 |
seen add: class. |
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
198 |
"/ Now, special care for Java classes, sigh... |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
199 |
(class isMetaclass and:[class theNonMetaclass isJavaClass]) ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
200 |
class theNonMetaclass selectorsAndMethodsDo: [:selector :met | |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
201 |
met isStatic ifTrue:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
202 |
result add: (MethodPO |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
203 |
name: selector |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
204 |
description: nil |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
205 |
class: met mclass). |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
206 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
207 |
]. |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
208 |
] ifFalse:[ |
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
209 |
class selectorsAndMethodsDo: [:selector :met | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
210 |
result add: (MethodPO |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
211 |
name: selector |
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
212 |
description: nil |
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
213 |
class: met mclass). |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
214 |
]. |
123
1b949542c4b2
Improvements for completion of Java classes/methods in Smalltalk code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
120
diff
changeset
|
215 |
]. |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
216 |
class := class superclass. |
131
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
217 |
] |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
"Created: / 26-11-2011 / 17:03:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
131
ea84eea5a3c4
Fix in code completion - do not add same method multiple times into completion list.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
128
diff
changeset
|
221 |
"Modified: / 16-10-2013 / 15:40:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
222 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
223 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
224 |
addPools |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
225 |
| class | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
226 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
227 |
class := collector klass theNonMetaclass. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
228 |
class theNonMetaclass sharedPools do:[:pool| |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
229 |
pool theNonMetaclass classVarNames do:[:nm| |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
230 |
result add:(VariablePO classVariable: nm in: pool). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
231 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
232 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
233 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
234 |
"Created: / 24-07-2013 / 16:59:34 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
235 |
"Modified: / 30-07-2013 / 23:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
236 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
237 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
238 |
addPrivateClasses |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
239 |
| class | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
240 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
241 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
242 |
class := collector klass theNonMetaclass. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
243 |
class privateClassesDo:[:pclass| |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
244 |
| nm | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
245 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
246 |
nm := pclass fullName copyFrom: class fullName size + 3. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
247 |
result add:(ClassPO new subject: pclass; name: nm). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
248 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
249 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
250 |
"Created: / 06-08-2013 / 12:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
251 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
252 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
253 |
addVariablesFor: node |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
254 |
|
93
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
255 |
| n klass | |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
256 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
257 |
"Add Instance variables" |
93
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
258 |
klass := collector klass. |
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
259 |
[ klass notNil ] whileTrue:[ |
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
260 |
klass instVarNames do:[:nm | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
261 |
result add: (VariablePO instanceVariable: nm in: klass). |
93
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
262 |
]. |
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
263 |
klass := klass superclass. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
264 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
265 |
"Add pseudo variables" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
266 |
#(self super here thisContext) do:[:nm| |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
267 |
result add: (VariablePO new name: nm). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
268 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
269 |
"Add arguments" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
270 |
collector parser methodArgs ? #() do:[:nm| |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
271 |
result add: (VariablePO argument: nm). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
272 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
273 |
"Add temporaries" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
274 |
collector parser methodVars ? #() do:[:nm| |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
275 |
result add: (VariablePO variable: nm). |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
276 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
277 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
278 |
n := node. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
279 |
[ n notNil ] whileTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
280 |
n isBlockNode ifTrue:[ |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
281 |
n arguments ? #() do:[:barg|result add: (VariablePO variable: barg name)]. |
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
282 |
n variables ? #() do:[:bvar|result add: (VariablePO variable: bvar name)]. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
283 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
284 |
n := n parent. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
285 |
] |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
286 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
287 |
"Created: / 31-07-2013 / 00:32:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
93
f50bd9fded52
Fix in Recognizer - set correct class for instance-variable POs
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
78
diff
changeset
|
288 |
"Modified: / 18-09-2013 / 00:28:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
289 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
290 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
291 |
!SmalltalkCompletionEngine methodsFor:'completion-private'! |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
292 |
|
124 | 293 |
complete: mode source: source class: class line: lineNrArg column: colNrArg |
294 |
| inferencer lineNr colNr | |
|
295 |
||
296 |
mode == #method ifTrue:[ |
|
297 |
lineNr := lineNrArg. |
|
298 |
colNr := colNrArg. |
|
299 |
inferencer := SmalltalkInferencer forClass: class methodSource: source asString. |
|
300 |
] ifFalse:[ |
|
301 |
| line | |
|
302 |
||
303 |
lineNr := 1. |
|
304 |
colNr := colNrArg. |
|
127
98c615301608
Fixes for Java completion (for both Java/Groovy and Smalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
305 |
line := codeView list at: lineNrArg ifAbsent:[ nil ]. |
124 | 306 |
line isEmptyOrNil ifTrue:[ ^ nil ]. |
307 |
inferencer := SmalltalkInferencer forExpression: line. |
|
308 |
]. |
|
309 |
inferencer parserClass: SmalltalkParser. |
|
310 |
inferencer process. |
|
311 |
||
312 |
^ self |
|
313 |
completeAtLine:lineNr |
|
314 |
column:colNr |
|
315 |
collector:inferencer |
|
316 |
||
317 |
"Created: / 02-10-2013 / 13:23:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
127
98c615301608
Fixes for Java completion (for both Java/Groovy and Smalltalk)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
124
diff
changeset
|
318 |
"Modified: / 07-10-2013 / 13:43:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
124 | 319 |
! |
320 |
||
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
321 |
completeAfter:node |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
322 |
"return collection of completion items after given node" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
323 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
324 |
| type | |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
325 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
326 |
type := node inferedType. |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
327 |
type isUnknownType ifFalse:[ |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
328 |
self addMethodsForType: node inferedType |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
329 |
]. |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
330 |
|
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
331 |
"Created: / 04-03-2011 / 15:45:28 / Jakub <zelenja7@fel.cvut.cz>" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
332 |
"Modified: / 08-04-2011 / 10:55:09 / Jakub <zelenja7@fel.cvut.cz>" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
333 |
"Created: / 26-11-2011 / 17:07:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
334 |
"Modified: / 24-09-2013 / 02:15:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
335 |
! |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
336 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
337 |
completeAtLine:line column:col collector:coll |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
338 |
"find most possible codeCompletion object" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
339 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
340 |
| position | |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
341 |
|
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
342 |
collector := coll. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
343 |
(collector tree isNil or:[collector tree == #Error]) ifTrue:[ |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
344 |
^ nil |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
345 |
]. |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
346 |
position := SmalltalkParseNodeFinder new |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
347 |
findNodeIn: collector source tree: collector tree |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
348 |
line: line column: col. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
349 |
result context: position. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
350 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
351 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
352 |
position isAfterNode ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
353 |
self completeAfter:position node. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
354 |
] ifFalse:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
355 |
position isInNode ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
356 |
self completeIn:position node. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
357 |
] ifFalse:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
358 |
position isBeforeNode ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
359 |
self completeBefore:position node. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
360 |
]]]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
361 |
|
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
362 |
result isEmpty ifTrue:[ |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
363 |
nil "/Only to set breakpoint here |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
364 |
]. |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
365 |
^result. |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
366 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
367 |
"Created: / 04-03-2011 / 13:01:14 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
368 |
"Modified: / 08-04-2011 / 10:52:59 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
369 |
"Created: / 26-11-2011 / 17:05:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
120
4fefce92f5bb
Initial support for Java/Groovy completion and for mixed-language completion.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
117
diff
changeset
|
370 |
"Modified: / 03-10-2013 / 17:59:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
371 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
372 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
373 |
completeBefore:node |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
374 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
375 |
self breakPoint: #jv. "Not yet implemented" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
376 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
377 |
"Created: / 04-03-2011 / 15:45:28 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
378 |
"Modified: / 08-04-2011 / 10:55:09 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
379 |
"Created: / 26-11-2011 / 17:07:41 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
380 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
381 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
382 |
completeIn:node |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
383 |
"return collection which can be afterNode" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
384 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
385 |
node isVariableNode ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
386 |
node name first isUppercase ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
387 |
self addGlobalsStartingWith: node name. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
388 |
self addClassVariables. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
389 |
self addPools. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
390 |
self addPrivateClasses. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
391 |
] ifFalse:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
392 |
self addVariablesFor: node |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
393 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
394 |
^self. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
395 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
396 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
397 |
node isMessage ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
398 |
| type | |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
399 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
400 |
type := node receiver inferedType. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
401 |
type isUnknownType ifFalse:[ |
102
538fc4ef040c
CodeNavigation service refactored to support Java (not yet done, though)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
101
diff
changeset
|
402 |
self addMethodsForType: type |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
403 |
] ifTrue:[ |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
404 |
self addMethodsStartingWith: node selector |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
405 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
406 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
407 |
^self. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
408 |
]. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
409 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
410 |
self breakPoint: #jv. |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
411 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
412 |
"Created: / 07-03-2011 / 18:59:02 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
413 |
"Modified: / 08-04-2011 / 09:31:51 / Jakub <zelenja7@fel.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
414 |
"Created: / 26-11-2011 / 17:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
415 |
"Modified: / 06-08-2013 / 12:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
416 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
417 |
|
117
441529422c2f
Completion support refactored to make it more pluggable/extendable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
114
diff
changeset
|
418 |
!SmalltalkCompletionEngine class methodsFor:'documentation'! |
64
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
419 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
420 |
version_HG |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
421 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
422 |
^ '$Changeset: <not expanded> $' |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
423 |
! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
424 |
|
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
425 |
version_SVN |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
426 |
^ '$Id: SmallSenseRecognizer.st 7826 2011-11-27 09:48:43Z vranyj1 $' |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
427 |
! ! |
2257d7223898
All classes moved to namespace SmallSense.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
428 |